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--------------------------------------------- |