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
1=== modified file 'doc/index.txt'
2--- doc/index.txt 2011-02-16 13:08:25 +0000
3+++ doc/index.txt 2011-04-01 10:09:24 +0000
4@@ -17,7 +17,8 @@
5 :maxdepth: 1
6
7 readme
8- vision
9+ strategy
10+ scope
11 values
12
13 Technical
14
15=== added file 'doc/scope.txt'
16--- doc/scope.txt 1970-01-01 00:00:00 +0000
17+++ doc/scope.txt 2011-04-01 10:09:24 +0000
18@@ -0,0 +1,341 @@
19+==================
20+What is Launchpad?
21+==================
22+
23+Launchpad is a complete system for gathering changes from different types of
24+sources and collaboratively organizing them into packaged software for the end
25+user, delivered as part of an operating system that can be downloaded or that
26+comes already installed on purchased hardware.
27+
28+If you start by thinking of Launchpad as a traditional software “forge” – a
29+web service that provides bug tracking, code hosting and other related
30+services – then you are not too far off understanding what Launchpad is.
31+However, Launchpad has many distinctive traits that combine to put it into an
32+entirely different category of software.
33+
34+But at its core, it is best to think of Launchpad as a service that meshes
35+together two important networks:
36+
37+1. Networks of people making software
38+2. The network of dependencies between software
39+
40+But first, a story.
41+
42+
43+The Story of a Bug
44+==================
45+
46+*Arnold* writes software for a living, and he runs Ubuntu on his desktop. He
47+wishes he could contribute to open source, but he doesn’t have much spare
48+time, and when he gets home from his job the last thing he wants to do is
49+program. However, the spirit of willingness is there.
50+
51+One day, Arnold notices that Tomboy loses his formatting if he alt-tabs at the
52+wrong time. Arnold knows that a well-filed bug report is a thing of beauty to
53+most programmers, so he decides to spend a few moments to file a bug against
54+Tomboy.
55+
56+Rather than search the net to find where Tomboy tracks its bugs, Arnold uses
57+Ubuntu’s built-in bug filing mechanism. It asks him a bunch of questions,
58+invites Arnold to write his bug report and then files the bug on Launchpad
59+against the Tomboy package in Ubuntu.
60+
61+*Becca* has been dabbling in Ubuntu contribution for a while, mostly by
62+helping new users solve their problems or turn them into good bug reports. She
63+notices Arnold’s bug, sees that it’s well written and thinks that it would be
64+easy enough to test against trunk. She opens up the Tomboy source package in
65+Ubuntu and sees that there is a known-good daily build of Tomboy’s trunk
66+hosted in a trusted user archive. Becca installs Tomboy from this archive and
67+tests to see if the bug is still there in the latest version of the code. It
68+is. Becca sees this, opens up the original bug report and clicks a button to
69+forward the bug to the upstream bug tracker.
70+
71+*Carlos* is one of the Tomboy developers. He sees the bug in the tracker, sees
72+that it has been tested against trunk, realizes that it’s an annoying bug
73+that’s easy to fix and decides to fix it. He does the fix, applies it to the
74+Tomboy trunk and marks the bug as fixed.
75+
76+At this point, both Arnold and Becca are notified that the bug is fixed in
77+Tomboy trunk, and that they can try a version of Tomboy that has the fix by
78+using the known-good daily build archive for Tomboy. They are warned that this
79+is dangerous and may cause data loss, but they are also told how they can try
80+the bug fix for free using a cloud-based Ubuntu desktop. They both try the
81+bug, see that it’s fixed, and are happy, albeit a little impatient for the fix
82+to be actually released and part of stock Ubuntu.
83+
84+Meanwhile, *Dalia* is an Ubuntu developer who takes a special interest in
85+desktop productivity applications like Tomboy. She checks on the Ubuntu source
86+package for Tomboy from time to time. The last time she checked, she saw that
87+quite a few bugs have been fixed in trunk but not yet released. Since she
88+knows the Tomboy release manager from long hours of IRC chat, she contacts him
89+and gently suggests that he do a release.
90+
91+*Edmund*, the Tomboy release manager, takes Dalia’s hint well and realizes
92+that a release is way overdue. He makes a release of Tomboy following his
93+normal procedure.
94+
95+Launchpad detects that Tomboy has a new, official release and alerts
96+interested distribution maintainers that the release has been made and now
97+would be a good time to package a new version. Dalia packages up a new
98+version, requests that an Ubuntu core developer sponsor the change and then
99+waits for the new version to be uploaded. Dalia also uploads the fixed version
100+to one of her personal archives so that others can easily get it without
101+waiting for the next release of Ubuntu.
102+
103+*Fiona* the Ubuntu core developer sees Dalia’s patch in the sponsorship queue
104+on Launchpad, notes that it’s all good and then uploads the patch to the
105+official Ubuntu archive. (Fiona might also choose to upload the patch to
106+Debian).
107+
108+Launchpad sees that this upload fixes a number of bugs, including the one
109+originally filed by Arnold, and automatically includes those bugs in the list
110+of bugs that will be fixed by the next release of Ubuntu.
111+
112+Two months later, the next release of Ubuntu is actually released. Arnold
113+upgrades on release day, and tries out Tomboy to see if his bug was really,
114+actually fixed. It is, and all is right with the world.
115+
116+
117+
118+
119+Distinctive traits
120+==================
121+
122+Launchpad is different from other "forges" in a few important ways:
123+
124+
125+Cross-project collaboration
126+---------------------------
127+
128+No project lives in isolation. Each project is part of an ecosystem of
129+software. Projects must be able to interact with each other, share bugs,
130+teams, goals and code with each other.
131+
132+.. image:: images/cross-project-collab.svg
133+
134+Launchpad takes every chance it gets to show the connections between projects
135+and to bring the opportunities created by those connections to light.
136+
137+By encompassing the entire process, all the way to operating system delivery,
138+Launchpad can provide a unique service: enable each contributor to focus on
139+the work they care about, while giving them an ambient awareness of how their
140+work fits into a larger picture, and providing a path by which they can
141+participate in other parts of that picture when they feel the need.
142+
143+
144+Front-end to open source
145+------------------------
146+
147+Launchpad aims to be a front-end to open source. Whether or not a project
148+chooses to host on Launchpad, opportunistic developers can use Launchpad to
149+navigate bugs, get code and send patches. Likewise, we aim to present a
150+uniform interface to the projects we have.
151+
152+
153+Centralized service
154+-------------------
155+
156+Because Launchpad emphasises cross-project collaboration, and because
157+Launchpad aims to be a front-end to all of open source, it necessarily has to
158+be a centralized service rather than a product that users deploy on their own
159+servers.
160+
161+
162+Networks of collaborators
163+-------------------------
164+
165+Launchpad understands that much of the human interaction around open source is
166+not primarily social, but rather collaborative: many people working together
167+in different ways toward the same goals.
168+
169+As such, Launchpad highlights actions and opportunities rather than
170+conversations and status. It answers questions like, “what can I do for you?”,
171+“who could help me do this?”, “who is waiting on me in order to get their
172+thing done?”, “can I rely on the advice offered by this person?” and so forth.
173+
174+
175+Distributions are projects too
176+------------------------------
177+
178+Launchpad hosts Linux distributions in much the same way as it hosts projects,
179+allowing for developers to feel at home when interacting with distributions.
180+
181+
182+Gated development
183+-----------------
184+
185+Sometimes, secrets are necessary. Launchpad understands that sometimes
186+development needs to be done privately, and the results only later shared with
187+the world. Security fixes, OEM development for new hardware, proprietary
188+services with open source clients are all examples of these.
189+
190+
191+Hardware matters
192+----------------
193+
194+Many software developers like to pretend that hardware does not really
195+exist. When people distribute software as part of an operating system, they
196+don't have the luxury of forgetting. Launchpad understands that developers
197+often need to acknowledge and work around differences thrown up by hardware.
198+
199+
200+We don't care if you use Launchpad, sort of
201+-------------------------------------------
202+
203+Many other forges define their success by how many users they have. Although
204+we love our users and welcome every new user, Launchpad does not judge its
205+success by the number of users. If one project wishes to host its development
206+on another platform, Launchpad acts as a front-end to that platform.
207+
208+
209+One project, many communities
210+-----------------------------
211+
212+Any given project can have many distinct communities interested in it. These
213+communities have different interests and different motivations, but all work
214+in the same project space so that they can easily benefit from each others'
215+efforts.
216+
217+
218+Scope
219+=====
220+
221+Launchpad has many major components. These can be broken up into four major
222+areas of functionality:
223+
224+1. where work is done; developers interact with other developers
225+2. where plans are made and reviewed; expert users interact with expert users
226+ and developers
227+3. where projects engage with their communities; developers interact with end
228+ users and other developers, and vice-versa
229+4. major supporting features
230+
231+.. image:: images/scope.svg
232+
233+Work
234+----
235+
236+At the core of every software project is the actual code that makes up that
237+project. Here “code” is a broad term that also includes the project’s
238+documentation, the translatable and translated strings that make up its user
239+interface, the packaging and integration scripts required to get the software
240+installed on end user’s systems and so forth.
241+
242+Launchpad is built to be able to take contributions from anybody, regardless
243+of how involved they are in a project. For packages, translations and code
244+proper we provide mechanisms to allow people to review changes from others and
245+then merge them into the official parts of the project.
246+
247+Launchpad pulls in changes that happen in the upstreams and downstreams of a
248+project, whether those changes are patches to code, new translations or
249+packaging updates. It makes contributors to a project aware of the work that’s
250+going on upstream and downstream and helps them take advantage of that work.
251+
252+And, of course, all work is for nothing if it does not get to the people who
253+might want to actually use its results. As such, project maintainers can
254+publish released versions of their code, any contributor can publish Ubuntu
255+packages to unofficial archives or even set up Launchpad to automatically
256+build and publish packages of latest snapshots of code.
257+
258+
259+Plans
260+-----
261+
262+People who are interested in doing something great will need to coordinate
263+their work, keep track of the defects in the things they have already done and
264+describe the things that they aren't doing yet but wish they could.
265+
266+Every software product in the world has bugs. For some projects, the rate of
267+incoming bugs is fairly low, and each bug can expect to receive some attention
268+from a core developer. For other projects, the rate of new bugs filed is so
269+high that the core development team can never hope to keep up with it.
270+Launchpad supports both kinds of projects.
271+
272+If every software product has bugs, every software user has great ideas about
273+how a product can be improved. Project maintainers need to get at these ideas,
274+evaluate them, and develop them into workable concepts.
275+
276+Often, a problem is so tricky that those concerned need to have a detailed,
277+managed discussion about what exactly the problem is. At other times, the
278+problem is easy enough to define, but there are so many solutions with
279+difficult trade-offs or difficult implementations that it is better to talk
280+about them and plan them out before proceeding with any of them. Launchpad
281+acknowledges that this can happen on any project, and that becoming clear on a
282+problem or becoming clear on the “best” solution can be helped a great deal
283+using tools.
284+
285+Crucially, all of these different types of “plans” – bugs, specifications,
286+blueprints, ideas – can span more than one code base and more than one
287+conceptual project. These plans need to be drafted, discussed, clarified and
288+reviewed before work starts, monitored, evaluated and changed as work
289+progresses, and then the results of that work need to be checked against the
290+plan when the work is finished.
291+
292+
293+Community
294+---------
295+
296+Not everything that’s done on a project is work toward a particular outcome,
297+or plans for how to get there. Every project needs to have some things that
298+are more general and stable.
299+
300+Projects need to be able to present themselves to the world, confident in
301+their identity and communicating exactly what they are about. Project
302+maintainers need to be able to announce important news, such as releases,
303+license changes or new practices. Contributors need to get a sense of who is
304+working on which parts of the project. Users need to be able to ask questions,
305+get support and give feedback.
306+
307+Contributors also need to share documentation about the project and how the
308+project runs. They need to be able to discuss general topics about the
309+project.
310+
311+Launchpad supports all of these things, and also makes it clear how any
312+project fits into the broader ecosystem of projects. It shows which projects
313+are upstreams or downstreams, which projects are affiliated with other
314+projects, which projects share contributors with other projects and so forth.
315+
316+
317+Supporting features
318+-------------------
319+
320+Launchpad has many major areas of functionality that are best considered as
321+“supporting features”: APIs, migration services, privacy, the mail UI,
322+synchronizing with external systems.
323+
324+
325+New World
326+=========
327+
328+When Launchpad is really doing all of these things and doing them well, the
329+world of open source software will be significantly changed.
330+
331+Patches will no longer lie decaying in someone else’s bug tracker, waiting to
332+be noticed. Instead, they will all be synced into a central code review system
333+and queued for review and approval.
334+
335+Instead of a distribution tracking one set of bugs and upstream projects
336+tracking their own set of sometimes duplicated bugs, both upstream and
337+downstream developers can seamlessly accesses both sets of bugs.
338+
339+
340+Glossary
341+========
342+
343+Upstream
344+ A software project itself, as opposed to the packaged version of a software
345+ project that is included in a distribution. Note, can also be used as a
346+ relative term, e.g. “Debian is upstream of Ubuntu”.
347+
348+Downstream
349+ The opposite of an upstream. Can be used to refer either to a packaged
350+ version of a specific software project, or the entire distribution where
351+ that package occurs.
352+
353+
354+References
355+==========
356+
357+* :doc:`strategy`
358+* :doc:`values`
359+* `Feature checklist <https://dev.launchpad.net/FeatureChecklist>`_
360
361=== renamed file 'doc/vision.txt' => 'doc/strategy.txt'
362--- doc/vision.txt 2011-01-16 19:49:31 +0000
363+++ doc/strategy.txt 2011-04-01 10:09:24 +0000
364@@ -1,6 +1,6 @@
365-=============================
366-Launchpad: Strategy and scope
367-=============================
368+==================
369+Launchpad Strategy
370+==================
371
372 *We want to make Ubuntu the world’s best operating system. To do this, we need
373 to give Canonical an edge in productivity over and above other Linux vendors
374@@ -17,16 +17,15 @@
375 This document tries to answer two big questions:
376
377 1. *why* are we making Launchpad?
378-1. *what* is Launchpad supposed to be?
379+2. *who* is Launchpad for?
380+
381+This is not our strategy for the year or the scope of Launchpad development
382+for the next six months. Rather, it is our answer to these fundamental
383+questions.
384
385 When you are finished reading this document, you should know what problems we
386-want to solve, what we hope to gain from solving these problems, how we decide
387-whether something is in scope or not and how we know if Launchpad is doing
388-well.
389-
390-This is not our strategy for the year or our scope of Launchpad development
391-for the next six months. Rather, it is our answer to the fundamental
392-questions: what is Launchpad and why is Canonical investing in it?.
393+want to solve, what we hope to gain from solving these problems and how we
394+know if Launchpad is doing well.
395
396
397 Audience
398@@ -37,8 +36,8 @@
399 developers of Launchpad, whether they are Canonical employees or not.
400
401
402-Strategy -- Why are we doing this?
403-==================================
404+Why are we making Launchpad?
405+============================
406
407 The world we live in
408 --------------------
409@@ -189,338 +188,9 @@
410 than many open source and even proprietary projects.
411
412
413-What is Launchpad?
414-==================
415-
416-Launchpad is a complete system for gathering changes from different types of
417-sources and collaboratively organizing them into packaged software for the end
418-user, delivered as part of an operating system that can be downloaded or that
419-comes already installed on purchased hardware.
420-
421-If you start by thinking of Launchpad as a traditional software “forge” – a
422-web service that provides bug tracking, code hosting and other related
423-services – then you are not too far off understanding what Launchpad is.
424-However, Launchpad has many distinctive traits that combine to put it into an
425-entirely different category of software.
426-
427-But at its core, it is best to think of Launchpad as a service that meshes
428-together two important networks:
429-
430-1. Networks of people making software
431-2. The network of dependencies between software.
432-
433-
434-Distinctive traits
435-------------------
436-
437-Launchpad is different from other "forges" in a few important ways:
438-
439-
440-Cross-project collaboration
441-~~~~~~~~~~~~~~~~~~~~~~~~~~~
442-
443-No project lives in isolation. Each project is part of an ecosystem of
444-software. Projects must be able to interact with each other, share bugs,
445-teams, goals and code with each other.
446-
447-.. image:: images/cross-project-collab.svg
448-
449-Launchpad takes every chance it gets to show the connections between projects
450-and to bring the opportunities created by those connections to light.
451-
452-By encompassing the entire process, all the way to operating system delivery,
453-Launchpad can provide a unique service: enable each contributor to focus on
454-the work they care about, while giving them an ambient awareness of how their
455-work fits into a larger picture, and providing a path by which they can
456-participate in other parts of that picture when they feel the need.
457-
458-
459-Front-end to open source
460-~~~~~~~~~~~~~~~~~~~~~~~~
461-
462-Launchpad aims to be a front-end to open source. Whether or not a project
463-chooses to host on Launchpad, opportunistic developers can use Launchpad to
464-navigate bugs, get code and send patches. Likewise, we aim to present a
465-uniform interface to the projects we have.
466-
467-
468-Centralized service
469-~~~~~~~~~~~~~~~~~~~
470-
471-Because Launchpad emphasises cross-project collaboration, and because
472-Launchpad aims to be a front-end to all of open source, it necessarily has to
473-be a centralized service rather than a product that users deploy on their own
474-servers.
475-
476-
477-Networks of collaborators
478-~~~~~~~~~~~~~~~~~~~~~~~~~
479-
480-Launchpad understands that much of the human interaction around open source is
481-not primarily social, but rather collaborative: many people working together
482-in different ways toward the same goals.
483-
484-As such, Launchpad highlights actions and opportunities rather than
485-conversations and status. It answers questions like, “what can I do for you?”,
486-“who could help me do this?”, “who is waiting on me in order to get their
487-thing done?”, “can I rely on the advice offered by this person?” and so forth.
488-
489-
490-Distributions are projects too
491-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
492-
493-Launchpad hosts Linux distributions in much the same way as it hosts projects,
494-allowing for developers to feel at home when interacting with distributions.
495-
496-
497-Gated development
498-~~~~~~~~~~~~~~~~~
499-
500-Sometimes, secrets are necessary. Launchpad understands that sometimes
501-development needs to be done privately, and the results only later shared with
502-the world. Security fixes, OEM development for new hardware, proprietary
503-services with open source clients are all examples of these.
504-
505-
506-Hardware matters
507-~~~~~~~~~~~~~~~~
508-
509-Many software developers like to pretend that hardware does not really
510-exist. When people distribute software as part of an operating system, they
511-don't have the luxury of forgetting. Launchpad understands that developers
512-often need to acknowledge and work around differences thrown up by hardware.
513-
514-
515-We don't care if you use Launchpad, sort of
516-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
517-
518-Many other forges exist to become more successful. Although we love our users
519-and welcome every new user, Launchpad does not judge its success by the number
520-of users. If one project wishes to host its development on another platform,
521-Launchpad acts as a front-end to that platform.
522-
523-
524-One project, many communities
525-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
526-
527-Any given project can have many distinct communities interested in it. These
528-communities have different interests and different motivations, but all work
529-in the same project space so that they can easily benefit from each others'
530-efforts.
531-
532-
533-Scope
534-=====
535-
536-Launchpad has many major components. These can be broken up into four major
537-areas of functionality:
538-
539-1. where work is done; developers interact with other developers
540-2. where plans are made and reviewed; expert users interact with expert users
541- and developers
542-3. where projects engage with their communities; developers interact with end
543- users and other developers, and vice-versa
544-4. major supporting features
545-
546-.. image:: images/scope.svg
547-
548-Work
549-----
550-
551-At the core of every software project is the actual code that makes up that
552-project. Here “code” is a broad term that also includes the project’s
553-documentation, the translatable and translated strings that make up its user
554-interface, the packaging and integration scripts required to get the software
555-installed on end user’s systems and so forth.
556-
557-Launchpad is built to be able to take contributions from anybody, regardless
558-of how involved they are in a project. For packages, translations and code
559-proper we provide mechanisms to allow people to review changes from others and
560-then merge them into the official parts of the project.
561-
562-Launchpad pulls in changes that happen in the upstreams and downstreams of a
563-project, whether those changes are patches to code, new translations or
564-packaging updates. It makes contributors to a project aware of the work that’s
565-going on upstream and downstream and helps them take advantage of that work.
566-
567-And, of course, all work is for nothing if it does not get to the people who
568-might want to actually use its results. As such, project maintainers can
569-publish released versions of their code, any contributor can publish Ubuntu
570-packages to unofficial archives or even set up Launchpad to automatically
571-build and publish packages of latest snapshots of code.
572-
573-
574-Plans
575------
576-
577-People who are interested in doing something great will need to coordinate
578-their work, keep track of the defects in the things they have already done and
579-describe the things that they aren't doing yet but wish they could.
580-
581-Every software product in the world has bugs. For some projects, the rate of
582-incoming bugs is fairly low, and each bug can expect to receive some attention
583-from a core developer. For other projects, the rate of new bugs filed is so
584-high that the core development team can never hope to keep up with it.
585-Launchpad supports both kinds of projects.
586-
587-If every software product has bugs, every software user has great ideas about
588-how a product can be improved. Project maintainers need to get at these ideas,
589-evaluate them, and develop them into workable concepts.
590-
591-Often, a problem is so tricky that those concerned need to have a detailed,
592-managed discussion about what exactly the problem is. At other times, the
593-problem is easy enough to define, but there are so many solutions with
594-difficult trade-offs or difficult implementations that it is better to talk
595-about them and plan them out before proceeding with any of them. Launchpad
596-acknowledges that this can happen on any project, and that becoming clear on a
597-problem or becoming clear on the “best” solution can be helped a great deal
598-using tools.
599-
600-Crucially, all of these different types of “plans” – bugs, specifications,
601-blueprints, ideas – can span more than one code base and more than one
602-conceptual project. These plans need to be drafted, discussed, clarified and
603-reviewed before work starts, monitored, evaluated and changed as work
604-progresses, and then the results of that work need to be checked against the
605-plan when the work is finished.
606-
607-
608-Community
609----------
610-
611-Not everything that’s done on a project is work toward a particular outcome,
612-or plans for how to get there. Every project needs to have some things that
613-are more general and stable.
614-
615-Projects need to be able to present themselves to the world, confident in
616-their identity and communicating exactly what they are about. Project
617-maintainers need to be able to announce important news, such as releases,
618-license changes or new practices. Contributors need to get a sense of who is
619-working on which parts of the project. Users need to be able to ask questions,
620-get support and give feedback.
621-
622-Contributors also need to share documentation about the project and how the
623-project runs. They need to be able to discuss general topics about the
624-project.
625-
626-Launchpad supports all of these things, and also makes it clear how any
627-project fits into the broader ecosystem of projects. It shows which projects
628-are upstreams or downstreams, which projects are affiliated with other
629-projects, which projects share contributors with other projects and so forth.
630-
631-
632-Supporting features
633--------------------
634-
635-Launchpad has many major areas of functionality that are best considered as
636-“supporting features”: APIs, migration services, privacy, the mail UI,
637-synchronizing with external systems.
638-
639-
640-New World
641-=========
642-
643-When Launchpad is really doing all of these things and doing them well, the
644-world of open source software will be significantly changed.
645-
646-Patches will no longer lie decaying in someone else’s bug tracker, waiting to
647-be noticed. Instead, they will all be synced into a central code review system
648-and queued for review and approval.
649-
650-Instead of a distribution tracking one set of bugs and upstream projects
651-tracking their own set of sometimes duplicated bugs, both upstream and
652-downstream developers can seamlessly accesses both sets of bugs.
653-
654-
655-The story of a bug
656-------------------
657-
658-*Arnold* writes software for a living, and he runs Ubuntu on his desktop. He
659-wishes he could contribute to open source, but he doesn’t have much spare
660-time, and when he gets home from his job the last thing he wants to do is
661-program. However, the spirit of willingness is there.
662-
663-One day, Arnold notices that Tomboy loses his formatting if he alt-tabs at the
664-wrong time. Arnold knows that a well-filed bug report is a thing of beauty to
665-most programmers, so he decides to spend a few moments to file a bug against
666-Tomboy.
667-
668-Rather than search the net to find where Tomboy tracks its bugs, Arnold uses
669-Ubuntu’s built-in bug filing mechanism. It asks him a bunch of questions,
670-invites Arnold to write his bug report and then files the bug on Launchpad
671-against the Tomboy package in Ubuntu.
672-
673-*Becca* has been dabbling in Ubuntu contribution for a while, mostly by
674-helping new users solve their problems or turn them into good bug reports. She
675-notices Arnold’s bug, sees that it’s well written and thinks that it would be
676-easy enough to test against trunk. She opens up the Tomboy source package in
677-Ubuntu and sees that there is a known-good daily build of Tomboy’s trunk
678-hosted in a trusted user archive. Becca installs Tomboy from this archive and
679-tests to see if the bug is still there in the latest version of the code. It
680-is. Becca sees this, opens up the original bug report and clicks a button to
681-forward the bug to the upstream bug tracker.
682-
683-*Carlos* is one of the Tomboy developers. He sees the bug in the tracker, sees
684-that it has been tested against trunk, realizes that it’s an annoying bug
685-that’s easy to fix and decides to fix it. He does the fix, applies it to the
686-Tomboy trunk and marks the bug as fixed.
687-
688-At this point, both Arnold and Becca are notified that the bug is fixed in
689-Tomboy trunk, and that they can try a version of Tomboy that has the fix by
690-using the known-good daily build archive for Tomboy. They are warned that this
691-is dangerous and may cause data loss, but they are also told how they can try
692-the bug fix for free using a cloud-based Ubuntu desktop. They both try the
693-bug, see that it’s fixed, and are happy, albeit a little impatient for the fix
694-to be actually released and part of stock Ubuntu.
695-
696-Meanwhile, *Dalia* is an Ubuntu developer who takes a special interest in
697-desktop productivity applications like Tomboy. She checks on the Ubuntu source
698-package for Tomboy from time to time. The last time she checked, she saw that
699-quite a few bugs have been fixed in trunk but not yet released. Since she
700-knows the Tomboy release manager from long hours of IRC chat, she contacts him
701-and gently suggests that he do a release.
702-
703-*Edmund*, the Tomboy release manager, takes Dalia’s hint well and realizes
704-that a release is way overdue. He makes a release of Tomboy following his
705-normal procedure.
706-
707-Launchpad detects that Tomboy has a new, official release and alerts
708-interested distribution maintainers that the release has been made and now
709-would be a good time to package a new version. Dalia packages up a new
710-version, requests that an Ubuntu core developer sponsor the change and then
711-waits for the new version to be uploaded. Dalia also uploads the fixed version
712-to one of her personal archives so that others can easily get it without
713-waiting for the next release of Ubuntu.
714-
715-*Fiona* the Ubuntu core developer sees Dalia’s patch in the sponsorship queue
716-on Launchpad, notes that it’s all good and then uploads the patch to the
717-official Ubuntu archive. (Fiona might also choose to upload the patch to
718-Debian).
719-
720-Launchpad sees that this upload fixes a number of bugs, including the one
721-originally filed by Arnold, and automatically includes those bugs in the list
722-of bugs that will be fixed by the next release of Ubuntu.
723-
724-Two months later, the next release of Ubuntu is actually released. Arnold
725-upgrades on release day, and tries out Tomboy to see if his bug was really,
726-actually fixed. It is, and all is right with the world.
727-
728-
729-Glossary
730-========
731-
732-Upstream
733- A software project itself, as opposed to the packaged version of a software
734- project that is included in a distribution. Note, can also be used as a
735- relative term, e.g. “Debian is upstream of Ubuntu”.
736-
737-Downstream
738- The opposite of an upstream. Can be used to refer either to a packaged
739- version of a specific software project, or the entire distribution where
740- that package occurs.
741-
742-
743 References
744 ==========
745
746-* `Product values <values.txt>`_
747+* :doc:`scope`
748+* :doc:`values`
749 * `Feature checklist <https://dev.launchpad.net/FeatureChecklist>`_
750
751=== modified file 'doc/values.txt'
752--- doc/values.txt 2011-01-14 17:54:43 +0000
753+++ doc/values.txt 2011-04-01 10:09:24 +0000
754@@ -1,23 +1,24 @@
755-=================
756-Launchpad: Values
757-=================
758+================
759+Launchpad Values
760+================
761
762 Whenever we are thinking about what Launchpad should be, or how we should
763 implement a change, or whether something is a good idea or not, we have
764-recourse to two distinct sets of guidelines.
765-
766-The first is the Launchpad Vision <vision>. It can help us answer questions
767-such as, "Is this in scope?", "How does this help Launchpad meet its goals?".
768-It tries to sort out the 'matter' of Launchpad.
769-
770-The second is this document, the Launchpad Values. It tries to address the
771+recourse to three distinct sets of guidelines.
772+
773+The first is :doc:`strategy`, which reminds us why we are making Launchpad and
774+helps us answer questions such as "How does this help Launchpad meet its
775+goals?". The second is :doc:`scope`, which helps us answer questions like "Is
776+this in scope?". Together, they sort out the 'matter' of Launchpad.
777+
778+The third is this document, the Launchpad Values. It tries to address the
779 'manner' of Launchpad. It, perhaps, will not answer specific questions for
780 you. Rather, it will rule out certain options and decisions before they are
781 even considered.
782
783-Like the Vision, this document is living: it should be changed and improved as
784-we learn more about how to make Launchpad. It is also aspirational: not all
785-of Launchpad lives up to these values.
786+Like the :doc:`strategy`, this document is living: it should be changed and
787+improved as we learn more about how to make Launchpad. It is also
788+aspirational: not all of Launchpad lives up to these values.
789
790
791 Better tools help
792@@ -162,3 +163,10 @@
793 Likewise, importing translations from an upstream is great, but it becomes
794 much, much better when those translations can be improved in Launchpad and
795 then sent back to the upstream.
796+
797+
798+References
799+==========
800+
801+* :doc:`strategy`
802+* :doc:`scope`