Merge lp:~jml/launchpad/vision-doc-split into lp:launchpad

Proposed by Jonathan Lange
Status: Merged
Merged at revision: 12726
Proposed branch: lp:~jml/launchpad/vision-doc-split
Merge into: lp:launchpad
Diff against target: 802 lines (+378/-358)
4 files modified
doc/index.txt (+2/-1)
doc/scope.txt (+341/-0)
doc/strategy.txt (+14/-344)
doc/values.txt (+21/-13)
To merge this branch: bzr merge lp:~jml/launchpad/vision-doc-split
Reviewer Review Type Date Requested Status
Gavin Panella (community) Approve
Matthew Revell (community) Approve
Review via email: mp+55789@code.launchpad.net

Description of the change

I was looking over the vision document and noticed that it was a bit long. I thought that it might be a good idea to split it into a "strategy" document which talks about "why and who for", and a "scope" document that talks about "what". This branch does that.

It also cleans up some rST issues and wording issues and renames the 'vision' file to 'strategy'.

To look over the docs, download the branch, run 'make doc', and then browse to 'doc/_build/html/index.html'. Very much open to feedback on the broader area rather than simply the changes in this branch.

To post a comment you must log in.
Revision history for this message
Jonathan Lange (jml) wrote :

Oh, should point out that the images look tiny in Chrome, but are proper sized in Firefox.

Revision history for this message
Gavin Panella (allenap) wrote :

This looks good, but I haven't time this evening to give it a thorough read through. I'll do that in the morning. In the meantime I've left the ~launchpad review slot open.

Revision history for this message
Martin Pool (mbp) wrote :

+1

It would be nice if there was a standard url for them. Or perhaps they should move onto the dev wiki or the blog.

Revision history for this message
Matthew Revell (matthew.revell) wrote :

Thanks, it was nice to have an excuse to spend some time reading this again.

I think the split works well.

I should probably know this but why is this published at "http://lpqateam.canonical.com/doc/"? Presumably because we had that subdomain easily available to us.

Also, I'd second Martin's call and suggest we make the link to this, from the dev wiki, more prominent. I need to spend some time fixing up the dev wiki in general.

I noticed something in the scope doc:

"Many other forges exist to become more successful." I understand why you've used this wording and I feel that I am nitpicking here but I think we want Launchpad to become more successful, it's just that we have a different definition of success.

review: Approve
Revision history for this message
Jonathan Lange (jml) wrote :

On Fri, Apr 1, 2011 at 10:09 AM, Matthew Revell
<email address hidden> wrote:
> Review: Approve
> Thanks, it was nice to have an excuse to spend some time reading this again.
>
> I think the split works well.
>
> I should probably know this but why is this published at "http://lpqateam.canonical.com/doc/"? Presumably because we had that subdomain easily available to us.
>

Exactly. When we are being blocked on RTs for things that actually
affect users and developers, I figured I'd take what I could get.

> Also, I'd second Martin's call and suggest we make the link to this, from the dev wiki, more prominent. I need to spend some time fixing up the dev wiki in general.
>

As long as it's a link. I think having these on the wiki will lead to
them being more poorly maintained.

> I noticed something in the scope doc:
>
> "Many other forges exist to become more successful." I understand why you've used this wording and I feel that I am nitpicking here but I think we want Launchpad to become more successful, it's just that we have a different definition of success.
>

Fair call. Changed to "Many other forges define their success by how
many users they have."

jml

Revision history for this message
Gavin Panella (allenap) wrote :

Like Matt, I think it would be good to make this more visible, more public. The audience of this is not the same as the audience of the code in the tree, so perhaps it's not in the perfect location, but perfect is the enemy of good.

