Diff for "LEP/EnsembleFormulaDevelopment"

Not logged in - Log In / Register

Differences between revisions 13 and 14
Revision 13 as of 2011-03-17 13:12:14
Size: 9798
Editor: jml
Comment:
Revision 14 as of 2011-03-29 09:54:41
Size: 9309
Editor: jml
Comment:
Deletions are marked like this. Additions are marked like this.
Line 21: Line 21:
''Try to add a "so that" for each requirement so that the user benefit or uptake benefit is obvious''
Line 27: Line 25:
   * Storing & sharing version-controlled source    * Store & share version-controlled source
Line 38: Line 36:
Line 49: Line 46:
 * XXX - load constraints
 * XXX - performance constraints

=== Nice to have ===

=== Must not ===

=== Out of scope ===

 * ''Would like to keep the formula repository itself out of scope as much as possible''

== Subfeatures ==

== Workflows ==

== Success ==

=== How will we know when we are done? ===

=== How will we measure how well we have done? ===

DRAFT

Host Ensemble Formula Development in Launchpad

Contact: Jonathan Lange
On Launchpad: none yet

Rationale

We would like as many formula as possible for Ensemble as quickly as possible. We can help do this by very quickly providing a top-notch developer collaboration experience for Ensemble using Launchpad. This will help the soon-to-be big Ensemble formula developer community.

Stakeholders

  • Gustavo Niemeyer, Ensemble technical lead, last spoken 2011-03-04
  • Robert Collins, Launchpad technical architect, last spoken 2011-03-07
  • Clint Byrum, Ubuntu Server & formula developer, last spoken 2011-03-07

  • James Troup, Canonical IS, last spoken 2011-03-04

Constraints and Requirements

Must

  • Be able to develop this very quickly, for very low cost
  • Get something up quickly that will promote Ensemble formula development
    • Store & share version-controlled source

      • Different versions of formula for different releases of the known-good set
    • Bug tracker that allows release management across a known-good set
    • Track and view bugs in a specific formula
    • Track bugs that affect multiple formulas
    • As a formula developer I want to associate formulas with an Ubuntu release, so that they can be properly indexed (known-good-set for release N) and also made dependent on the right base image
    • As a formula developer I want to push formulas to a personal (non-private) location so that other people can use the formula, and also fork a personal version of the formula for evolving it.
  • Manage a release of a known-good set of formulas (sometimes called a "distribution")
  • Search for formulas from the ensemble command-line client so that a user can find alternatives to the Ensemble KGS formulas that better fit their needs
    • As an ensemble user I want to search for formulas from the known-good-set for release N by default so that I can rapidly and confidently deploy services
    • As an ensemble user I want to search for formulas from all the universe of formulas including personal ones on request so that I am not constrained by Canonical's known-good-set
  • Need to serve formulas without their version controlled history for fast downloads from the ensemble client
  • Clients need to be able to pull & search for formula across multiple repositories so that people who work with private repositories available only with their LAN

    • Enable people to deploy formulas from the known-good-set for release N by default, and from a specific personal location on request.
  • Handle a known-good set of roughly 2,000 formulas
  • Handle a total set of around 100,000 formulas
    • multiple versions of the known-good set
    • unofficial versions of formulas
    • versions that are unpackaged
    • this number is basically made up
  • Enable Ensemble to solve dependencies using information from published formulas.

Thoughts?

Implementation approaches

Create a distribution for Ensemble KGS, treat formulas as source packages

  • At the moment, Launchpad doesn't allow bugs to be filed on a source package in a distribution unless that source package has been uploaded & built for that distribution

    • This prevents people filing bugs in Ubuntu for packages that are only in PPAs
    • Need to be careful when changing this constraint
  • We would have to fix bug 386596

Create a project for Ensemble KGS, make formula branches series branches

Stick with Principia

Create a project group for Ensemble KGS, have a formula per project

Discussions

2011-03-07, #launchpad-dev, Freenode:

