1
Why do we need these tools?
2
===========================
4
Project cambria is about wrapping the existing tools for Debian/Ubuntu
5
development to allow a more task-based workflow. Depending on the task the
6
developer is doing there may be several things that must be done, but they
7
must currently work each one out individually. We have documentation to help
8
with this, but it's much simpler if your tools can take care of it for you.
10
Project cambria aims to make Ubuntu development easier to get started with.
11
There are several ways that it will help. Providing a task-based workflow
12
where you are prompted for the information that is needed to complete the
13
task, and other things are done automatically, or defaults chosen helps as
14
it means you can concentrate on completing the task, rather than learning
15
about all the possible changes you could make and deciding which applies.
17
Project cambria aims to make Ubuntu development easier for everyone by
18
automating common tasks, and alleviating some of the tool tax that we pay.
19
It won't just be a beginner tool, but will provide tools and APIs that
20
experienced developers can use, or can build upon to build tools that suit
23
Project cambria will help to take people from novice to experienced
24
developer by providing documentation that allows you to learn about the
25
issues related to your current task. This provides an easier way in to the
26
documentation than a large individual document (but it can still be read
27
that way if you like).
29
Project cambria will make Ubuntu development more pleasurable by focusing
30
on the user experience. It will aim to pull together disparate interfaces
31
in to a single pleasing one. Where it needs to defer to a different interface
32
it should provide the user with an explanation of what they will be seeing
33
to lessen the jarring effect.
35
That's all well and good, but what do you mean?
36
===============================================
38
See the mockups/ directory for some ideas about what could be done to
41
Great, how can I try it?
42
========================
44
There isn't a lot to try yet. The following projects are ongoing to
47
* cambria (this project) - http://launchpad.net/cambria
48
* ubuild (a library for building packages) - https://launchpad.net/ubuild
49
* gedit-ubudev (a GEdit plugin for doing Ubuntu development)
50
- https://edge.launchpad.net/gedit-ubudev
53
First create a new directory to contain all of the branches related
56
mkdir ~/project-cambria
59
The first thing to get is ubuild:
63
# This installs the D-Bus configuration files that are neccesary
68
Then you can get cambria:
72
Then the gedit plugin:
74
bzr branch lp:gedit-ubudev
76
./install-gedit-plugin
81
./gedit-ubudev/run-gedit
83
you should get gedit with the Ubuntu Packaging plugin available,
84
but before you can use it you have to enable it. To do this
85
go to Edit->Preferences, to the Plugins tab, and scroll down to
86
find "Ubuntu Packaging" and check the box next to it. If it is
87
greyed-out then there was a problem loading the plugin, in which
88
case look at the console output and file a bug with the messages.
91
Sounds like a great idea, but it clearly needs work, how do I help?
92
===================================================================
94
You are right, there is a lot of work needed, from a lot of people. In fact,
95
there's probably a job for anyone. Here's an incomplete list of what we
96
need, feel free to help in other ways or ask for ideas.
101
We need good UI design, especially for the GUI tools. It needs to take
102
in to account the needs of developers, either for Ubutnu, or for e.g. PPAs
103
and combine them in a user interface that is a pleasure to use and helps
104
more than it gets in the way. This will often be tricky, but it doesn't
105
mean we shouldn't try.
107
If you have some ideas then please draw some mockups of them and we can
108
discuss them. They will need to be extended from mockups in to
109
specifications of how the elements should work after that.
114
Once we have these fantastic mockups then they need to be converted to code
115
so that they can be used. This requires UI implementors, either writing code
116
or using a GUI tool such as glade.
118
At this stage the UIs don't have to do anything, we can worry about that part
119
later, once the next group have something to use.
124
We need libraries for the tasks we want to allow people to perform. These
125
libraries need to have APIs that are flexible enough to allow different
126
implementations (command line, gtk, qt, etc.), but are as pleasurable
127
to use as the tools we wish to create.
129
That's the goal though, the first aim would be to have working code.
131
There's many many things we need libraries writing for, and we don't
132
need UI mockups to get started with the coding, so start hacking on the
133
existing libraries, or ask about other things that need coding.
138
Documentation is going to be incredibly important to this project, and
139
so documenters will be too. We need to document both the tools themselves
140
and Ubuntu development together so that the developer can seamlessly learn
141
that something needs to be done and how to go about doing it.
143
This is a very large topic, but we can get a lot of benefit from having
144
something small to start with. Feel free to ask about things that neeed
150
To make this tool pleasurable for the widest audience we should ensure that
151
it is well-localised. We should make sure that code we write is localised,
152
and also encourage other projects to do the same.
154
Unfortunately we are lagging on this aspect, and so the first step will be
155
to add in the basic infrastructure to allow localisation.
160
We need to package up all the results of the above, otherwise no-one
161
will be able to easily use them.
163
In addition though, we need packagers to be the users of the tools we
164
create, so that we know how well they fit the purpose. This means
165
that packagers are our users and testers too. You don't have to be
166
an Ubuntu developer to do this though. Whether you are, you are
167
working towards it, or just have some things you want to put in to
173
There is loads more to be done. There should be more sections added
174
here, but we will never be able to list everything. If you have an
175
idea for what could be done then talk to us and we will help you
176
work out the best way to achieve it.
179
How do I actually go about submitting my work?
180
==============================================
185
When you have an idea or a mockup that you would like to discuss
188
https://bugs.launchpad.net/cambria/+filebug
190
and fill in a summary of your idea. It will suggest some possible
191
matches, but it's always fine to submit a new bug that we can
192
mark as a duplicate later if necessary. Then on the next page explain
193
it in more detail, don't worry about trying to explain everything,
194
just include all you can at that point. Once you are done click
197
If you have mockups or other files that you want other people to see
198
you can attach them to the bug report when you have created it.
200
Once you have submitted the bug we can discuss the idea and take
206
If you want to work external to the existing code then you can
207
do the same as for UI design and attach the files to a bug report,
208
otherwise you can submit the changes in a Bazaar branch if you
209
are comfortable with that. See the API/library code section for
210
information on doing that.
215
Earlier it was explained how to get the code and run it, so that
216
is most of the way to being able to work on it.
218
One tricky part is working out which component you should be
219
changing to work on something. Feel free to ask for guidance.
221
As you will no doubt see, getting and running the code isn't
222
as slick as it could be, so contributions there would be very
223
valuable at this stage.
228
We don't have a documentation structure at all yet, so the first
229
step will be to define that. If you want to tackle this then file
230
a bug so that we can discuss what the best method is.
235
As said above, we don't have any infrastructure. If you want to take
236
on this job then you can file a bug to get some guidance, or you
237
can dive straight in to code changes if you know how.
242
For packaging the code itself we want packaging branches made for
243
each project. If you are interested in this but need some help
244
file a bug where we can dicsuss it.
246
If you want to use the tools then see above for how to go about
247
doing that. As you are doing so please file bug reports and
248
feature requests (though bear in mind that the project is in
249
its infancy, and so there will be many many known issues.) A
250
good way to contribute at this stage would be explaining what
251
task you want to accomplish and what steps are needed. This can
252
be done in a bug report.
257
If you have an idea and want to discuss it then file a bug report.
258
If you want a suggestion of something to work on then file a bug,
259
send an email, or grab someone on IRC. You can also look at the open
262
https://bugs.launchpad.net/cambria/+bugs
264
to see if there is anything you would like to work on.