+1

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'doc/index.txt'
--- doc/index.txt 2011-02-16 13:08:25 +0000
+++ doc/index.txt 2011-04-01 10:09:24 +0000
@@ -17,7 +17,8 @@
17 :maxdepth: 117 :maxdepth: 1
1818
19 readme19 readme
20 vision20 strategy
21 scope
21 values22 values
2223
23Technical24Technical
2425
=== added file 'doc/scope.txt'
--- doc/scope.txt 1970-01-01 00:00:00 +0000
+++ doc/scope.txt 2011-04-01 10:09:24 +0000
@@ -0,0 +1,341 @@
1==================
2What is Launchpad?
3==================
4
5Launchpad is a complete system for gathering changes from different types of
6sources and collaboratively organizing them into packaged software for the end
7user, delivered as part of an operating system that can be downloaded or that
8comes already installed on purchased hardware.
9
10If you start by thinking of Launchpad as a traditional software “forge” – a
11web service that provides bug tracking, code hosting and other related
12services – then you are not too far off understanding what Launchpad is.
13However, Launchpad has many distinctive traits that combine to put it into an
14entirely different category of software.
15
16But at its core, it is best to think of Launchpad as a service that meshes
17together two important networks:
18
191. Networks of people making software
202. The network of dependencies between software
21
22But first, a story.
23
24
25The Story of a Bug
26==================
27
28*Arnold* writes software for a living, and he runs Ubuntu on his desktop. He
29wishes he could contribute to open source, but he doesn’t have much spare
30time, and when he gets home from his job the last thing he wants to do is
31program. However, the spirit of willingness is there.
32
33One day, Arnold notices that Tomboy loses his formatting if he alt-tabs at the
34wrong time. Arnold knows that a well-filed bug report is a thing of beauty to
35most programmers, so he decides to spend a few moments to file a bug against
36Tomboy.
37
38Rather than search the net to find where Tomboy tracks its bugs, Arnold uses
39Ubuntu’s built-in bug filing mechanism. It asks him a bunch of questions,
40invites Arnold to write his bug report and then files the bug on Launchpad
41against the Tomboy package in Ubuntu.
42
43*Becca* has been dabbling in Ubuntu contribution for a while, mostly by
44helping new users solve their problems or turn them into good bug reports. She
45notices Arnold’s bug, sees that it’s well written and thinks that it would be
46easy enough to test against trunk. She opens up the Tomboy source package in
47Ubuntu and sees that there is a known-good daily build of Tomboy’s trunk
48hosted in a trusted user archive. Becca installs Tomboy from this archive and
49tests to see if the bug is still there in the latest version of the code. It
50is. Becca sees this, opens up the original bug report and clicks a button to
51forward the bug to the upstream bug tracker.
52
53*Carlos* is one of the Tomboy developers. He sees the bug in the tracker, sees
54that it has been tested against trunk, realizes that it’s an annoying bug
55that’s easy to fix and decides to fix it. He does the fix, applies it to the
56Tomboy trunk and marks the bug as fixed.
57
58At this point, both Arnold and Becca are notified that the bug is fixed in
59Tomboy trunk, and that they can try a version of Tomboy that has the fix by
60using the known-good daily build archive for Tomboy. They are warned that this
61is dangerous and may cause data loss, but they are also told how they can try
62the bug fix for free using a cloud-based Ubuntu desktop. They both try the
63bug, see that it’s fixed, and are happy, albeit a little impatient for the fix
64to be actually released and part of stock Ubuntu.
65
66Meanwhile, *Dalia* is an Ubuntu developer who takes a special interest in
67desktop productivity applications like Tomboy. She checks on the Ubuntu source
68package for Tomboy from time to time. The last time she checked, she saw that
69quite a few bugs have been fixed in trunk but not yet released. Since she
70knows the Tomboy release manager from long hours of IRC chat, she contacts him
71and gently suggests that he do a release.
72
73*Edmund*, the Tomboy release manager, takes Dalia’s hint well and realizes
74that a release is way overdue. He makes a release of Tomboy following his
75normal procedure.
76
77Launchpad detects that Tomboy has a new, official release and alerts
78interested distribution maintainers that the release has been made and now
79would be a good time to package a new version. Dalia packages up a new
80version, requests that an Ubuntu core developer sponsor the change and then
81waits for the new version to be uploaded. Dalia also uploads the fixed version
82to one of her personal archives so that others can easily get it without
83waiting for the next release of Ubuntu.
84
85*Fiona* the Ubuntu core developer sees Dalia’s patch in the sponsorship queue
86on Launchpad, notes that it’s all good and then uploads the patch to the
87official Ubuntu archive. (Fiona might also choose to upload the patch to
88Debian).
89
90Launchpad sees that this upload fixes a number of bugs, including the one
91originally filed by Arnold, and automatically includes those bugs in the list
92of bugs that will be fixed by the next release of Ubuntu.
93
94Two months later, the next release of Ubuntu is actually released. Arnold
95upgrades on release day, and tries out Tomboy to see if his bug was really,
96actually fixed. It is, and all is right with the world.
97
98
99
100
101Distinctive traits
102==================
103
104Launchpad is different from other "forges" in a few important ways:
105
106
107Cross-project collaboration
108---------------------------
109
110No project lives in isolation. Each project is part of an ecosystem of
111software. Projects must be able to interact with each other, share bugs,
112teams, goals and code with each other.
113
114.. image:: images/cross-project-collab.svg
115
116Launchpad takes every chance it gets to show the connections between projects
117and to bring the opportunities created by those connections to light.
118
119By encompassing the entire process, all the way to operating system delivery,
120Launchpad can provide a unique service: enable each contributor to focus on
121the work they care about, while giving them an ambient awareness of how their
122work fits into a larger picture, and providing a path by which they can
123participate in other parts of that picture when they feel the need.
124
125
126Front-end to open source
127------------------------
128
129Launchpad aims to be a front-end to open source. Whether or not a project
130chooses to host on Launchpad, opportunistic developers can use Launchpad to
131navigate bugs, get code and send patches. Likewise, we aim to present a
132uniform interface to the projects we have.
133
134
135Centralized service
136-------------------
137
138Because Launchpad emphasises cross-project collaboration, and because
139Launchpad aims to be a front-end to all of open source, it necessarily has to
140be a centralized service rather than a product that users deploy on their own
141servers.
142
143
144Networks of collaborators
145-------------------------
146
147Launchpad understands that much of the human interaction around open source is
148not primarily social, but rather collaborative: many people working together
149in different ways toward the same goals.
150
151As such, Launchpad highlights actions and opportunities rather than
152conversations and status. It answers questions like, “what can I do for you?”,
153“who could help me do this?”, “who is waiting on me in order to get their
154thing done?”, “can I rely on the advice offered by this person?” and so forth.
155
156
157Distributions are projects too
158------------------------------
159
160Launchpad hosts Linux distributions in much the same way as it hosts projects,
161allowing for developers to feel at home when interacting with distributions.
162
163
164Gated development
165-----------------
166
167Sometimes, secrets are necessary. Launchpad understands that sometimes
168development needs to be done privately, and the results only later shared with
169the world. Security fixes, OEM development for new hardware, proprietary
170services with open source clients are all examples of these.
171
172
173Hardware matters
174----------------
175
176Many software developers like to pretend that hardware does not really
177exist. When people distribute software as part of an operating system, they
178don't have the luxury of forgetting. Launchpad understands that developers
179often need to acknowledge and work around differences thrown up by hardware.
180
181
182We don't care if you use Launchpad, sort of
183-------------------------------------------
184
185Many other forges define their success by how many users they have. Although
186we love our users and welcome every new user, Launchpad does not judge its
187success by the number of users. If one project wishes to host its development
188on another platform, Launchpad acts as a front-end to that platform.
189
190
191One project, many communities
192-----------------------------
193
194Any given project can have many distinct communities interested in it. These
195communities have different interests and different motivations, but all work
196in the same project space so that they can easily benefit from each others'
197efforts.
198
199
200Scope
201=====
202
203Launchpad has many major components. These can be broken up into four major
204areas of functionality:
205
2061. where work is done; developers interact with other developers
2072. where plans are made and reviewed; expert users interact with expert users
208 and developers
2093. where projects engage with their communities; developers interact with end
210 users and other developers, and vice-versa
2114. major supporting features
212
213.. image:: images/scope.svg
214
215Work
216----
217
218At the core of every software project is the actual code that makes up that
219project. Here “code” is a broad term that also includes the project’s
220documentation, the translatable and translated strings that make up its user
221interface, the packaging and integration scripts required to get the software
222installed on end user’s systems and so forth.
223
224Launchpad is built to be able to take contributions from anybody, regardless
225of how involved they are in a project. For packages, translations and code
226proper we provide mechanisms to allow people to review changes from others and
227then merge them into the official parts of the project.
228
229Launchpad pulls in changes that happen in the upstreams and downstreams of a
230project, whether those changes are patches to code, new translations or
231packaging updates. It makes contributors to a project aware of the work that’s
232going on upstream and downstream and helps them take advantage of that work.
233
234And, of course, all work is for nothing if it does not get to the people who
235might want to actually use its results. As such, project maintainers can
236publish released versions of their code, any contributor can publish Ubuntu
237packages to unofficial archives or even set up Launchpad to automatically
238build and publish packages of latest snapshots of code.
239
240
241Plans
242-----
243
244People who are interested in doing something great will need to coordinate
245their work, keep track of the defects in the things they have already done and
246describe the things that they aren't doing yet but wish they could.
247
248Every software product in the world has bugs. For some projects, the rate of
249incoming bugs is fairly low, and each bug can expect to receive some attention
250from a core developer. For other projects, the rate of new bugs filed is so
251high that the core development team can never hope to keep up with it.
252Launchpad supports both kinds of projects.
253
254If every software product has bugs, every software user has great ideas about
255how a product can be improved. Project maintainers need to get at these ideas,
256evaluate them, and develop them into workable concepts.
257
258Often, a problem is so tricky that those concerned need to have a detailed,
259managed discussion about what exactly the problem is. At other times, the
260problem is easy enough to define, but there are so many solutions with
261difficult trade-offs or difficult implementations that it is better to talk
262about them and plan them out before proceeding with any of them. Launchpad
263acknowledges that this can happen on any project, and that becoming clear on a
264problem or becoming clear on the “best” solution can be helped a great deal
265using tools.
266
267Crucially, all of these different types of “plans” – bugs, specifications,
268blueprints, ideas – can span more than one code base and more than one
269conceptual project. These plans need to be drafted, discussed, clarified and
270reviewed before work starts, monitored, evaluated and changed as work
271progresses, and then the results of that work need to be checked against the
272plan when the work is finished.
273
274
275Community
276---------
277
278Not everything that’s done on a project is work toward a particular outcome,
279or plans for how to get there. Every project needs to have some things that
280are more general and stable.
281
282Projects need to be able to present themselves to the world, confident in
283their identity and communicating exactly what they are about. Project
284maintainers need to be able to announce important news, such as releases,
285license changes or new practices. Contributors need to get a sense of who is
286working on which parts of the project. Users need to be able to ask questions,
287get support and give feedback.
288
289Contributors also need to share documentation about the project and how the
290project runs. They need to be able to discuss general topics about the
291project.
292
293Launchpad supports all of these things, and also makes it clear how any
294project fits into the broader ecosystem of projects. It shows which projects
295are upstreams or downstreams, which projects are affiliated with other
296projects, which projects share contributors with other projects and so forth.
297
298
299Supporting features
300-------------------
301
302Launchpad has many major areas of functionality that are best considered as
303“supporting features”: APIs, migration services, privacy, the mail UI,
304synchronizing with external systems.
305
306
307New World
308=========
309
310When Launchpad is really doing all of these things and doing them well, the
311world of open source software will be significantly changed.
312
313Patches will no longer lie decaying in someone else’s bug tracker, waiting to
314be noticed. Instead, they will all be synced into a central code review system
315and queued for review and approval.
316
317Instead of a distribution tracking one set of bugs and upstream projects
318tracking their own set of sometimes duplicated bugs, both upstream and
319downstream developers can seamlessly accesses both sets of bugs.
320
321
322Glossary
323========
324
325Upstream
326 A software project itself, as opposed to the packaged version of a software
327 project that is included in a distribution. Note, can also be used as a
328 relative term, e.g. “Debian is upstream of Ubuntu”.
329
330Downstream
331 The opposite of an upstream. Can be used to refer either to a packaged
332 version of a specific software project, or the entire distribution where
333 that package occurs.
334
335
336References
337==========
338
339* :doc:`strategy`
340* :doc:`values`
341* `Feature checklist <https://dev.launchpad.net/FeatureChecklist>`_
0342
=== renamed file 'doc/vision.txt' => 'doc/strategy.txt'
--- doc/vision.txt 2011-01-16 19:49:31 +0000
+++ doc/strategy.txt 2011-04-01 10:09:24 +0000
@@ -1,6 +1,6 @@
1=============================1==================
2Launchpad: Strategy and scope2Launchpad Strategy
3=============================3==================
44
5*We want to make Ubuntu the world’s best operating system. To do this, we need5*We want to make Ubuntu the world’s best operating system. To do this, we need
6to give Canonical an edge in productivity over and above other Linux vendors6to give Canonical an edge in productivity over and above other Linux vendors
@@ -17,16 +17,15 @@
17This document tries to answer two big questions:17This document tries to answer two big questions:
1818
191. *why* are we making Launchpad?191. *why* are we making Launchpad?
201. *what* is Launchpad supposed to be?202. *who* is Launchpad for?
21
22This is not our strategy for the year or the scope of Launchpad development
23for the next six months. Rather, it is our answer to these fundamental
24questions.
2125
22When you are finished reading this document, you should know what problems we26When you are finished reading this document, you should know what problems we
23want to solve, what we hope to gain from solving these problems, how we decide27want to solve, what we hope to gain from solving these problems and how we
24whether something is in scope or not and how we know if Launchpad is doing28know if Launchpad is doing well.
25well.
26
27This is not our strategy for the year or our scope of Launchpad development
28for the next six months. Rather, it is our answer to the fundamental
29questions: what is Launchpad and why is Canonical investing in it?.
3029
3130
32Audience31Audience
@@ -37,8 +36,8 @@
37developers of Launchpad, whether they are Canonical employees or not.36developers of Launchpad, whether they are Canonical employees or not.
3837
3938
40Strategy -- Why are we doing this?39Why are we making Launchpad?
41==================================40============================
4241
43The world we live in42The world we live in
44--------------------43--------------------
@@ -189,338 +188,9 @@
189than many open source and even proprietary projects.188than many open source and even proprietary projects.
190189
191190
192What is Launchpad?
193==================
194
195Launchpad is a complete system for gathering changes from different types of
196sources and collaboratively organizing them into packaged software for the end
197user, delivered as part of an operating system that can be downloaded or that
198comes already installed on purchased hardware.
199
200If you start by thinking of Launchpad as a traditional software “forge” – a
201web service that provides bug tracking, code hosting and other related
202services – then you are not too far off understanding what Launchpad is.
203However, Launchpad has many distinctive traits that combine to put it into an
204entirely different category of software.
205
206But at its core, it is best to think of Launchpad as a service that meshes
207together two important networks:
208
2091. Networks of people making software
2102. The network of dependencies between software.
211
212
213Distinctive traits
214------------------
215
216Launchpad is different from other "forges" in a few important ways:
217
218
219Cross-project collaboration
220~~~~~~~~~~~~~~~~~~~~~~~~~~~
221
222No project lives in isolation. Each project is part of an ecosystem of
223software. Projects must be able to interact with each other, share bugs,
224teams, goals and code with each other.
225
226.. image:: images/cross-project-collab.svg
227
228Launchpad takes every chance it gets to show the connections between projects
229and to bring the opportunities created by those connections to light.
230
231By encompassing the entire process, all the way to operating system delivery,
232Launchpad can provide a unique service: enable each contributor to focus on
233the work they care about, while giving them an ambient awareness of how their
234work fits into a larger picture, and providing a path by which they can
235participate in other parts of that picture when they feel the need.
236
237
238Front-end to open source
239~~~~~~~~~~~~~~~~~~~~~~~~
240
241Launchpad aims to be a front-end to open source. Whether or not a project
242chooses to host on Launchpad, opportunistic developers can use Launchpad to
243navigate bugs, get code and send patches. Likewise, we aim to present a
244uniform interface to the projects we have.
245
246
247Centralized service
248~~~~~~~~~~~~~~~~~~~
249
250Because Launchpad emphasises cross-project collaboration, and because
251Launchpad aims to be a front-end to all of open source, it necessarily has to
252be a centralized service rather than a product that users deploy on their own
253servers.
254
255
256Networks of collaborators
257~~~~~~~~~~~~~~~~~~~~~~~~~
258
259Launchpad understands that much of the human interaction around open source is
260not primarily social, but rather collaborative: many people working together
261in different ways toward the same goals.
262
263As such, Launchpad highlights actions and opportunities rather than
264conversations 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
266thing done?”, “can I rely on the advice offered by this person?” and so forth.
267
268
269Distributions are projects too
270~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
271
272Launchpad hosts Linux distributions in much the same way as it hosts projects,
273allowing for developers to feel at home when interacting with distributions.
274
275
276Gated development
277~~~~~~~~~~~~~~~~~
278
279Sometimes, secrets are necessary. Launchpad understands that sometimes
280development needs to be done privately, and the results only later shared with
281the world. Security fixes, OEM development for new hardware, proprietary
282services with open source clients are all examples of these.
283
284
285Hardware matters
286~~~~~~~~~~~~~~~~
287
288Many software developers like to pretend that hardware does not really
289exist. When people distribute software as part of an operating system, they
290don't have the luxury of forgetting. Launchpad understands that developers
291often need to acknowledge and work around differences thrown up by hardware.
292
293
294We don't care if you use Launchpad, sort of
295~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
296
297Many other forges exist to become more successful. Although we love our users
298and welcome every new user, Launchpad does not judge its success by the number
299of users. If one project wishes to host its development on another platform,
300Launchpad acts as a front-end to that platform.
301
302
303One project, many communities
304~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
305
306Any given project can have many distinct communities interested in it. These
307communities have different interests and different motivations, but all work
308in the same project space so that they can easily benefit from each others'
309efforts.
310
311
312Scope
313=====
314
315Launchpad has many major components. These can be broken up into four major
316areas of functionality:
317
3181. where work is done; developers interact with other developers
3192. where plans are made and reviewed; expert users interact with expert users
320 and developers
3213. where projects engage with their communities; developers interact with end
322 users and other developers, and vice-versa
3234. major supporting features
324
325.. image:: images/scope.svg
326
327Work
328----
329
330At the core of every software project is the actual code that makes up that
331project. Here “code” is a broad term that also includes the project’s
332documentation, the translatable and translated strings that make up its user
333interface, the packaging and integration scripts required to get the software
334installed on end user’s systems and so forth.
335
336Launchpad is built to be able to take contributions from anybody, regardless
337of how involved they are in a project. For packages, translations and code
338proper we provide mechanisms to allow people to review changes from others and
339then merge them into the official parts of the project.
340
341Launchpad pulls in changes that happen in the upstreams and downstreams of a
342project, whether those changes are patches to code, new translations or
343packaging updates. It makes contributors to a project aware of the work that’s
344going on upstream and downstream and helps them take advantage of that work.
345
346And, of course, all work is for nothing if it does not get to the people who
347might want to actually use its results. As such, project maintainers can
348publish released versions of their code, any contributor can publish Ubuntu
349packages to unofficial archives or even set up Launchpad to automatically
350build and publish packages of latest snapshots of code.
351
352
353Plans
354-----
355
356People who are interested in doing something great will need to coordinate
357their work, keep track of the defects in the things they have already done and
358describe the things that they aren't doing yet but wish they could.
359
360Every software product in the world has bugs. For some projects, the rate of
361incoming bugs is fairly low, and each bug can expect to receive some attention
362from a core developer. For other projects, the rate of new bugs filed is so
363high that the core development team can never hope to keep up with it.
364Launchpad supports both kinds of projects.
365
366If every software product has bugs, every software user has great ideas about
367how a product can be improved. Project maintainers need to get at these ideas,
368evaluate them, and develop them into workable concepts.
369
370Often, a problem is so tricky that those concerned need to have a detailed,
371managed discussion about what exactly the problem is. At other times, the
372problem is easy enough to define, but there are so many solutions with
373difficult trade-offs or difficult implementations that it is better to talk
374about them and plan them out before proceeding with any of them. Launchpad
375acknowledges that this can happen on any project, and that becoming clear on a
376problem or becoming clear on the “best” solution can be helped a great deal
377using tools.
378
379Crucially, all of these different types of “plans” – bugs, specifications,
380blueprints, ideas – can span more than one code base and more than one
381conceptual project. These plans need to be drafted, discussed, clarified and
382reviewed before work starts, monitored, evaluated and changed as work
383progresses, and then the results of that work need to be checked against the
384plan when the work is finished.
385
386
387Community
388---------
389
390Not everything that’s done on a project is work toward a particular outcome,
391or plans for how to get there. Every project needs to have some things that
392are more general and stable.
393
394Projects need to be able to present themselves to the world, confident in
395their identity and communicating exactly what they are about. Project
396maintainers need to be able to announce important news, such as releases,
397license changes or new practices. Contributors need to get a sense of who is
398working on which parts of the project. Users need to be able to ask questions,
399get support and give feedback.
400
401Contributors also need to share documentation about the project and how the
402project runs. They need to be able to discuss general topics about the
403project.
404
405Launchpad supports all of these things, and also makes it clear how any
406project fits into the broader ecosystem of projects. It shows which projects
407are upstreams or downstreams, which projects are affiliated with other
408projects, which projects share contributors with other projects and so forth.
409
410
411Supporting features
412-------------------
413
414Launchpad has many major areas of functionality that are best considered as
415“supporting features”: APIs, migration services, privacy, the mail UI,
416synchronizing with external systems.
417
418
419New World
420=========
421
422When Launchpad is really doing all of these things and doing them well, the
423world of open source software will be significantly changed.
424
425Patches will no longer lie decaying in someone else’s bug tracker, waiting to
426be noticed. Instead, they will all be synced into a central code review system
427and queued for review and approval.
428
429Instead of a distribution tracking one set of bugs and upstream projects
430tracking their own set of sometimes duplicated bugs, both upstream and
431downstream developers can seamlessly accesses both sets of bugs.
432
433
434The story of a bug
435------------------
436
437*Arnold* writes software for a living, and he runs Ubuntu on his desktop. He
438wishes he could contribute to open source, but he doesn’t have much spare
439time, and when he gets home from his job the last thing he wants to do is
440program. However, the spirit of willingness is there.
441
442One day, Arnold notices that Tomboy loses his formatting if he alt-tabs at the
443wrong time. Arnold knows that a well-filed bug report is a thing of beauty to
444most programmers, so he decides to spend a few moments to file a bug against
445Tomboy.
446
447Rather than search the net to find where Tomboy tracks its bugs, Arnold uses
448Ubuntu’s built-in bug filing mechanism. It asks him a bunch of questions,
449invites Arnold to write his bug report and then files the bug on Launchpad
450against the Tomboy package in Ubuntu.
451
452*Becca* has been dabbling in Ubuntu contribution for a while, mostly by
453helping new users solve their problems or turn them into good bug reports. She
454notices Arnold’s bug, sees that it’s well written and thinks that it would be
455easy enough to test against trunk. She opens up the Tomboy source package in
456Ubuntu and sees that there is a known-good daily build of Tomboy’s trunk
457hosted in a trusted user archive. Becca installs Tomboy from this archive and
458tests to see if the bug is still there in the latest version of the code. It
459is. Becca sees this, opens up the original bug report and clicks a button to
460forward the bug to the upstream bug tracker.
461
462*Carlos* is one of the Tomboy developers. He sees the bug in the tracker, sees
463that it has been tested against trunk, realizes that it’s an annoying bug
464that’s easy to fix and decides to fix it. He does the fix, applies it to the
465Tomboy trunk and marks the bug as fixed.
466
467At this point, both Arnold and Becca are notified that the bug is fixed in
468Tomboy trunk, and that they can try a version of Tomboy that has the fix by
469using the known-good daily build archive for Tomboy. They are warned that this
470is dangerous and may cause data loss, but they are also told how they can try
471the bug fix for free using a cloud-based Ubuntu desktop. They both try the
472bug, see that it’s fixed, and are happy, albeit a little impatient for the fix
473to be actually released and part of stock Ubuntu.
474
475Meanwhile, *Dalia* is an Ubuntu developer who takes a special interest in
476desktop productivity applications like Tomboy. She checks on the Ubuntu source
477package for Tomboy from time to time. The last time she checked, she saw that
478quite a few bugs have been fixed in trunk but not yet released. Since she
479knows the Tomboy release manager from long hours of IRC chat, she contacts him
480and gently suggests that he do a release.
481
482*Edmund*, the Tomboy release manager, takes Dalia’s hint well and realizes
483that a release is way overdue. He makes a release of Tomboy following his
484normal procedure.
485
486Launchpad detects that Tomboy has a new, official release and alerts
487interested distribution maintainers that the release has been made and now
488would be a good time to package a new version. Dalia packages up a new
489version, requests that an Ubuntu core developer sponsor the change and then
490waits for the new version to be uploaded. Dalia also uploads the fixed version
491to one of her personal archives so that others can easily get it without
492waiting for the next release of Ubuntu.
493
494*Fiona* the Ubuntu core developer sees Dalia’s patch in the sponsorship queue
495on Launchpad, notes that it’s all good and then uploads the patch to the
496official Ubuntu archive. (Fiona might also choose to upload the patch to
497Debian).
498
499Launchpad sees that this upload fixes a number of bugs, including the one
500originally filed by Arnold, and automatically includes those bugs in the list
501of bugs that will be fixed by the next release of Ubuntu.
502
503Two months later, the next release of Ubuntu is actually released. Arnold
504upgrades on release day, and tries out Tomboy to see if his bug was really,
505actually fixed. It is, and all is right with the world.
506
507
508Glossary
509========
510
511Upstream
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
516Downstream
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
522References191References
523==========192==========
524193
525* `Product values <values.txt>`_194* :doc:`scope`
195* :doc:`values`
526* `Feature checklist <https://dev.launchpad.net/FeatureChecklist>`_196* `Feature checklist <https://dev.launchpad.net/FeatureChecklist>`_
527197
=== modified file 'doc/values.txt'
--- doc/values.txt 2011-01-14 17:54:43 +0000
+++ doc/values.txt 2011-04-01 10:09:24 +0000
@@ -1,23 +1,24 @@
1=================1================
2Launchpad: Values2Launchpad Values
3=================3================
44
5Whenever we are thinking about what Launchpad should be, or how we should5Whenever we are thinking about what Launchpad should be, or how we should
6implement a change, or whether something is a good idea or not, we have6implement a change, or whether something is a good idea or not, we have
7recourse to two distinct sets of guidelines.7recourse to three distinct sets of guidelines.
88
9The first is the Launchpad Vision <vision>. It can help us answer questions9The first is :doc:`strategy`, which reminds us why we are making Launchpad and
10such as, "Is this in scope?", "How does this help Launchpad meet its goals?".10helps us answer questions such as "How does this help Launchpad meet its
11It tries to sort out the 'matter' of Launchpad.11goals?". The second is :doc:`scope`, which helps us answer questions like "Is
1212this in scope?". Together, they sort out the 'matter' of Launchpad.
13The second is this document, the Launchpad Values. It tries to address the13
14The third is this document, the Launchpad Values. It tries to address the
14'manner' of Launchpad. It, perhaps, will not answer specific questions for15'manner' of Launchpad. It, perhaps, will not answer specific questions for
15you. Rather, it will rule out certain options and decisions before they are16you. Rather, it will rule out certain options and decisions before they are
16even considered.17even considered.
1718
18Like the Vision, this document is living: it should be changed and improved as19Like the :doc:`strategy`, this document is living: it should be changed and
19we learn more about how to make Launchpad. It is also aspirational: not all20improved as we learn more about how to make Launchpad. It is also
20of Launchpad lives up to these values.21aspirational: not all of Launchpad lives up to these values.
2122
2223
23Better tools help24Better tools help
@@ -162,3 +163,10 @@
162Likewise, importing translations from an upstream is great, but it becomes163Likewise, importing translations from an upstream is great, but it becomes
163much, much better when those translations can be improved in Launchpad and164much, much better when those translations can be improved in Launchpad and
164then sent back to the upstream.165then sent back to the upstream.
166
167
168References
169==========
170
171* :doc:`strategy`
172* :doc:`scope`