Diff for "OpenSourcing"

Not logged in - Log In / Register

Differences between revisions 1 and 21 (spanning 20 versions)
Revision 1 as of 2009-01-05 16:56:12
Size: 2896
Editor: kfogel
Comment: Initial draft.
Revision 21 as of 2009-01-28 03:52:21
Size: 4177
Editor: kfogel
Comment: Remove the word "little", it was unnecessary.
Deletions are marked like this. Additions are marked like this.
Line 5: Line 5:
== Why open-source it? == <<Anchor(why)>>
== Why open-source Launchpad? ==
Line 9: Line 10:
A new Launchpad release comes out every month; furthermore, bleeding-edge changes to Launchpad quickly go live through the [[https://help.launchpad.net/GetInvolved/BetaTesting|continuous beta testing]] system. This allows a developer to make a bugfix or an improvement to Launchpad and get real-world testing on the change right away. Thus the primary site of Launchpad development will be [[http://launchpad.net/|Launchpad.net]] itself, rather than developers' external sandboxes, and the development/testing cycle will mesh closely with people's normal workflows. The result: greater efficiency and much better responsiveness to user needs than is usually the case in open development of a hosted service. <<Anchor(quick-feedback)>>
A new Launchpad release comes out every month; furthermore, bleeding-edge changes to Launchpad quickly go live through the [[https://help.launchpad.net/GetInvolved/BetaTesting|continuous beta testing]] system. This allows a developer to make a bugfix or an improvement to Launchpad and get real-world testing on the change fairly quickly. Thus a primary site of Launchpad development will be [[http://launchpad.net/|Launchpad.net]] itself, not just developers' external sandboxes, and the development/testing cycle will mesh closely with people's normal workflows. The result: greater efficiency and much better responsiveness to user needs than is usually the case in open development of a hosted service.
Line 11: Line 13:
Our goal in releasing the code is to enable users of Launchpad.net to help improve Launchpad.net. If the result is instead that lots of clone sites spring up running the Launchpad code, then we've done something wrong. Having a single Launchpad.net focuses certain aspects of collaboration, and many of Launchpad's benefits depend on that (three examples: centralizing the information gleaned from foreign bug trackers, so it can be easily crawled; being able to establish trustedness of PPAs; having an easy-to-remember mainline branch location of "lp:my-project" -- decentralized version control works best when one knows where to find the project trunk).

<<Anchor(license)>>
== What license? ==

The [[http://www.gnu.org/licenses/agpl-3.0.html|GNU Affero GPL, version 3]].

<<Anchor(what)>>
== Absolutely everything? ==

Almost. There are two components, Soyuz and Codehosting, that we're keeping internal. They're part of Canonical's "secret sauce" in business areas that we care a lot about, and for now the costs to us of opening them up outweigh the benefits.

<<Anchor(how)>>
Line 13: Line 28:
Much of the code in Launchpad is in modules already, and will be released as independent packages over the next six months. This process has already started&nbsp;&mdash;&nbsp;for example see [[https://storm.canonical.com/|Storm]], [[http://pypi.python.org/pypi/lazr.config|LAZR.config]], and [[http://pypi.python.org/pypi/lazr.delegates|LAZR.delegates]]. The separating out of such packages will continue after Launchpad is open-sourced too; there will just be more people participating then. See this blog post: [[http://news.launchpad.net/general/how-we-are-open-sourcing-launchpad|How we're open-sourcing Launchpad]].
Line 15: Line 30:
There are also have a number of non-coding tasks, which we'll do roughly according to this schedule: Much of the code in Launchpad is modularized already, and will be released as independent packages over the next six months. (In fact, this process has already begun&nbsp;&mdash;&nbsp;for example see [[https://storm.canonical.com/|Storm]], [[http://pypi.python.org/pypi/lazr.config|LAZR.config]], and [[http://pypi.python.org/pypi/lazr.delegates|LAZR.delegates]].) The separating out of such packages will continue after Launchpad is open-sourced too; there will just be more people participating then.
Line 17: Line 32:
 '''Jan 26, 2009 (Wed)''':: (Launchpad 2.2.1 release.) Publish pre-release open-sourcing FAQ. We can anticipate some of the questions, but this announcement may stimulate more we hadn't thought of. <<Anchor(schedule)>>
There are also a number of non-coding tasks, which we'll do roughly according to this schedule:
Line 19: Line 35:
 '''Feb 22, 2009 (Tue)''':: Finish internal license vetting, to make sure we don't violate anyone else's license when we open-source.  Jan 26, 2009 (Wed):: (Launchpad 2.2.1 release.) Publish pre-release open-sourcing FAQ. We can anticipate some of the questions, but this announcement may stimulate more we hadn't thought of.
Line 21: Line 37:
 '''Feb 25, 2009 (Wed)''':: (Launchpad 2.2.2 release.)  Feb 24, 2009 (Tue):: Finish internal license vetting, to make sure we don't violate anyone else's license when we open-source.
Line 23: Line 39:
 '''Mar 18, 2009 (Wed)''':: [[http://dev.launchpad.net|Developer documentation wiki]] should be largely populated by now, with material taken from current internal wikis, plus a newly-written "How to contribute to Launchpad" section.  Feb 25, 2009 (Wed):: (Launchpad 2.2.2 release.)
Line 25: Line 41:
 '''Apr 1, 2009 (Wed)''':: (Launchpad 2.2.3 release.)  Mar 18, 2009 (Wed):: [[http://dev.launchpad.net|Developer documentation wiki]] populated.
Line 27: Line 43:
 '''Apr 29, 2009 (Wed)''':: (Launchpad 2.2.4 release.)  Apr 1, 2009 (Wed):: (Launchpad 2.2.3 release.)
Line 29: Line 45:
 '''May 27, 2009 (Wed)''':: (Launchpad 2.2.5 release; UDS). Take development discussion public: move real-time discussion over to #launchpad-dev on irc.freenode.net, take development mailing list public. Publish a Contributor License Agreement (CLA).  Apr 29, 2009 (Wed):: (Launchpad 2.2.4 release.)
Line 31: Line 47:
 '''Jun 24, 2009 (Wed)''':: (Launchpad 2.2.6 release.)  May 27, 2009 (Wed):: (Launchpad 2.2.5 release; UDS). Take development discussion public: move real-time discussion over to #launchpad-dev on irc.freenode.net, take development mailing list public. Publish a Contributor License Agreement (CLA).
Line 33: Line 49:
 '''Jul 21, 2009 (Tue)''':: Open-source Launchpad itself; release 3.0.  Jun 24, 2009 (Wed):: (Launchpad 2.2.6 release.)

 Jul 21, 2009 (Tue):: Open-source Launchpad itself; release 3.0.

== See also ==

 * Podcast: [[http://news.launchpad.net/podcast/launchpod-15-launchpads-going-open-source|Launchpod 15 - Launchpad’s going open source!]]

Open Sourcing Launchpad

We're open-sourcing the code that runs Launchpad.net. The process will be completed by 21 July 2009, coinciding with the 3.0 release (see the schedule of releases).

Why open-source Launchpad?

This isn't just about freeing up the code; we have a chance to do something unique among open-source collaboration sites.

A new Launchpad release comes out every month; furthermore, bleeding-edge changes to Launchpad quickly go live through the continuous beta testing system. This allows a developer to make a bugfix or an improvement to Launchpad and get real-world testing on the change fairly quickly. Thus a primary site of Launchpad development will be Launchpad.net itself, not just developers' external sandboxes, and the development/testing cycle will mesh closely with people's normal workflows. The result: greater efficiency and much better responsiveness to user needs than is usually the case in open development of a hosted service.

Our goal in releasing the code is to enable users of Launchpad.net to help improve Launchpad.net. If the result is instead that lots of clone sites spring up running the Launchpad code, then we've done something wrong. Having a single Launchpad.net focuses certain aspects of collaboration, and many of Launchpad's benefits depend on that (three examples: centralizing the information gleaned from foreign bug trackers, so it can be easily crawled; being able to establish trustedness of PPAs; having an easy-to-remember mainline branch location of "lp:my-project" -- decentralized version control works best when one knows where to find the project trunk).

What license?

The GNU Affero GPL, version 3.

Absolutely everything?

Almost. There are two components, Soyuz and Codehosting, that we're keeping internal. They're part of Canonical's "secret sauce" in business areas that we care a lot about, and for now the costs to us of opening them up outweigh the benefits.

How is it being open-sourced?

See this blog post: How we're open-sourcing Launchpad.

Much of the code in Launchpad is modularized already, and will be released as independent packages over the next six months. (In fact, this process has already begun — for example see Storm, LAZR.config, and LAZR.delegates.) The separating out of such packages will continue after Launchpad is open-sourced too; there will just be more people participating then.

There are also a number of non-coding tasks, which we'll do roughly according to this schedule:

Jan 26, 2009 (Wed)
(Launchpad 2.2.1 release.) Publish pre-release open-sourcing FAQ. We can anticipate some of the questions, but this announcement may stimulate more we hadn't thought of.
Feb 24, 2009 (Tue)
Finish internal license vetting, to make sure we don't violate anyone else's license when we open-source.
Feb 25, 2009 (Wed)
(Launchpad 2.2.2 release.)
Mar 18, 2009 (Wed)

Developer documentation wiki populated.

Apr 1, 2009 (Wed)
(Launchpad 2.2.3 release.)
Apr 29, 2009 (Wed)
(Launchpad 2.2.4 release.)
May 27, 2009 (Wed)
(Launchpad 2.2.5 release; UDS). Take development discussion public: move real-time discussion over to #launchpad-dev on irc.freenode.net, take development mailing list public. Publish a Contributor License Agreement (CLA).
Jun 24, 2009 (Wed)
(Launchpad 2.2.6 release.)
Jul 21, 2009 (Tue)
Open-source Launchpad itself; release 3.0.

See also

OpenSourcing (last edited 2009-07-21 06:40:07 by kfogel)