[maemo-commits] [maemo-commits] r16541 - projects/haf/doc/mvo
From: subversion at stage.maemo.org subversion at stage.maemo.orgDate: Fri Oct 31 01:18:24 EET 2008
- Previous message: [maemo-commits] r16540 - projects/haf/trunk/apt
- Next message: [maemo-commits] r16542 - projects/haf/trunk/epeg/debian
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Author: marivoll Date: 2008-10-31 01:18:23 +0200 (Fri, 31 Oct 2008) New Revision: 16541 Modified: projects/haf/doc/mvo/system-model-2.txt Log: Moved all the pending stuff into its own section. The Maemo archive is now completely public. Other tweaks. Modified: projects/haf/doc/mvo/system-model-2.txt =================================================================== --- projects/haf/doc/mvo/system-model-2.txt 2008-10-30 16:54:49 UTC (rev 16540) +++ projects/haf/doc/mvo/system-model-2.txt 2008-10-30 23:18:23 UTC (rev 16541) @@ -95,19 +95,11 @@ but people need to explicitly agree to certain conditions before they are allowed to download from other categories. -Thus, categories control publishing of packages. A package is made -public by moving it to a category with general access (maybe subject -to a anonymous license agreement). This is different from releasing a -version of Maemo. See "Distributions", below. - The categories are: nokia-free - nokia-freely-distributable + nokia-non-free nokia-restricted - nokia-free-pending - nokia-freely-distributable-pending - nokia-restricted-pending maemo.org-free maemo.org-non-free @@ -119,14 +111,13 @@ OSI approved Open Source license. Everybody can access this category freely. Only Nokia can upload to it. - - nokia-freely-distributable + - nokia-non-free - Packages in nokia-freely-distributable are not Free Software, but - they can be redistributed freely. Some have source, others don't. - Everybody can access this category freely. Only Nokia can upload to - it. + Packages in nokia-non-free are not Free Software, but they can be + redistributed freely. Some have source, others don't. Everybody can + access this category freely. Only Nokia can upload to it. - - nokia-restricted + - nokia-restricted Packages in nokia-restricted are not Free Software and can not be redistributed freely. Access to this category is granted after @@ -139,31 +130,6 @@ allowed to distribute their binaries with the license agreement of nokia-restricted. - - nokia-free-pending - - Packages in nokia-free-pending are Free Software suitable for - nokia-free that have not been published yet. Reasons for holding - back free packages from being published can be incomplete legal - checks and the desire to keep them a trade secret until some launch - event. - - New packages that are destined for nokia-free could be forced into - nokia-free-pending instead. Legal checks can be triggered by a new - package appearing in nokia-free-pending. Packages could - automatically move to nokia-free once the check is complete. - - - nokia-freely-distributable-pending - - Packages in nokia-freely-distributable-pending are suitable for - nokia-freely-distributable that have not been published yet, similar - to nokia-free-pending. - - - nokia-restricted-pending - - Packages in nokia-restricted-pending are suitable for - nokia-restricted that have not been published yet, similar to - nokia-free-pending. - - maemo.org-free Packages in maemo.org-free are Free Software. They are licensed with a @@ -178,10 +144,9 @@ access this category freely. Only people with a garage.maemo.org account can upload to it. -The public categories starting with "nokia" are published on -nokia.com. The "maemo.org" categories are published on maemo.org. +The categories starting with "nokia" are published on nokia.com. The +"maemo.org" categories are published on maemo.org. - ** Distributions Most packages in the Maemo archive are part of one or more @@ -195,17 +160,26 @@ release them. When copying packages, one or more source packages are copied together with all their binary packages. -The distributions for Harmattan are "harmattan", "harmattan-testing", - "harmattan-proposed-updates", and "harmattan-pending". +The distributions for Harmattan are "harmattan-stable", +"harmattan-testing", and "harmattan-proposed-updates". In detail: - - harmattan + - harmattan-stable - This distribution contains the current release of harmattan. Devices - of normal users use this distribution. The *-pending categories of - this distribution must always be empty. + This distribution contains the current release of Harmattan. Devices + of normal users use this distribution. + Packages in harmattan-stable should be installable: all their + run-time dependencies should be available. + + Packages in harmattan-stable should be rebuildable: all their build + dependencies should be available. + + Only one version of a package can be in harmattan-stable. If a new + version of a package enters harmattan-stable, the existing version is + removed. + - harmattan-testing This distribution contains the current state of the upcoming release @@ -213,54 +187,47 @@ source packages. Developers use this distribution in the SDK. Beta testers use this distribution on their devices. - The *-pending categories of this distribution must always be empty. + Packages in harmattan-testing don't need to be installable: it is OK + if dependencies are missing, just as it is OK to have other critical + bugs that prevent their release. + More than one version of a package can be in harmattan-testing. See + the section "Expiration" below for how to keep the size of the Maemo + archive under control. + - harmattan-proposed-updates This distribution is used to prepare small updates to packages in the - harmattan distribution that can not wait until the package in - harmattan-testing is of sufficient quality to be released. + harmattan-stable distribution that can not wait until the version of + the package in harmattan-testing is of sufficient quality to be + released. In other words, harmattan-proposed-updates is mainly for preparing security fixes. It should be empty except for very short periods of time. - The *-pending categories of this distribution must always be empty. - - - harmattan-pending - - This distribution is used to handle packages in the *-pending - categories. Source packages uploaded to (or redirected to) one of - the *-pending categories are compiled in harmattan-testing + - harmattan-pending. - - The harmattan-pending distribution should actively be kept small (by - moving packages out of the *-pending categories) because it has a - natural tendency to grow: once a package is in *-pending, it attracts - more packages that depend on it. - *** Compatibility Interface management will make the harmattan-testing distribution -compatible with the harmattan distribution in a desired way. Most -packages compiled in harmattan-testing should be installable in -harmattan. Exceptions are allowed, but only by plan, not by accident. -Compatibility requirements will be especially relaxed before the first -release of harmattan. +compatible with the harmattan-stable distribution in a desired way. +Most packages compiled in harmattan-testing should be installable in +harmattan-stable. Exceptions are allowed, but only by plan, not by +accident. Compatibility requirements will be especially relaxed +before the first release of Harmattan. -Compatibility is important because packages (and groups of packages) -are released independently. Consider a typical 3rd party application -in the extras category: they are meant to be installed 'immediately' -on devices that run the current harmattan distribution. They are not -targeted at users running harmattan-testing, and they don't want to -wait until their dependencies have been released. Still, they are -compiled in a harmattan-testing environment. +Compatibility is important because groups of packages are released +independently. Consider a typical 3rd party application in the extras +category: they are meant to be installed 'immediately' on devices that +run the harmattan-stable distribution. They are not targeted at users +running harmattan-testing, and they don't want to wait until their +dependencies have been released. Still, they are compiled in a +harmattan-testing environment. Problems with this will only arise when a binary package automatically picks up a incorrect run-time dependency that is not satisfiable in -harmattan. The correct dependency would be satisfiable in harmattan, -but the build tools used to compute it did not produce the correct -result. +harmattan-stable. The correct dependency would be satisfiable in +harmattan-stable, but the build tools used to compute it did not +produce the correct result. These problems need to be solved by simply computing the correct run-time dependencies during build time. @@ -288,46 +255,53 @@ *** Releasing Packages are released by copying them in groups from harmattan-testing -to harmattan. For a simple application in extras, this can be a -single package, which is copied under control of the original +to harmattan-stable. For a simple application in extras, this can be +a single package, which is copied under control of the original uploader. For a big module like the OS, this will mean copying a huge set of packages under control of the release manager. -When copying a group of packages in this way, the harmattan +[ This is different from Debian, where the whole of testing is + released as a unit. We don't do that since we want to release + 'modules' independently. See the "Configuration" section below. +] + +When copying a group of packages in this way, the harmattan-stable distribution must not break, of course. Most run-time and build-time dependencies between packages should still be satisfiable, and those -that break should be identified and the breakage approved. +that break should be identified and the breakage approved. See the +"Snapshots" section below for how to test whether harmattan-stable would +break without actually running the risk of breaking it. -[ Breaking harmattan might be considered OK when we release a OS - version that is incompatible with a 3rd party application. Such an - application should ultimately not be able to delay the OS release. - This should be the exception and not the rule, of course. +[ Breaking harmattan-stable might be considered OK when we release a + OS version that is incompatible with a 3rd party application. Such + an application should ultimately not be able to delay the OS + release. This should be the exception and not the rule, of course. ] Note that the SDK does not need to be released: harmattan-testing _is_ the SDK distribution. However, SDK packages should be copied to the -harmattan distribution as well so that that distribution is always -self-contained and recompilable. This is part of the "do not break -harmattan" rule: The harmattan distribution is also considered broken -when its packages can not be recompiled. This is important when using -harmattan-proposed-updates for quick updates. +harmattan-stable distribution as well so that that distribution is +always self-contained and recompilable. This is part of the "do not +break harmattan-stable" rule: The harmattan-stable distribution is +also considered broken when its packages can not be recompiled. This +is important when using harmattan-proposed-updates for urgent updates. *** Urgent updates The normal "Don't Panic" development process builds packages in -harmattan-testing and slowly releases them to harmattan when they are -ready. +harmattan-testing and slowly releases them to harmattan-stable when +they are ready. The "Panic Now" process for releasing security fixes and other urgent updates uses harmattan-proposed-updates in the following way. The updated source package is uploaded to harmattan-proposed-updates and -the responsible buildbot compiles it in a harmattan environment. The -update is tested by installing harmattan + harmattan-proposed-updates -on a device. If the update is considered releasable, the content of -harmattan-proposed-updates is copied into harmattan and -harmattan-proposed-updates is emptied. If the update is not -releasable, harmattan-proposed-updates is emptied as well, and the -process starts over. +the responsible buildbot compiles it in a harmattan-stable +environment. The update is tested by installing harmattan-stable + +harmattan-proposed-updates on a device. If the update is considered +releasable, the content of harmattan-proposed-updates is copied into +harmattan-stable and harmattan-proposed-updates is emptied. If the +update is not releasable, harmattan-proposed-updates is emptied as +well, and the process starts over. It is important that harmattan-proposed-updates is almost always empty. It would not be entirely inappropriate to send an email to @@ -336,7 +310,7 @@ *** Snapshots -[...] +[ The Maemo archive as a revision control system... ] *** Continuity @@ -345,10 +319,54 @@ When starting the "Isnogud" project (say), the isnogud, isnogud-testing, and isnogud-proposed-updates distributions are added -to the Maemo archive. They are created by copying the equivalent +to the Maemo archive. They are created by copying the corresponding Harmattan distributions. Development then starts in isnogud-testing, without much regard to compatibility to isnogud if so desired. +** Delayed publication + +The Maemo archive is public. The Maemo system is developed and +maintained in the open: this facilitates ad-hoc collaboration and +other advantages of Open Source software development. + +However, packages can sometimes not be published immediately, although +they eventually will be. Reasons for holding back packages can be +incomplete legal checks or the desire to keep them a trade secret +until some launch event. + +Note also that delayed publishing is not strictly related to releasing +a package. Usually, packages should be published long before they are +released. + +How packages are delayed is up to the party that desires it. Inside +Nokia, the Maemo archive is extended into the "Nokia archive" by +adding three more categories: nokia-free-pending, +nokia-non-free-pending, nokia-restricted-pending. Packages in these +categories are said to be "pending". + +The Nokia archive naturally contains the distributions of the Maemo +archive. However, those distributions must not have any packages in +the three "*-pending" categories. Thus, there is no way to upload a +package into the "nokia-free-pending" category of the +"harmattan-testing" distribution. + +Instead, the Nokia archive has one additional distribution: + + - harmattan-pending + + This distribution is used to handle packages in the *-pending + categories. It consists of the packages in harmattan-testing plus + the pending packages. Source packages uploaded to harmattan-pending + go to one of the *-pending categories and are compiled in + harmattan-pending. + +The infrastructure for the Maemo archive and the Nokia archive is +separate: for example, the buildbots for the Maemo archive can only +access publicly available sources. When a pending package should +finally be published, this has to be done by publishing the source and +uploading it again to the Maemo archive (with an increased version +number, of course). + ** Repositories The Maemo archive is published in one or more "Repositories". A
- Previous message: [maemo-commits] r16540 - projects/haf/trunk/apt
- Next message: [maemo-commits] r16542 - projects/haf/trunk/epeg/debian
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]