SeedManagement

Differences between revisions 1 and 22 (spanning 21 versions)
Revision 1 as of 2005-05-28 20:24:15
Size: 7677
Editor: adsl-213-190-44-43
Comment: imported from the old wiki
Revision 22 as of 2005-11-07 22:22:07
Size: 11577
Editor: 209
Comment: commit/push documentation
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
= SeedManagement =

= Seed Management =

'''Seeds''' are the lists of packages we want to include in the distribution. We have three primary seeds, '''base''', '''desktop''' and '''supported''' that define what goes into the archive's '''main''' component. '''base''' and '''desktop''' along with the '''ship''' seeds go onto our CDs and the '''supported''' packages are available from the FTP site.
'''Seeds''' are the lists of packages we want to include in the distribution. We have four primary seeds, '''minimal''', '''standard''', '''desktop''', and '''supported''' (in Ubuntu 5.04 and earlier, '''minimal''' and '''standard''' were combined into a single '''base''' seed), that define what goes into the archive's '''main''' component. '''minimal''', '''standard''', and '''desktop''' along with the '''ship''' seeds go onto our CDs and the '''supported''' packages are available from the FTP site.
Line 9: Line 5:
Proposals for adding new packages to the seeds should be sent to the ubuntu-devel mailing list.

StuartBishop -- eh? below I'm told to use the wiki pages.

To get a checked-out copy of the seeds that you can edit, if you have a chinstrap account: {{{
baz register-archive sftp://chinstrap/home/warthogs/archives/ubuntu-devel@lists.ubuntu.com
baz get ubuntu-devel@lists.ubuntu.com/seeds--breezy--0
}}}

If you don't have a chinstrap account, then a public mirror is here: {{{
baz register-archive http://people.ubuntu.com/~cjwatson/ubuntu-devel@lists.ubuntu.com
baz get ubuntu-devel@lists.ubuntu.com/seeds--breezy--0
}}}

(If you don't have baz, you can also use tla.)
Line 27: Line 7:
Germinate, the program that processes seeds and expands out their dependencies, is also available in arch: {{{
baz register-archive http://people.ubuntu.com/~cjwatson/archives/colin.watson@canonical.com--2005
baz get colin.watson@canonical.com--2005/germinate--mainline--0
}}}

= The Seeds =
= Descriptions of Seeds =
Line 46: Line 21:
The raw base seed list for the [obsoleted by HoaryHedgehog / HoaryGoals] release can be found here: http://people.ubuntulinux.org/~cjwatson/seeds/hoary/base In Ubuntu 5.10 and later, the base system has been split into minimal (the set of packages you need to install in order to finish installation, install more packages, and have a minimally functioning system) and standard.
Line 48: Line 23:
Changes to the base seed can be proposed on the BaseSeedProposals page The raw base seed lists for the BreezyBadger release can be found here:[[BR]]
http://people.ubuntu.com/~cjwatson/seeds/breezy/minimal [[BR]]
http://people.ubuntu.com/~cjwatson/seeds/breezy/standard
Line 58: Line 35:
The raw desktop seed list for the [obsoleted by HoaryHedgehog / HoaryGoals] release can be found here: http://people.ubuntulinux.org/~cjwatson/seeds/hoary/desktop

Changes to the desktop seed can be proposed on the DesktopSeedProposals page
The raw desktop seed list for the BreezyBadger release can be found here:[[BR]]
http://people.ubuntu.com/~cjwatson/seeds/breezy/desktop
Line 74: Line 50:
 1. pass a one-time security review from MattZimmerman and agree to be responsive to him on SecurityPage issues  1. pass a one-time security review from MartinPitt and agree to be responsive to him on SecurityPage issues
Line 78: Line 54:
The raw Supported seed list for the [obsoleted by HoaryHedgehog / HoaryGoals] release can be found here: http://people.ubuntulinux.org/~cjwatson/seeds/hoary/supported

Changes to the Supported seed can be proposed on the SupportedSeedProposals page
The raw Supported seed list for the BreezyBadger release can be found here:[[BR]]
http://people.ubuntu.com/~cjwatson/seeds/breezy/supported
Line 88: Line 63:
The installer seed tracks packages which are part of the installer The installer seed tracks packages which are part of the installer as used on the install CD.

== Casper ==

The casper seed tracks packages which are part of the installer subset used on the live CD.
Line 97: Line 76:
The raw Ship seed list for the [obsoleted by HoaryHedgehog / HoaryGoals] release can be found here: http://people.ubuntulinux.org/~cjwatson/seeds/hoary/ship

Changes to the Ship seed can be proposed on the ShipSeedProposals page
The raw Ship seed list for the BreezyBadger release can be found here:[[BR]]
http://people.ubuntu.com/~cjwatson/seeds/breezy/ship
Line 105: Line 83:
The raw Live seed list for the [obsoleted by HoaryHedgehog / HoaryGoals] release can be found here: http://people.ubuntulinux.org/~cjwatson/seeds/hoary/live

Changes to the Live seed can be proposed on the LiveSeedProposals page
The raw Live seed list for the BreezyBadger release can be found here:[[BR]]
http://people.ubuntu.com/~cjwatson/seeds/breezy/live
Line 111: Line 88:
 * The installation CD contains the software in the Base, Desktop, Installer and Ship seeds (and its dependencies)
 * The installation DVD contains the software in the Base, Desktop, Installer, Ship and Supported seeds (and its dependencies)
 * The live CD contains the software in the Base, Desktop and Live seeds (and its dependencies)
== Germinate ==

The seeds are read by a program called ["Germinate"], which resolves the dependencies of packages in the seed lists. By adding additional packages to satisfy these dependencies, the final package lists are produced.

== CD builds ==

 * The installation CD contains the software in the Installer, Minimal, Standard, Desktop, and Ship seeds (and their dependencies)
 * The installation/live DVD contains the software in the Installer, Casper, Minimal, Standard, Desktop, Ship, Live, and Supported seeds (and their dependencies)
 * The live CD contains the software in the Casper, Minimal, Standard, Desktop, and Live seeds (and their dependencies)

= Changing the Seeds =

Proposals for adding new packages to the seeds should be added to the UbuntuMainInclusionQueue page; please prepare a report as described on that page and send the proposal and a link to the report to the ubuntu-devel mailing list.

The seed archives are now managed in [http://bazaar.canonical.com/Bzr bzr]; you will need at least version 0.6. If your distribution does not have bzr 0.6, nightly snapshots are available in the `bzr` package at [http://people.ubuntu.com/~jbailey/snapshot/bzr/].

To get a checked-out copy of the seeds that you can edit:

 * If you have a chinstrap account (Canonical staff only), install the `paramiko` package (from your distribution, or from the [http://people.ubuntu.com/~jbailey/snapshot/bzr/ nightly snapshot archive], and: {{{
bzr get sftp://chinstrap.ubuntu.com/home/warthogs/archives/seeds.ubuntu.com/ubuntu/seeds/dapper
}}}

 * If you don't have a chinstrap account, then a public but read-only mirror is here: {{{
bzr get http://people.ubuntu.com/~cjwatson/seeds.ubuntu.com/ubuntu/seeds/dapper
}}}

Make sure to set an appropriate user id in `~/.bazaar/bazaar.conf`, like this: {{{
[DEFAULT]
email=Colin Watson <colin.watson@canonical.com>
}}}

To update a checkout, use `bzr pull`.

To commit, install the `bzrtools` package (from your distribution, or from the [http://people.ubuntu.com/~jbailey/snapshot/bzr/ nightly snapshot archive], and: {{{
bzr commit -m 'commit message'
bzr push sftp://chinstrap.ubuntu.com/home/warthogs/archives/seeds.ubuntu.com/ubuntu/seeds/dapper
}}}

(You only need to supply a URL the first time you push.)

 * For the Kubuntu seeds replace `/ubuntu/` with `/kubuntu/` in the command above. For the Edubuntu seeds replace `/ubuntu/` with `/edubuntu/`.

 * Before making any changes you should set your umask to 002 in your .bashrc (bash) or .zprofile (zsh) on chinstrap, to ensure the changes are committed group writable.

 * Note that changes to the seeds do not automatically cause packages to move to a new component in the archive. See UbuntuMainInclusionQueue.

 * If any of the `ubuntu-meta`, `kubuntu-meta`, or `edubuntu-meta` source packages build a metapackage for the seed you changed, run the `update` script in the appropriate source package and upload it (after your changes have been effected in the seeds archive; you will need to wait about 20 minutes for these changes to propagate to the public mirror).

== UDU Notes ==


== Status ==

 * Created: [[Date(2005-04-28T00:34:13Z)]] by DanielSilverstone
 * Priority: NeedsPriority
 * People: NeedsLead, NeedsSecond
 * Contributors: DanielSilverstone
 * Interested:
 * Status: BrainDump, BreezyGoal, UduBof, DistroSpecification, NewSpec
 * Branch:
 * Malone Bug:
 * Packages:
 * Depends:
 * Dependents:
 [[FullSearch(SeedManagement)]]
 * UduSessions: 1, 4, 8, etc

== Braindump notes ==

Launchpad does not manage seeds within its database. Instead we have an arch branch on the supermirror and tell the Launchpad about the branch. We then have a tool which takes germinate output, interacts with launchpad (E.g. over XMLRPC) and does the component changes. We can also integrate that into the appservers so you can click a button, launchpad will check out the branch from the supermirror, germinate and let you manipulate things that way.

The plusses of this method are:

 * Much less coding resource needed from the Launchpad team in the short term (don't need to design entire DB sections and pages for editing seeds) but in the long term we're still flexible for moving to more control in launchpad
 * Ubuntu team gets their history, branching, merging, diffing, etc all for free from bazaar.
 * Ubuntu team continue to get their direct low-level control of how seeds affect the components.
 * Ubuntu team have slightly less to learn to move to Launchpad in the initial case.

The minuses of this method are:

 * Less direct control in Launchpad
 * Launchpad has to have access to the supermirror
 * Direct pybaz dependency will be introduced.

The launchpad stuff:

 * Launchpad gains a concept called a 'Flavour' which for now has an arch branch in a text field. Later we can always key seed tables off this table.
 * Flavours do not inherit within the launchpad because that'd be too confusing for the seed management people. They get inheritance by virtue of bazaar's branching and merging, ancestry etc and this seems a desirable level for them.

Seeds are the lists of packages we want to include in the distribution. We have four primary seeds, minimal, standard, desktop, and supported (in Ubuntu 5.04 and earlier, minimal and standard were combined into a single base seed), that define what goes into the archive's main component. minimal, standard, and desktop along with the ship seeds go onto our CDs and the supported packages are available from the FTP site.

Seeding a package pulls all of its dependencies into the appropriate part of the archive and ensures everything needed to build that package is at least placed in supported.

You can view the current seeds [http://people.ubuntu.com/~cjwatson/seeds/ here].

Descriptions of Seeds

Base

The base system provides a solid foundation for a desktop or server without providing X11 or any services listening on any non-localhost ports. This seed package list, once the complete dependency set has been added, provides that system.

Packages in base should be:

  • absolutely stable, standard tools that we think will be around forever and we are prepared to maintain even if the whole world moves on
  • useful diagnostic tools that one can use to get the system and network up and running, and are valuable to have "always there" in case of need
  • widely applicable (in the Greatest Common Factor sense, not Lowest Common Denominator) to every installation, desktop or server

A "base" system is not expected to be useful for any particular purpose. It's simply the minimal working system that we will support. It should be a platform that one can quickly get working, and on top of which one can construct a useful collection of services. Typically, servers would start out life as a "base" system, and the system administrator would then add specific services and packages as needed.

In Ubuntu 5.10 and later, the base system has been split into minimal (the set of packages you need to install in order to finish installation, install more packages, and have a minimally functioning system) and standard.

The raw base seed lists for the BreezyBadger release can be found here:BR http://people.ubuntu.com/~cjwatson/seeds/breezy/minimal BR http://people.ubuntu.com/~cjwatson/seeds/breezy/standard

Desktop

The Desktop seed, minimally summarised, ought to be a checklist of desktop features that would appeal to a user or procurer. Our default Desktop install should include every single package mentioned in the Desktop seed. Thus, the seed should be as simple as possible without being too simple, and be directly focused on solving desktop problems.

[ One of the valuable design choices in Debian is that if you install a daemon, it is assumed that you intend to use it. If you don't want to run it, don't install it. Requiring that a daemon be installed but not wanting to run it is a rarely-by-few use case, so Debian doesn't optimise for it. Rightly so. We ought to look at our Desktop seed in a similar light. If we put it on the list, it should be installed. If we install it, assume that it will be used. In some cases, this will be "running by default", but in most cases on the desktop, it just means "available or visible by default". ]

We should not confuse the Desktop seed with "what's on the CD", because we can always fill the remaining space on the CD with high priority items. Similarly, we should not put important things that are independent of our desktop solution in the Desktop seed, as this will adversely affect our focus. Major distro features that are not Desktop oriented should have their own sections on the Supported seed page.

The raw desktop seed list for the BreezyBadger release can be found here:BR http://people.ubuntu.com/~cjwatson/seeds/breezy/desktop

Supported

The supported system provides functionality not included by the base or desktop systems but which meets the following criteria:

  1. it is very widely used, people are committed to it.
  2. it is not architecturally insecure, it is thus easy for us to provide security fixes and updates.

This list would include popular servers other than the ones we include in a Base or Desktop install; additional desktop software; and a build environment. It is never expected that someone would install the entire Supported list of packages, they would choose specific packages that provide specific needed functionality.

This list is all the extra packages we think need to be supported in our distro. We will accept contributions of additional packages into this list, if they:

  1. have an external maintainer who agrees to maintain them to our standard, in ["Arch"], using ["Soyuz"]
  2. pass a one-time security review from MartinPitt and agree to be responsive to him on SecurityPage issues

Some packages in this list will also ship on the CD, subject to the amount of space we have on the CD. They would typically be cached on the installed hard drive for rapid installation without the CD. All of these packages will be available in the online archive of packages.

The raw Supported seed list for the BreezyBadger release can be found here:BR http://people.ubuntu.com/~cjwatson/seeds/breezy/supported

Extra

Binary packages which are built by a supported source package, but not supported themselves, are automatically added to a special "extra" list.

Installer

The installer seed tracks packages which are part of the installer as used on the install CD.

Casper

The casper seed tracks packages which are part of the installer subset used on the live CD.

Ship

Packages which will be included on the CD for convenience, but are not part of the default set of packages to install. Common examples include:

  • Utilities which might be necessary in some cases in order to connect to a network
  • Common server applications

The raw Ship seed list for the BreezyBadger release can be found here:BR http://people.ubuntu.com/~cjwatson/seeds/breezy/ship

Live

Software which will be installed on the Ubuntu LiveCD, in addition to the default desktop set.

The raw Live seed list for the BreezyBadger release can be found here:BR http://people.ubuntu.com/~cjwatson/seeds/breezy/live

How the Seeds are Used

Germinate

The seeds are read by a program called ["Germinate"], which resolves the dependencies of packages in the seed lists. By adding additional packages to satisfy these dependencies, the final package lists are produced.

CD builds

  • The installation CD contains the software in the Installer, Minimal, Standard, Desktop, and Ship seeds (and their dependencies)
  • The installation/live DVD contains the software in the Installer, Casper, Minimal, Standard, Desktop, Ship, Live, and Supported seeds (and their dependencies)
  • The live CD contains the software in the Casper, Minimal, Standard, Desktop, and Live seeds (and their dependencies)

Changing the Seeds

Proposals for adding new packages to the seeds should be added to the UbuntuMainInclusionQueue page; please prepare a report as described on that page and send the proposal and a link to the report to the ubuntu-devel mailing list.

The seed archives are now managed in [http://bazaar.canonical.com/Bzr bzr]; you will need at least version 0.6. If your distribution does not have bzr 0.6, nightly snapshots are available in the bzr package at [http://people.ubuntu.com/~jbailey/snapshot/bzr/].

To get a checked-out copy of the seeds that you can edit:

  • If you have a chinstrap account (Canonical staff only), install the paramiko package (from your distribution, or from the [http://people.ubuntu.com/~jbailey/snapshot/bzr/ nightly snapshot archive], and:

    bzr get sftp://chinstrap.ubuntu.com/home/warthogs/archives/seeds.ubuntu.com/ubuntu/seeds/dapper
  • If you don't have a chinstrap account, then a public but read-only mirror is here:

    bzr get http://people.ubuntu.com/~cjwatson/seeds.ubuntu.com/ubuntu/seeds/dapper

Make sure to set an appropriate user id in ~/.bazaar/bazaar.conf, like this:

[DEFAULT]
email=Colin Watson <colin.watson@canonical.com>

To update a checkout, use bzr pull.

To commit, install the bzrtools package (from your distribution, or from the [http://people.ubuntu.com/~jbailey/snapshot/bzr/ nightly snapshot archive], and:

bzr commit -m 'commit message'
bzr push sftp://chinstrap.ubuntu.com/home/warthogs/archives/seeds.ubuntu.com/ubuntu/seeds/dapper

(You only need to supply a URL the first time you push.)

  • For the Kubuntu seeds replace /ubuntu/ with /kubuntu/ in the command above. For the Edubuntu seeds replace /ubuntu/ with /edubuntu/.

  • Before making any changes you should set your umask to 002 in your .bashrc (bash) or .zprofile (zsh) on chinstrap, to ensure the changes are committed group writable.
  • Note that changes to the seeds do not automatically cause packages to move to a new component in the archive. See UbuntuMainInclusionQueue.

  • If any of the ubuntu-meta, kubuntu-meta, or edubuntu-meta source packages build a metapackage for the seed you changed, run the update script in the appropriate source package and upload it (after your changes have been effected in the seeds archive; you will need to wait about 20 minutes for these changes to propagate to the public mirror).

UDU Notes

Status

Braindump notes

Launchpad does not manage seeds within its database. Instead we have an arch branch on the supermirror and tell the Launchpad about the branch. We then have a tool which takes germinate output, interacts with launchpad (E.g. over XMLRPC) and does the component changes. We can also integrate that into the appservers so you can click a button, launchpad will check out the branch from the supermirror, germinate and let you manipulate things that way.

The plusses of this method are:

  • Much less coding resource needed from the Launchpad team in the short term (don't need to design entire DB sections and pages for editing seeds) but in the long term we're still flexible for moving to more control in launchpad
  • Ubuntu team gets their history, branching, merging, diffing, etc all for free from bazaar.
  • Ubuntu team continue to get their direct low-level control of how seeds affect the components.
  • Ubuntu team have slightly less to learn to move to Launchpad in the initial case.

The minuses of this method are:

  • Less direct control in Launchpad
  • Launchpad has to have access to the supermirror
  • Direct pybaz dependency will be introduced.

The launchpad stuff:

  • Launchpad gains a concept called a 'Flavour' which for now has an arch branch in a text field. Later we can always key seed tables off this table.
  • Flavours do not inherit within the launchpad because that'd be too confusing for the seed management people. They get inheritance by virtue of bazaar's branching and merging, ancestry etc and this seems a desirable level for them.

SeedManagement (last edited 2022-04-06 17:52:01 by schopin)