[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Proposal: incremental release process (the package pool)
- From: Taketoshi Sano <xlj06203@nifty.ne.jp>
- Subject: Re: Proposal: incremental release process (the package pool)
- Date: 26 Oct 1999 09:39:22 +0900
- X-Dispatcher: imput version 980905(IM100)
- X-fingerprint: DA 00 13 8C 49 BB 60 BE A4 54 3D AF 2E CE 28 DD
- X-ML-Info: If you have a question, send a mail with the body"# help" (without quotes) to the address jp-policy-ctl@debian.or.jp;help=<mailto:jp-policy-ctl@debian.or.jp?body=help>
- X-ML-Name: jp-policy
- X-MLServer: fml [fml 2.2]; post only (only members can post)
- References: <19991008043516.A1656@webcom.com>
- Message-Id: <y5a1zajvttx.fsf@xlj06203.nifty.ne.jp>
- X-Mail-Count: 00149
- User-Agent: Semi-gnus/6.8.19 SEMI/1.10.1 (Morimoto) FLIM/1.11.3 (Saidaiji) Emacs/20.3 (i386-debian-linux-gnu) MULE/4.0 (HANANOEN)
佐野@浜松です。
もう既に誰か話題にしているかもしれませんが、debian-project@lists からの
転送です。
おおざっぱに言えば、
project/experimental の廃止
'unstable' -> 'pool' に改称
'working' の新設
'working' -> 'release'(stable) の手順規定
QA team / Release team に 'release' (stable) への NMU を
積極的に認め、奨励する。
Maintainer は 'pool' への upload と、 'pool' -> 'working' を
申請する 'promote' に関して責任を持つ。 'working' -> 'release' に
関心があれば QA team / Release team に参加して活動できる
といったところでしょうか。
面白い提案だな、と思いました。これを先取りして JP 内で試行してみる、
という方向もアリかなと個人的には思いましたが、まだ最初の提案を読んだ
だけで議論を追いかけていないので、問題点などについては深く考えていません。
ということでまずは紹介。
In article <19991008043516.A1656@webcom.com>
Lalo Martins <lalo@webcom.com> さん writes:
> From: Lalo Martins <lalo@webcom.com>
> Subject: Proposal: incremental release process (the package pool)
> Date: Sun, 24 Oct 1999 19:32:40 -0200
> Message-ID: <19991008043516.A1656@webcom.com>
> X-Mailing-List: <debian-project@lists.debian.org> archive/latest/53
> This was supposed to be just a draft of the proposal. I'd like
> to get it more polished before I submitted it, but considering
> the timeline that might not be possible.
>
> My draft comments are enclosed in [brackets].
>
>
> PROPOSAL: NEW (`Incremental') RELEASE PROCESS --- DRAFT
>
> This message proposes a new release process for Debian. I'm
> proposing that this is discussed for the standard period [is
> this 2 weeks?] and then voted. The ballot should contain the
> options: "SWITCH to the new release process", "KEEP the current
> release process", and "Further discussion".
>
>
> Abstract:
>
> This is a new release process for the Debian operating system.
> Currently we try to refine a "unstable" version into a "stable"
> release by going trough a period of "freeze"; it is my belief
> that this method isn't adequate anymore due to the size of the
> system and the project itself.
>
> This new process was first proposed in 98 by Marcus Brinkmann [is
> this right?], and since then been periodically discussed but
> never voted on.
>
>
> Rationale:
>
> This new release process, called for some "the package
> pool", but which I prefer to call "Incremental release process",
> aims to cope with some basic problems that make Debian releases
> a tough job:
>
> 1: Packages evolve at different speeds. Some packages have new
> versions every day, others only change once a year. Some
> packages have very unstable development releases, others are
> always usable regardless of version. So while a 4-month freeze
> may be barely enought for some packages, it will make others
> hopelessly outdated (and this is not a matter of "wanting to be
> on the bleeding edge" - most times the newer version is a lot
> more usable).
>
> 2: Debian has grown beyond our own expectatives. The number of
> packages and the number of developers are reason of pride for
> some (we use these numbers in our Freshmeat ad - "most packages,
> most people, the biggest is still the best...") and despair for
> others. But the freeze process can become a real nightmare if we
> have to deal with almost 4000 packages.
>
> 3: An unstable version of a package is an unstable version,
> period. Some months of "freeze" will not magically decant it
> into a stable version, no matter what.
>
> Just to make sure I won't get flamed, this is how the
> Incremental process addresses each of these problems:
>
> 1: Slower packages can move at their own pace, the freezes will
> always catch the latest usable version. The (hopefully) shorter
> freeze period will benefit faster packages.
>
> 2: Each maintainer has control over the "stability" of his/her
> packages, by "promoting" the most stable version. This
> distributes the workload.
>
> 3: The middle layer ("working") only holds stable, usable
> versions of packages. So the "freeze" process is only a matter
> of fine-tuning, dependency sanity checking and polishing.
>
>
> Presentation of the three layers:
>
> The process consists basically in creating three stability
> ``layers'': ``pool'', ``working'' and ``stable''.
>
> The three layers are not too different than the system we have
> today, only formalized in a different way. Currently we have
> "experimental", for software we think won't work too well,
> "unstable", for software that may or may not work, and "stable",
> which is our released version. By simple logic interpolation, we
> can see that we could use a different layer for software that
> we're very sure that will work.
>
> This proposal includes erradication of the "experimental" area,
> because very few maintaiers use it, because it's "out of the
> way" for people to download from it, and because it will be
> redundant with the "pool" layer.
>
> In this new release process, all uploads go to a lower layer
> called "pool". There may be more than one version of the same
> package in the pool.
>
> If a maintainer is very sure about the stability of a given
> version of a package, the maintainer "promotes" that version to
> the middle layer, called "working". At any moment, someone could
> in theory burn a CD of "working" and it would be, surprise, a
> "working" operating system. Apt users may safely keep their
> systems up-to-date with "working"; it will change less often
> than our current "unstable" (thus less downloads), and it will
> always work reasonably.
>
> For a package version to be promoted, it must have all of its
> dependencies resolvable withing "working". This may be checked
> automatically, the necessary code is already in apt-get. If this
> requirement isn't met, the "promote" command goes to a queue to
> be reprocessed daily; this queue is processed as a whole, so
> that tough situations like the recent perl->perl-5005 upgrade
> would be dealt with automatically (just send "promote" for each
> package, and the whole bunch will get processed when all
> packages with "perl" dependencies in "working" have newer
> versions in the queue with a fixed dependency).
>
> At any moment, the Project Leader or a delegate (Release
> Manager, as we have today, or Release Team perhaps someday) may
> declare a freeze. This means copying all packages in "working"
> to a codenamed area (like "buzz", "rex", "bo", "hamm", "slink",
> "potato"). This snapshot will be thoroughly tested, and when
> it's deemed fully stable by the Project Leader or delegate, with
> the help from the Testing Team and QA Group, it is released.
>
> Note that this freeze process doesn't require participation from
> all developers. Those not interested in releases may just get on
> with their lives, continue uploading to "pool" and promoting
> stable versions without even bothering about the freeze.
>
> On the other hand, the QA Group (or Release Team if such a thing
> is created) may modify any package in the frozen area as they
> see fit; this includes fetching newer versions from "working",
> manually modifying the package (effectively an NMU), pulling
> _older_ versions from previous releases, or even removing the
> package from the frozen area.
>
> Maintainers who _are_ interested in the release/freeze process
> may, of course, stay in touch with the QA Group/Release Team, or
> perhaps even join one of the groups, and take care of his/her
> own packages.
>
>
> Additional burdens:
>
> This proposal admittedly [sp?] places some extra burdens on the
> maintainers. These are the worst ones:
>
> 1: Maintainers will have to worry about "promote" commands. I
> think we can live with that, it's easier than the BTS.
>
> 2: Maintainers will have to worry about the versions of the
> package present in the pool. Not a show-stopper either.
>
> 3: Maintainers will have to worry about which version of their
> packages are working. Honestly, I think this is a bonus.
>
> Another possible additional burden placed by this proposal is on
> the dinstall managers, if maintainers start to make more (and
> possibly buggy) uploads. This would have to be dealt with.
>
>
> Technical details:
>
> 1: We need to be able to keep several versions of a package in
> the pool. Packages should be deleted automatically; when one
> version is promoted, all older versions are deleted from Pool.
>
> These multiple versions kept are upstream versions; only one
> "Debian Revision" is kept for each version. So if I upload
> freeciv_1.8.3-4 it will delete freeciv_1.8.3-3, but if I then
> upload freeciv_1.8.3+cvs19991010 it will _not_ delete any of the
> 1.8.3 packages.
>
> 2: Promoting should be done either by sending a signed message
> to a special automated address (similar to *@bugs.debian.org) or
> by running a special script at master. This program must
> process, besides the "promote" command, a "remove" command to
> purge a package from Working and a "clean" command to remove one
> given upstream version from Pool.
>
> [Food for thought: should we keep more than one version in
> Working too, so that the maintainer may "change his mind" about
> the stability of a version?]
>
> 3: To be nicer on mirrors, Working should at all times be simply
> a forest of symlinks into Pool, because mirrors can't handle the
> movement of a file (they just delete it from the old location
> and download it again for the new one).
>
> 4: dpkg-scanpackages, or whatever is used to generate Packages
> files for apt, must be fixed so that when multiple versions are
> found, the newest one is used (currently it uses the first one
> found, which will give filesystem-dependent results).
>
>
> Implementation:
>
> When the current Unstable (potato) is frozen, instead of
> creating a new Unstable area, we will create the Pool and
> populate it with a copy of potato; plus, create an empty Working
> area and wait for maintainers to start populating it; plus,
> delete the "project/experimental" area. Of course the promotion
> automating software must be working and tested by then.
>
> []s,
> |alo
> +----
> --
> I am Lalo of deB-org. You will be freed.
> Resistance is futile.
>
> http://www.webcom.com/lalo mailto:lalo@webcom.com
> pgp key in the web page
>
> Debian GNU/Linux -- http://www.debian.org
--
# 11/13 に何かが起きる? > "http://www.szlug.factory.to"
# (わたしのおうちは浜松市、「夜のお菓子」で有名さ。)
<xlj06203@nifty.ne.jp> : Taketoshi Sano (佐野 武俊)