~registry/cambria/trunk

« back to all changes in this revision

Viewing changes to RATIONALE

  • Committer: James Westby
  • Date: 2010-01-31 02:52:55 UTC
  • Revision ID: james.westby@canonical.com-20100131025255-c1badmvq1vgq1szx
Add a RATIONALE document and some mockups to explain what the project is.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
Why do we need these tools?
 
2
===========================
 
3
 
 
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.
 
9
 
 
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.
 
16
 
 
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
 
21
them.
 
22
 
 
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).
 
28
 
 
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.
 
34
 
 
35
That's all well and good, but what do you mean?
 
36
===============================================
 
37
 
 
38
See the mockups/ directory for some ideas about what could be done to
 
39
achieve this.
 
40
 
 
41
Great, how can I try it?
 
42
========================
 
43
 
 
44
There isn't a lot to try yet. The following projects are ongoing to
 
45
work towards this
 
46
 
 
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
 
51
 
 
52
 
 
53
First create a new directory to contain all of the branches related
 
54
to cambria.
 
55
 
 
56
  mkdir ~/project-cambria
 
57
  cd ~/project-cambria
 
58
 
 
59
The first thing to get is ubuild:
 
60
 
 
61
  bzr branch lp:ubuild
 
62
  cd ubuild
 
63
  # This installs the D-Bus configuration files that are neccesary
 
64
  # for it to work.
 
65
  ./install-dbus
 
66
  cd ..
 
67
 
 
68
Then you can get cambria:
 
69
 
 
70
  bzr branch lp:cambria
 
71
 
 
72
Then the gedit plugin:
 
73
 
 
74
  bzr branch lp:gedit-ubudev
 
75
  cd gedit-ubudev
 
76
  ./install-gedit-plugin
 
77
  cd ..
 
78
 
 
79
Now if you run
 
80
 
 
81
  ./gedit-ubudev/run-gedit
 
82
 
 
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.
 
89
 
 
90
 
 
91
Sounds like a great idea, but it clearly needs work, how do I help?
 
92
===================================================================
 
93
 
 
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.
 
97
 
 
98
UI design
 
99
---------
 
100
 
 
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.
 
106
 
 
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.
 
110
 
 
111
UI implementors
 
112
---------------
 
113
 
 
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.
 
117
 
 
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.
 
120
 
 
121
API/library coders
 
122
------------------
 
123
 
 
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.
 
128
 
 
129
That's the goal though, the first aim would be to have working code.
 
130
 
 
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.
 
134
 
 
135
Documenters
 
136
-----------
 
137
 
 
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.
 
142
 
 
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
 
145
documentation.
 
146
 
 
147
Translations
 
148
------------
 
149
 
 
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.
 
153
 
 
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.
 
156
 
 
157
Packagers
 
158
---------
 
159
 
 
160
We need to package up all the results of the above, otherwise no-one
 
161
will be able to easily use them.
 
162
 
 
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
 
168
a PPA you can help.
 
169
 
 
170
More
 
171
----
 
172
 
 
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.
 
177
 
 
178
 
 
179
How do I actually go about submitting my work?
 
180
==============================================
 
181
 
 
182
UI design
 
183
---------
 
184
 
 
185
When you have an idea or a mockup that you would like to discuss
 
186
go to
 
187
 
 
188
  https://bugs.launchpad.net/cambria/+filebug
 
189
 
 
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
 
195
"Submit Bug Report."
 
196
 
 
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.
 
199
 
 
200
Once you have submitted the bug we can discuss the idea and take
 
201
it from there.
 
202
 
 
203
UI Implementation
 
204
-----------------
 
205
 
 
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.
 
211
 
 
212
API/Library code
 
213
----------------
 
214
 
 
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.
 
217
 
 
218
One tricky part is working out which component you should be
 
219
changing to work on something. Feel free to ask for guidance.
 
220
 
 
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.
 
224
 
 
225
Documentation
 
226
-------------
 
227
 
 
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.
 
231
 
 
232
Translations
 
233
------------
 
234
 
 
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.
 
238
 
 
239
Packagers
 
240
---------
 
241
 
 
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.
 
245
 
 
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.
 
253
 
 
254
More
 
255
----
 
256
 
 
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
 
260
bug reports at
 
261
 
 
262
  https://bugs.launchpad.net/cambria/+bugs
 
263
 
 
264
to see if there is anything you would like to work on.
 
265