<SpamapS> lifeless: ping.. trying to wrap my head around adding a new distro to launchpad that is not for built packages...
<lifeless> SpamapS: hi
<SpamapS> lifeless: I understand you had a chat w/ jml about a distro for ensemble formulae
<lifeless> SpamapS: creating a distro is a privileged task; please wait for the ensemble list discussion and LEP before doing it
<SpamapS> lifeless: right, I'm not going to do it.. I am trying to understand the challenges.
<lifeless> SpamapS: ah, do you mean challenges in using or creating? :)
<SpamapS> lifeless: well I don't understand the suggestion that there's no bug tracking if you don't have a built package. How do non-built distros work given that restriction?
<lifeless> SpamapS: they don't
<lifeless> SpamapS: try and file a bug on openssh in baltix.
<SpamapS> Oh.
<lifeless> I dare you
<SpamapS> what's the use of distros then? ;)
* SpamapS is tempted now
<lifeless> SpamapS: distros are all about building and shipping packages
<SpamapS> Yeah, be that the case in reality.. in my head, they're about tracking collections of software. :-P
<lifeless> SpamapS: so we don't permit bugs filed on package names we know about unless the package is in the distro
<lifeless> SpamapS: this stops folk filing bugs on e.g. cassandra before its actually in Ubuntu
<SpamapS> that makes perfect sense. :)
<lifeless> and this matters because all our metadata driving policy - like packagesets etc - depends on source package / binary packages existing.
<SpamapS> So the real issue is there's no way, other than building, to create a package.
<lifeless> *I* don't know how deep the rabbit hole goes
<SpamapS> The way I saw it working was a mapping of a set of directories into source package names...
<lifeless> SpamapS: you can map source packages into source package names
<SpamapS> But I'm starting to wonder if, for the beginning of the project, we shouldn't just use a flat bzr and let people use tags to distinguish the formula name.
<lifeless> SpamapS: that would be a -lot- simpler.
<lifeless> SpamapS: jml and I had trouble inferring /requirements/ vs /things that using a distro would let you do/
<SpamapS> Yeah I think people got excited about reusing the distro code (myself included)
<lifeless> In some ways it makes a lot of sense
<lifeless> in other ways we really have two quite different things wedged into one in lp's distro bug support
<SpamapS> If the project takes off... we hope to have similar numbers of formulae as we have packages in Ubuntu so it would be very hard to track bugs on such a large body of work.
<lifeless> one things is 'lightweight components in a bug tracker' and the other is 'policy driven by uploads of stuff'
<lifeless> SpamapS: really? 20K forumulas?
<SpamapS> a formula for anything that opens a network port
<lifeless> SpamapS: thats more like 1K
<SpamapS> so, maybe 2000
<lifeless> we can start with one structure and migrate
<lifeless> like, it would be great to have lightweight components for e.g. bzr
<lifeless> something more than tags and less than separate projects
<SpamapS> Yeah.. I think thats probably going to be the thing I recommend in the list discussion.
<SpamapS> Tight coupling, once again, proves to make things less usable...
<lifeless> indeed
<lifeless> I'm a big fan of proving a core facility and letting folk do something cool with it
<lifeless> now, on the vcs side
<lifeless> jml said we need branch per (formula, release) tuple
<lifeless> which the (packagename, series) namespace in distro branches supplies
<lifeless> SpamapS: oh, on bugs, you /can/ use product series as a component like thing. same place in the UI
<lifeless> but the concept of nominations vs tasks would make it a little ugly
<SpamapS> lifeless: the series will be the series of formulae tho.. I'd like to keep that nice and clean.
<lifeless> indeed
<lifeless> so back to vcs
<lifeless> do you need that tuple now, or really just (formula, 'sid') - e.g. you only need trunks for the formulas?
<SpamapS> lifeless: I think having one bzr branch for all 2000 formulas would be a little painful. But you just mentioned in a recent discussion that bzr can branch the sub-dirs just fine, right?
<lifeless> SpamapS: you can work on just a subdir yes.
<lifeless> all the history comes, but honestly, 2K small projects is tiny bzr scale wise
<SpamapS> so if its  /principia/sid/formulas/databases/mysql  .. I can bzr branch lp:principia/sid/formulas/databases/mysql and interact with it, yes?
<SpamapS> Oh but I still get the whole history for /principia/sid .. :(
<SpamapS> A minor concession.. but one that our target market will hate.. because they're all git/ruby fanbois. ;)
<lifeless> SpamapS: yes, but I think you're overthinking the size here.
<lifeless> when you do this in git you get all the history too
<SpamapS> Right it's just faster. ;)
<SpamapS> which I *hate* as an argument for any vcs..
<SpamapS> but some people think it matters. ;)
<lifeless> SpamapS: mmm, not as such per various benchmarks we've done.
<lifeless> SpamapS: bzr network fetch is pretty good these days
<SpamapS> lifeless: Yeah, I'm going to again say that its a very small issue.. the main thing is to start getting those merge proposals cranking.. not achieve intergalactic domination overnight. :)
<lifeless> SpamapS: anyhow, i have not particular preference for what we do
<lifeless> I'm not trying to guide towards or away from distros
<lifeless> but - they are what they are.

LEP/EnsembleFormulaDevelopment (last edited 2011-05-12 07:01:20 by jml)