On Thursday 28 May 2009 01:10:50 Piotr Jaroszyński wrote:

> >>
> >> How is it one-way exactly? You can do pretty much anything you want in
> >> a new EAPI (that's the point).
> >
> > You cannot undo it.
> >
> > In other words, you'll have to allow stupid filenames until the end of
> > times even if you are quite positively sure that it is, right now, a bad
> > idea.
>
> What do you mean by "allow" exactly? You can put whatever filenames in
> the tree currently and package managers ignore them, just as they
> would ignore *.ebuild-$eapi where $eapi is unsupported. So should g55
> be accepted, implemented and then undone you would "lose" only
> *.ebuild-{EAPIs introduced before undoing}.

If you add an unsupported filetype randomly you'll find a few very unhappy 
people reverting your commit and suggesting that you never do it again. And 
repoman will tell you not to do such things (assuming that you do use it)

Once you GLEP55 it is very difficult to get rid of any problems it might cause 
without triggering the kind of apocalyptic breakage that it is supposed to 
avoid. So we should be reasonably certain that it is in fact the best solution 
and we want to live with it for a long time.

But, as people are discussing some interesting new (and some old) concepts 
that might change things around quite a bit maybe we should wait until we know 
where we are going before we start changing things we'd revert immediately.

> > Not at all. Just an upgrade snapshot so you can get "old" users into a
> > known state, then let them upgrade at least the package manager to a
> > point where they can use the rest. That snapshot should be seen as a
> > transient helper, not as a "release" ...
>
> So a user n snapshots behind would have to go through various upgrade
> paths n times. And if she failed to do it all at once her system would
> be left with known bugs and vulnerabilities. Sounds a bit messy to me,
> especially as it can be easily avoided (with improved EAPIs - i.e.
> g55).
It's actually less messy than the current breakage. Just spend a few days in 
#gentoo and watch people try to upgrade after >1y ... glep55 does nothing at 
all to help with that, snapshots at least give a consistent state to converge 
to. E.g. the bash-portage blocker (easily avoided with a snapshot), the "EAPI1 
unsupported" blocker (same) etc. etc.

Most issues happen because we do not provide an upgrade path, and GLEP55-style 
changes only motivate more rapid changes that will not make it easier for 
users to upgrade. It only has the potential to make life easier for those of 
use living on the bleeding edge and allows to add package formats to the tree 
that no official package manager supports (do we want that? I vote for no)

Added bonus - as soon as you have a snapshot supporting EAPI="wintermute" you 
can migrate _all_ packages to it without having to keep Python and gcc and 
stuff as eapi0. Which means we lose some rather naughty restrictions that are 
in place now (and can easily deprecate older EAPIs too, which is good in terms 
of complexity)
Oh, and you can change the defaults around too because you _know_ that this 
snapshot and higher can handle this change. 

I could go on pointing out nice features, but since this isn't a sales 
brochure I'll just leave it at that and hope someone actually reads this mail 
before instareplying.


Reply via email to