Gentoo Archives: gentoo-dev

From: Michael Cummings <mcummings@g.o>
To: James Yonan <jim@×××××.net>
Cc: Gentoo-Dev <gentoo-dev@g.o>
Subject: Re: [gentoo-dev] The problem of stable/current. Was: Re: [gentoo-dev] the vision for Gentoo
Date: Sun, 29 Jun 2003 11:13:46
Message-Id: 20030629071322.4284d463.mcummings@gentoo.org
In Reply to: Re: [gentoo-dev] The problem of stable/current. Was: Re: [gentoo-dev] the vision for Gentoo by James Yonan
1 Not to be a nay sayer, because I like the idea of a stable tree, but one hitch is that in our current setup, we pull source from the source, but sometimes those source packages go away - hence the new ebuild. Not a universal, just pointing it out (happens in dev-perl/* for instance). Just sharing,
2
3 Mike
4
5 On Sat, 28 Jun 2003 22:59:52 -0000
6 "James Yonan" <jim@×××××.net> wrote:
7
8 > Martin Schlemmer <azarah@g.o> said:
9 >
10 > > On Sat, 2003-06-28 at 23:31, James Yonan wrote:
11 > >
12 > > > Just to throw out an idea on creating a generalization to stable/current (I'm
13 > > > new to Gentoo, so I'm not sure how much of this has already been done, or to
14 > > > what extent these ideas have already been made concrete in the portage
15 > concept).
16 > > >
17 > > > Why not create a notion of a distribution "checkpoint"?
18 > > >
19 > > > A checkpoint is a file that contains all information necessary to build a
20 > > > particular gentoo distribution as it existed at some point in time, similar to
21 > > > the idea of a cvs tag, or saving the game before you do something that's
22 > > > likely to get you killed :)
23 > >
24 > > Unfortunately a big problem with this, is that ebuild do not stick
25 > > around long enouth ... except of course if you do it your side.
26 > >
27 > > IMHO, I do not see that we can do it with current implementation
28 > > of the portage tree, even if we do not cleanup stuff - as if we
29 > > do not, the tree is going to get *too* big.
30 >
31 > Well, the idea would be to manage the size by having a benchmark portage tree
32 > and then representing a custom tree inside an .ebuild file by taking the
33 > benchmark portage tree reference + one or more patch deltas. The
34 > "distribution ebuild" file would really not be large, as it would contain
35 > little more than tags, references, and patches, just as standard ebuild files
36 > exist today for packages. Since cvs already manages repository size by
37 > representing changes as deltas, I doubt a cvs explosion would be likely. The
38 > real win with cvs (or other versioning tools) is the way in which tags can be
39 > locked to constant snapshots of the tree which are invariant over the lifetime
40 > of the repository. This constancy is important because it provides a solid
41 > foundation against which patch deltas can be derived, and would therefore
42 > allow a particular gentoo snapshot (as represented by a patch against a cvs
43 > tag) to be accessible indefinitely, leveraging the versioning capability of
44 > cvs to prevent explosions in size and complexity.
45 >
46 > I really do believe that the holy grail of meta-distributions is to achieve
47 > the representation of an entire distribution in a compact, textual form,
48 > allowing the tools of open source development (diff, patch, cvs, etc.) to be
49 > applied to the distribution tree itself, and allowing the distribution to
50 > evolve along different lines of evolution, but having the tools to keep the
51 > different versions in sync.
52 >
53 > Take, for example, the linux kernel. A quick glance at kernel.org shows a
54 > whole bunch of kernels, 10 to be exact. Many of them are simply someone's
55 > personal selection of patches, appended with their initials. But these 10
56 > versions are not true forks, they are only alternative versions of the same
57 > overall evolutionary progression. It's really the power of the versioning
58 > tools, i.e. cvs, bitkeeper, etc. that gives us the ability to fork and then
59 > remerge, making the forks ephemeral rather than irreconcilable, and preserving
60 > an overall singularity of evolution even within an environment where multiple,
61 > distributed repositories exist.
62 >
63 > My idea is simply to take the _concept_ of cvs, bitkeeper, and distributed
64 > versioning repositories as it is used in linux kernel development, and apply
65 > it to making a true meta-distribution of gentoo. To the extent that the
66 > portage tree concept is really a kind of source code for developing
67 > distributions, and the fact that distributed development tools like diff,
68 > patch, and cvs are already quite mature, I believe that it's not such a big
69 > leap from concept to implementation.
70 >
71 > James
72 >
73 >
74 > --
75 > gentoo-dev@g.o mailing list
76
77
78 --
79
80 -----o()o---------------------------------------------
81 | #gentoo-dev on irc.freenode.net
82 Gentoo Dev | #gentoo-perl on irc.freenode.net
83 Perl Guy |
84 | GnuPG Key ID: AB5CED4E9E7F4E2E
85 -----o()o---------------------------------------------