12221.5.2
by Jonathan Lange
Import document from google docs |
1 |
============================= |
2 |
Launchpad: Strategy and scope |
|
3 |
============================= |
|
4 |
||
5 |
*We want to make Ubuntu the world’s best operating system. To do this, we need |
|
6 |
to give Canonical an edge in productivity over and above other Linux vendors |
|
7 |
and, just as importantly, help make the development of open source software |
|
8 |
faster, more efficient and more innovative than its proprietary rivals.* |
|
9 |
||
10 |
Launchpad does this by helping software developers share their work and |
|
11 |
plans, not just within a project but also **between** projects. |
|
11307.3.4
by Jonathan Lange
Some content for the vision document. |
12 |
|
11307.3.18
by Jonathan Lange
Clean up a bit, remove gunk. |
13 |
|
14 |
Introduction |
|
15 |
============ |
|
16 |
||
12221.5.2
by Jonathan Lange
Import document from google docs |
17 |
This document tries to answer two big questions: |
18 |
||
19 |
1. *why* are we making Launchpad? |
|
20 |
1. *what* is Launchpad supposed to be? |
|
21 |
||
22 |
When you are finished reading this document, you should know what problems we |
|
23 |
want to solve, what we hope to gain from solving these problems, how we decide |
|
24 |
whether something is in scope or not and how we know if Launchpad is doing |
|
25 |
well. |
|
26 |
||
27 |
This is not our strategy for the year or our scope of Launchpad development |
|
28 |
for the next six months. Rather, it is our answer to the fundamental |
|
29 |
questions: what is Launchpad and why is Canonical investing in it?. |
|
30 |
||
31 |
||
32 |
Audience |
|
33 |
-------- |
|
34 |
||
35 |
This document is for everyone who cares about improving Launchpad. Primarily, |
|
36 |
we’ve written it for Launchpad’s stakeholders within Canonical and for the |
|
37 |
developers of Launchpad, whether they are Canonical employees or not. |
|
11307.3.16
by Jonathan Lange
Move a bunch of stuff out to values.txt |
38 |
|
39 |
||
11307.3.18
by Jonathan Lange
Clean up a bit, remove gunk. |
40 |
Strategy -- Why are we doing this? |
41 |
================================== |
|
11307.3.4
by Jonathan Lange
Some content for the vision document. |
42 |
|
12221.5.2
by Jonathan Lange
Import document from google docs |
43 |
The world we live in |
44 |
-------------------- |
|
45 |
||
11307.3.5
by Jonathan Lange
Some changes from mrevell and some more stuff. |
46 |
Open source software is bigger than you think. It is much more than simply |
12221.5.2
by Jonathan Lange
Import document from google docs |
47 |
writing the code. Code has to be packaged, integrated and delivered to users |
48 |
who can then give feedback and file bugs. Distributions made up of tens of |
|
49 |
thousands of different software packages need to be released to meet a |
|
50 |
deadline. Translations must be made into hundreds of different languages and |
|
51 |
accumulated from a variety of sources. Everywhere bugs need to be tracked, |
|
52 |
fixed and checked. Plans must be made and kept. Distributions have to be |
|
53 |
made to work on a wide variety of hardware platforms with varying degrees of |
|
54 |
openness. |
|
55 |
||
56 |
Those who make open source software and wish to profit commercially also face |
|
57 |
unique challenges. Contributors are scattered across the world, making |
|
58 |
coordination, communication and alignment just that little bit more difficult. |
|
59 |
Many contributors are volunteers, and so decisions must often be made by |
|
60 |
consensus, deadlines enforced without the leverage of an employment contract |
|
61 |
and quality maintained without formal training. Users of open source software |
|
62 |
use a widely heterogeneous stack of software and hardware, thus increasing the |
|
63 |
burden of compatibility work. All of these things make open source software |
|
64 |
development more difficult, thus increasing the need for tools to aid |
|
65 |
collaboration. |
|
11307.3.16
by Jonathan Lange
Move a bunch of stuff out to values.txt |
66 |
|
67 |
The Ubuntu community, together with Canonical, are dedicated to making the |
|
68 |
very best open source operating system possible, one that far excels any |
|
12221.5.2
by Jonathan Lange
Import document from google docs |
69 |
proprietary operating system. To do this, we need to ensure that the process |
70 |
of making Ubuntu is as effective as possible. Moreover, we need to make the |
|
71 |
process of making open source software as effective as possible, and then make |
|
72 |
it easy, quick and desirable to get that software into Ubuntu. |
|
73 |
||
74 |
Secondarily, Canonical's main business is the provision of premium services |
|
75 |
built around Ubuntu. Many of these services are based on proprietary |
|
76 |
software, which Canonical must be able to make more quickly and at less cost |
|
77 |
than any rival. |
|
78 |
||
79 |
The word "effective" covers a multitude of concepts. Here we mean doing the |
|
80 |
*right* work with the highest possible *quality* as *quickly* and with as |
|
81 |
little *waste* as possible. |
|
82 |
||
83 |
||
84 |
Business goals |
|
85 |
-------------- |
|
86 |
||
87 |
Launchpad exists to give Canonical a competitive advantage over other |
|
88 |
operating system vendors and service providers, both proprietary and open |
|
89 |
source. |
|
90 |
||
91 |
To gain an advantage over *open source* operating system vendors, Canonical is |
|
92 |
relying on Launchpad to: |
|
93 |
||
94 |
* increase Canonical's effectiveness in making software |
|
95 |
* grow and accelerate contributions to Ubuntu |
|
96 |
||
97 |
To gain an advantage over proprietary operating system vendors, Canonical |
|
98 |
needs Launchpad to do both of the above and: |
|
99 |
||
100 |
* improve and accelerate open source software development in general beyond |
|
101 |
that of proprietary software so that the software in Ubuntu is better than |
|
102 |
the software in any rival proprietary operating system |
|
103 |
||
104 |
The value flow of Launchpad can be summed up in this diagram: |
|
105 |
||
12221.5.4
by Jonathan Lange
Correct links to images. |
106 |
.. image:: images/value-flow.svg |
12221.5.2
by Jonathan Lange
Import document from google docs |
107 |
|
108 |
||
109 |
Who is Launchpad for? |
|
110 |
===================== |
|
111 |
||
112 |
Launchpad is aimed at many different groups of users. They can be roughly |
|
113 |
described as follows: |
|
114 |
||
115 |
Software developers |
|
116 |
These are people who make or contribute to free and open source |
|
117 |
software. They are made up of both paid professionals and volunteers working |
|
118 |
in their spare time. They vary widely in expertise and patience. Any given |
|
119 |
software developer might be working on both open source software and |
|
120 |
proprietary software. |
|
121 |
||
122 |
Expert users of software |
|
123 |
The sort of people who file bugs, try new releases, run the bleeding edge |
|
124 |
snapshot, are interested in following development plans, who help other |
|
125 |
people on mailing lists. Note that software developers are frequently but |
|
126 |
not always expert users of software. |
|
127 |
||
128 |
End users of software |
|
129 |
People who download and install software and then use it. These people have |
|
130 |
little understanding about what software actually is or how it is made. |
|
131 |
They use it, sometimes without noticing, sometimes enjoying it, sometimes |
|
132 |
hating it. |
|
133 |
||
134 |
Translators |
|
135 |
A special class of software developer who is normally a native speaker of a |
|
136 |
language other than English. They contribute to open source software |
|
137 |
projects not by submitting code, but by translating strings to new |
|
138 |
languages. |
|
139 |
||
140 |
Managers |
|
141 |
These are managers in the broad sense of people who are responsible for the |
|
142 |
completion of a task and so need to know what many other people are doing |
|
143 |
towards that goal. This includes release managers, project leads and |
|
144 |
traditional corporate project managers. It does not necessarily mean people |
|
145 |
who are employed as managers. |
|
146 |
||
147 |
||
148 |
User needs |
|
149 |
---------- |
|
150 |
||
151 |
The people who use Launchpad, in whatever role, share one broad goal: “make |
|
152 |
great software and get it to its users”. To do this, they need: |
|
153 |
||
154 |
* tools to facilitate collaboration on their proprietary and open source |
|
155 |
software projects |
|
156 |
* a place to host and publish their open source software projects |
|
157 |
* as little overhead as possible in maintaining these projects |
|
158 |
* more contributors to their projects |
|
159 |
* to be able to easily contribute to existing software projects |
|
160 |
||
161 |
Some of our users have particular needs: |
|
162 |
||
163 |
* managers need to be able to quickly get an overview of activity and |
|
164 |
progress for their teams and their projects |
|
165 |
* expert users of software need to be able to give high quality feedback to |
|
166 |
the software developers |
|
167 |
||
168 |
Further, we believe that providing tools for cross-project collaboration, we |
|
169 |
can benefit our users by: |
|
170 |
||
171 |
* giving them feedback from groups of their own users that they couldn’t reach |
|
172 |
before |
|
173 |
* reducing the time and effort required to publish software to actual end |
|
174 |
users |
|
175 |
* pointing them to knowledge and fixes from other projects in their network |
|
176 |
* helping OS-driven improvements reach them code faster, and their |
|
177 |
improvements reach the OS faster |
|
178 |
||
179 |
||
180 |
Conflicts between business goals & user needs |
|
181 |
--------------------------------------------- |
|
182 |
||
183 |
Canonical is primarily interested in open source software that runs on Linux |
|
184 |
or lives within the Linux ecosystem. Thus, even though Launchpad could be an |
|
185 |
excellent, general platform for Windows, OS X, iOS and Android based software, |
|
186 |
our main area of focus is software that is aimed to run natively on Linux. |
|
187 |
||
188 |
Canonical is much more interested in quality assurance and release management |
|
189 |
than many open source and even proprietary projects. |
|
11307.3.16
by Jonathan Lange
Move a bunch of stuff out to values.txt |
190 |
|
191 |
||
11307.3.2
by Jonathan Lange
Mega rough vision document |
192 |
What is Launchpad? |
193 |
================== |
|
194 |
||
11307.3.4
by Jonathan Lange
Some content for the vision document. |
195 |
Launchpad is a complete system for gathering changes from different types of |
196 |
sources and collaboratively organizing them into packaged software for the end |
|
12221.5.2
by Jonathan Lange
Import document from google docs |
197 |
user, delivered as part of an operating system that can be downloaded or that |
198 |
comes already installed on purchased hardware. |
|
199 |
||
200 |
If you start by thinking of Launchpad as a traditional software “forge” – a |
|
201 |
web service that provides bug tracking, code hosting and other related |
|
202 |
services – then you are not too far off understanding what Launchpad is. |
|
203 |
However, Launchpad has many distinctive traits that combine to put it into an |
|
204 |
entirely different category of software. |
|
205 |
||
206 |
But at its core, it is best to think of Launchpad as a service that meshes |
|
207 |
together two important networks: |
|
208 |
||
209 |
1. Networks of people making software |
|
210 |
2. The network of dependencies between software. |
|
211 |
||
212 |
||
213 |
Distinctive traits |
|
214 |
------------------ |
|
11307.3.2
by Jonathan Lange
Mega rough vision document |
215 |
|
11307.3.4
by Jonathan Lange
Some content for the vision document. |
216 |
Launchpad is different from other "forges" in a few important ways: |
217 |
||
11307.3.16
by Jonathan Lange
Move a bunch of stuff out to values.txt |
218 |
|
219 |
Cross-project collaboration |
|
220 |
~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|
221 |
||
222 |
No project lives in isolation. Each project is part of an ecosystem of |
|
223 |
software. Projects must be able to interact with each other, share bugs, |
|
224 |
teams, goals and code with each other. |
|
225 |
||
12221.5.4
by Jonathan Lange
Correct links to images. |
226 |
.. image:: images/cross-project-collab.svg |
12221.5.2
by Jonathan Lange
Import document from google docs |
227 |
|
228 |
Launchpad takes every chance it gets to show the connections between projects |
|
229 |
and to bring the opportunities created by those connections to light. |
|
230 |
||
231 |
By encompassing the entire process, all the way to operating system delivery, |
|
232 |
Launchpad can provide a unique service: enable each contributor to focus on |
|
233 |
the work they care about, while giving them an ambient awareness of how their |
|
234 |
work fits into a larger picture, and providing a path by which they can |
|
235 |
participate in other parts of that picture when they feel the need. |
|
236 |
||
11307.3.16
by Jonathan Lange
Move a bunch of stuff out to values.txt |
237 |
|
238 |
Front-end to open source |
|
11307.3.4
by Jonathan Lange
Some content for the vision document. |
239 |
~~~~~~~~~~~~~~~~~~~~~~~~ |
240 |
||
11307.3.16
by Jonathan Lange
Move a bunch of stuff out to values.txt |
241 |
Launchpad aims to be a front-end to open source. Whether or not a project |
242 |
chooses to host on Launchpad, opportunistic developers can use Launchpad to |
|
243 |
navigate bugs, get code and send patches. Likewise, we aim to present a |
|
244 |
uniform interface to the projects we have. |
|
245 |
||
246 |
||
12221.5.2
by Jonathan Lange
Import document from google docs |
247 |
Centralized service |
248 |
~~~~~~~~~~~~~~~~~~~ |
|
249 |
||
250 |
Because Launchpad emphasises cross-project collaboration, and because |
|
251 |
Launchpad aims to be a front-end to all of open source, it necessarily has to |
|
252 |
be a centralized service rather than a product that users deploy on their own |
|
253 |
servers. |
|
254 |
||
255 |
||
256 |
Networks of collaborators |
|
257 |
~~~~~~~~~~~~~~~~~~~~~~~~~ |
|
258 |
||
259 |
Launchpad understands that much of the human interaction around open source is |
|
260 |
not primarily social, but rather collaborative: many people working together |
|
261 |
in different ways toward the same goals. |
|
262 |
||
263 |
As such, Launchpad highlights actions and opportunities rather than |
|
264 |
conversations and status. It answers questions like, “what can I do for you?”, |
|
265 |
“who could help me do this?”, “who is waiting on me in order to get their |
|
266 |
thing done?”, “can I rely on the advice offered by this person?” and so forth. |
|
267 |
||
268 |
||
11307.3.16
by Jonathan Lange
Move a bunch of stuff out to values.txt |
269 |
Distributions are projects too |
270 |
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|
271 |
||
272 |
Launchpad hosts Linux distributions in much the same way as it hosts projects, |
|
273 |
allowing for developers to feel at home when interacting with distributions. |
|
274 |
||
275 |
||
276 |
Gated development |
|
277 |
~~~~~~~~~~~~~~~~~ |
|
278 |
||
279 |
Sometimes, secrets are necessary. Launchpad understands that sometimes |
|
280 |
development needs to be done privately, and the results only later shared with |
|
281 |
the world. Security fixes, OEM development for new hardware, proprietary |
|
282 |
services with open source clients are all examples of these. |
|
283 |
||
284 |
||
285 |
Hardware matters |
|
286 |
~~~~~~~~~~~~~~~~ |
|
287 |
||
12221.5.2
by Jonathan Lange
Import document from google docs |
288 |
Many software developers like to pretend that hardware does not really |
289 |
exist. When people distribute software as part of an operating system, they |
|
290 |
don't have the luxury of forgetting. Launchpad understands that developers |
|
291 |
often need to acknowledge and work around differences thrown up by hardware. |
|
11307.3.16
by Jonathan Lange
Move a bunch of stuff out to values.txt |
292 |
|
293 |
||
294 |
We don't care if you use Launchpad, sort of |
|
295 |
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|
296 |
||
297 |
Many other forges exist to become more successful. Although we love our users |
|
12221.5.2
by Jonathan Lange
Import document from google docs |
298 |
and welcome every new user, Launchpad does not judge its success by the number |
299 |
of users. If one project wishes to host its development on another platform, |
|
300 |
Launchpad acts as a front-end to that platform. |
|
11307.3.16
by Jonathan Lange
Move a bunch of stuff out to values.txt |
301 |
|
302 |
||
303 |
One project, many communities |
|
304 |
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|
305 |
||
306 |
Any given project can have many distinct communities interested in it. These |
|
307 |
communities have different interests and different motivations, but all work |
|
308 |
in the same project space so that they can easily benefit from each others' |
|
309 |
efforts. |
|
11307.3.14
by Jonathan Lange
Recent notes. |
310 |
|
311 |
||
12221.5.2
by Jonathan Lange
Import document from google docs |
312 |
Scope |
313 |
===== |
|
314 |
||
315 |
Launchpad has many major components. These can be broken up into four major |
|
316 |
areas of functionality: |
|
317 |
||
318 |
1. where work is done; developers interact with other developers |
|
319 |
2. where plans are made and reviewed; expert users interact with expert users |
|
320 |
and developers |
|
321 |
3. where projects engage with their communities; developers interact with end |
|
322 |
users and other developers, and vice-versa |
|
323 |
4. major supporting features |
|
324 |
||
12221.5.4
by Jonathan Lange
Correct links to images. |
325 |
.. image:: images/scope.svg |
12221.5.2
by Jonathan Lange
Import document from google docs |
326 |
|
327 |
Work |
|
328 |
---- |
|
329 |
||
330 |
At the core of every software project is the actual code that makes up that |
|
331 |
project. Here “code” is a broad term that also includes the project’s |
|
332 |
documentation, the translatable and translated strings that make up its user |
|
333 |
interface, the packaging and integration scripts required to get the software |
|
334 |
installed on end user’s systems and so forth. |
|
335 |
||
336 |
Launchpad is built to be able to take contributions from anybody, regardless |
|
337 |
of how involved they are in a project. For packages, translations and code |
|
338 |
proper we provide mechanisms to allow people to review changes from others and |
|
339 |
then merge them into the official parts of the project. |
|
340 |
||
341 |
Launchpad pulls in changes that happen in the upstreams and downstreams of a |
|
342 |
project, whether those changes are patches to code, new translations or |
|
343 |
packaging updates. It makes contributors to a project aware of the work that’s |
|
344 |
going on upstream and downstream and helps them take advantage of that work. |
|
345 |
||
346 |
And, of course, all work is for nothing if it does not get to the people who |
|
347 |
might want to actually use its results. As such, project maintainers can |
|
348 |
publish released versions of their code, any contributor can publish Ubuntu |
|
349 |
packages to unofficial archives or even set up Launchpad to automatically |
|
350 |
build and publish packages of latest snapshots of code. |
|
351 |
||
352 |
||
353 |
Plans |
|
354 |
----- |
|
355 |
||
356 |
People who are interested in doing something great will need to coordinate |
|
357 |
their work, keep track of the defects in the things they have already done and |
|
358 |
describe the things that they aren't doing yet but wish they could. |
|
359 |
||
360 |
Every software product in the world has bugs. For some projects, the rate of |
|
361 |
incoming bugs is fairly low, and each bug can expect to receive some attention |
|
362 |
from a core developer. For other projects, the rate of new bugs filed is so |
|
363 |
high that the core development team can never hope to keep up with it. |
|
364 |
Launchpad supports both kinds of projects. |
|
365 |
||
366 |
If every software product has bugs, every software user has great ideas about |
|
367 |
how a product can be improved. Project maintainers need to get at these ideas, |
|
368 |
evaluate them, and develop them into workable concepts. |
|
369 |
||
370 |
Often, a problem is so tricky that those concerned need to have a detailed, |
|
371 |
managed discussion about what exactly the problem is. At other times, the |
|
372 |
problem is easy enough to define, but there are so many solutions with |
|
373 |
difficult trade-offs or difficult implementations that it is better to talk |
|
374 |
about them and plan them out before proceeding with any of them. Launchpad |
|
375 |
acknowledges that this can happen on any project, and that becoming clear on a |
|
376 |
problem or becoming clear on the “best” solution can be helped a great deal |
|
377 |
using tools. |
|
378 |
||
379 |
Crucially, all of these different types of “plans” – bugs, specifications, |
|
380 |
blueprints, ideas – can span more than one code base and more than one |
|
381 |
conceptual project. These plans need to be drafted, discussed, clarified and |
|
382 |
reviewed before work starts, monitored, evaluated and changed as work |
|
383 |
progresses, and then the results of that work need to be checked against the |
|
384 |
plan when the work is finished. |
|
385 |
||
386 |
||
387 |
Community |
|
388 |
--------- |
|
389 |
||
390 |
Not everything that’s done on a project is work toward a particular outcome, |
|
391 |
or plans for how to get there. Every project needs to have some things that |
|
392 |
are more general and stable. |
|
393 |
||
394 |
Projects need to be able to present themselves to the world, confident in |
|
395 |
their identity and communicating exactly what they are about. Project |
|
396 |
maintainers need to be able to announce important news, such as releases, |
|
397 |
license changes or new practices. Contributors need to get a sense of who is |
|
398 |
working on which parts of the project. Users need to be able to ask questions, |
|
399 |
get support and give feedback. |
|
400 |
||
401 |
Contributors also need to share documentation about the project and how the |
|
402 |
project runs. They need to be able to discuss general topics about the |
|
403 |
project. |
|
404 |
||
405 |
Launchpad supports all of these things, and also makes it clear how any |
|
406 |
project fits into the broader ecosystem of projects. It shows which projects |
|
407 |
are upstreams or downstreams, which projects are affiliated with other |
|
408 |
projects, which projects share contributors with other projects and so forth. |
|
409 |
||
410 |
||
411 |
Supporting features |
|
412 |
------------------- |
|
413 |
||
414 |
Launchpad has many major areas of functionality that are best considered as |
|
415 |
“supporting features”: APIs, migration services, privacy, the mail UI, |
|
416 |
synchronizing with external systems. |
|
417 |
||
11307.3.14
by Jonathan Lange
Recent notes. |
418 |
|
11307.3.2
by Jonathan Lange
Mega rough vision document |
419 |
New World |
420 |
========= |
|
421 |
||
12221.5.2
by Jonathan Lange
Import document from google docs |
422 |
When Launchpad is really doing all of these things and doing them well, the |
423 |
world of open source software will be significantly changed. |
|
424 |
||
425 |
Patches will no longer lie decaying in someone else’s bug tracker, waiting to |
|
426 |
be noticed. Instead, they will all be synced into a central code review system |
|
427 |
and queued for review and approval. |
|
428 |
||
429 |
Instead of a distribution tracking one set of bugs and upstream projects |
|
430 |
tracking their own set of sometimes duplicated bugs, both upstream and |
|
431 |
downstream developers can seamlessly accesses both sets of bugs. |
|
432 |
||
433 |
||
434 |
The story of a bug |
|
435 |
------------------ |
|
436 |
||
437 |
*Arnold* writes software for a living, and he runs Ubuntu on his desktop. He |
|
438 |
wishes he could contribute to open source, but he doesn’t have much spare |
|
439 |
time, and when he gets home from his job the last thing he wants to do is |
|
440 |
program. However, the spirit of willingness is there. |
|
441 |
||
442 |
One day, Arnold notices that Tomboy loses his formatting if he alt-tabs at the |
|
443 |
wrong time. Arnold knows that a well-filed bug report is a thing of beauty to |
|
444 |
most programmers, so he decides to spend a few moments to file a bug against |
|
445 |
Tomboy. |
|
446 |
||
447 |
Rather than search the net to find where Tomboy tracks its bugs, Arnold uses |
|
448 |
Ubuntu’s built-in bug filing mechanism. It asks him a bunch of questions, |
|
449 |
invites Arnold to write his bug report and then files the bug on Launchpad |
|
450 |
against the Tomboy package in Ubuntu. |
|
451 |
||
452 |
*Becca* has been dabbling in Ubuntu contribution for a while, mostly by |
|
453 |
helping new users solve their problems or turn them into good bug reports. She |
|
454 |
notices Arnold’s bug, sees that it’s well written and thinks that it would be |
|
455 |
easy enough to test against trunk. She opens up the Tomboy source package in |
|
456 |
Ubuntu and sees that there is a known-good daily build of Tomboy’s trunk |
|
457 |
hosted in a trusted user archive. Becca installs Tomboy from this archive and |
|
458 |
tests to see if the bug is still there in the latest version of the code. It |
|
459 |
is. Becca sees this, opens up the original bug report and clicks a button to |
|
460 |
forward the bug to the upstream bug tracker. |
|
461 |
||
462 |
*Carlos* is one of the Tomboy developers. He sees the bug in the tracker, sees |
|
463 |
that it has been tested against trunk, realizes that it’s an annoying bug |
|
464 |
that’s easy to fix and decides to fix it. He does the fix, applies it to the |
|
465 |
Tomboy trunk and marks the bug as fixed. |
|
466 |
||
467 |
At this point, both Arnold and Becca are notified that the bug is fixed in |
|
468 |
Tomboy trunk, and that they can try a version of Tomboy that has the fix by |
|
469 |
using the known-good daily build archive for Tomboy. They are warned that this |
|
470 |
is dangerous and may cause data loss, but they are also told how they can try |
|
471 |
the bug fix for free using a cloud-based Ubuntu desktop. They both try the |
|
472 |
bug, see that it’s fixed, and are happy, albeit a little impatient for the fix |
|
473 |
to be actually released and part of stock Ubuntu. |
|
474 |
||
475 |
Meanwhile, *Dalia* is an Ubuntu developer who takes a special interest in |
|
476 |
desktop productivity applications like Tomboy. She checks on the Ubuntu source |
|
477 |
package for Tomboy from time to time. The last time she checked, she saw that |
|
478 |
quite a few bugs have been fixed in trunk but not yet released. Since she |
|
479 |
knows the Tomboy release manager from long hours of IRC chat, she contacts him |
|
480 |
and gently suggests that he do a release. |
|
481 |
||
482 |
*Edmund*, the Tomboy release manager, takes Dalia’s hint well and realizes |
|
483 |
that a release is way overdue. He makes a release of Tomboy following his |
|
484 |
normal procedure. |
|
485 |
||
486 |
Launchpad detects that Tomboy has a new, official release and alerts |
|
487 |
interested distribution maintainers that the release has been made and now |
|
488 |
would be a good time to package a new version. Dalia packages up a new |
|
489 |
version, requests that an Ubuntu core developer sponsor the change and then |
|
490 |
waits for the new version to be uploaded. Dalia also uploads the fixed version |
|
491 |
to one of her personal archives so that others can easily get it without |
|
492 |
waiting for the next release of Ubuntu. |
|
493 |
||
494 |
*Fiona* the Ubuntu core developer sees Dalia’s patch in the sponsorship queue |
|
495 |
on Launchpad, notes that it’s all good and then uploads the patch to the |
|
496 |
official Ubuntu archive. (Fiona might also choose to upload the patch to |
|
497 |
Debian). |
|
498 |
||
499 |
Launchpad sees that this upload fixes a number of bugs, including the one |
|
500 |
originally filed by Arnold, and automatically includes those bugs in the list |
|
501 |
of bugs that will be fixed by the next release of Ubuntu. |
|
502 |
||
503 |
Two months later, the next release of Ubuntu is actually released. Arnold |
|
504 |
upgrades on release day, and tries out Tomboy to see if his bug was really, |
|
505 |
actually fixed. It is, and all is right with the world. |
|
506 |
||
507 |
||
508 |
Glossary |
|
509 |
======== |
|
510 |
||
511 |
Upstream |
|
512 |
A software project itself, as opposed to the packaged version of a software |
|
513 |
project that is included in a distribution. Note, can also be used as a |
|
514 |
relative term, e.g. “Debian is upstream of Ubuntu”. |
|
515 |
||
516 |
Downstream |
|
517 |
The opposite of an upstream. Can be used to refer either to a packaged |
|
518 |
version of a specific software project, or the entire distribution where |
|
519 |
that package occurs. |
|
520 |
||
521 |
||
522 |
References |
|
523 |
========== |
|
524 |
||
525 |
* `Product values <values.txt>`_ |
|
526 |
* `Feature checklist <https://dev.launchpad.net/FeatureChecklist>`_ |