[gentoo-dev] Re: Re: GLEP 55 Version 2

2009-06-08 Thread Steven J Long
Roy Bamford wrote:

 On 2009.06.07 10:34, Ulrich Mueller wrote:
  On Sun, 07 Jun 2009, Steven J Long wrote:
 
  I'd just like to know what the implications would be for users if
 we
  kept the .ebuild extension, and a new PMS were rolled out stating
  that the mangler were allowed to find the EAPI without sourcing
 (and
  giving the restrictions) once portage 2.2 was stable, or the
 ability
  to handle this backported to 2.1.6, and issued in a release?
 
 Even if we do only a one-time change of the file extension, can we
 ever get rid of the old extension? Or are we then stuck with two
 extensions in the tree until the end of time?
 
 Let's assume for the moment that we change from .ebuild to .eb.
 Then we obviously cannot change all ebuilds in the tree to .eb,
 otherwise old Portage versions would see an empty tree and there
 would
 be no upgrade path.
 
 Or am I missing something?

Sounds about right

 
 First, lets be clear that the upgrade path related problems are driven
 by the EAPI change, not the .ebuild to .eb change.  That serves only to
 allow the new EAPI to be introduced immedately and hide the change from
 older package managers

snip 
 To keep an upgrade path, package managers and their dependencies need
 to use EAPI 0, 1 or 2. (EAPI 3 is not yet out) How far back should the
 upgrade path extend?

Well given that EAPI 3 is not out, and that bash-4 is not even stable
(and if anyone thinks we can rely on bash-4 in the next 6 months, they
didn't learn anything from bash-3 imo) this sounds like it's a fair
distance away. From discussion with Harring, EAPIs were not meant to
come out very often; iirc he said something like maybe once a year.

I concur with Duncan on a year, as you know. I appreciate you feel it
should be longer, and am happy to go with whatever the consensus is.

 As you suggest, even with .ebuild to .eb change.its not a clean break
 with the past but would happen over time, with ebuilds for new package
 versions being migrated to the new format. For example we would
 have
 foo-2.1-r1.ebuild
 foo-3.0.eb
 portage-2.3.ebuild
 portage-3.0.eb

yuck.

 Portage-2.3 will understand the later EAPI but will itself, use only
 EAPI, 0, 1 or 2.

Just to be clear: portage-2.2 and later will be fine with any EAPI, with
no change to any ebuilds, nor any new extension being needed. The
change can easily be backported to 2.1.6, tho I suspect 2.2 will be
stable fairly soon.
 
 Thats just portage. The same reasoning applies to any other package
 manager and there are at least three. This begs the question of how
 friendly do we want to be to derivitive distros that use our tree but
 their own package manager?

As friendly as we can be without hobbling our own development. Most of
them appear to be fairly collaborative with Gentoo in any case.

 Upgrade path issues need to be addressed in the GLEP. I will add
 something like the above in the next version.

Wrt transitioning, can the eapi (PMS 5.2.2) and deprecated (5.2.3) files
not be of use? I seem to recall the change from 2007.1 to 2008.0 for
example; anyone using a deprecated profile can expect a massive warning
the next time they try to do anything after sync'ing.

Thanks again for your work; I appreciate that your time is valuable.

Regards,
Steve.
--
#friendly-coders -- We're friendly but we're not /that/ friendly ;-)




[gentoo-dev] Re: Re: GLEP 55

2008-06-10 Thread Tiziano Müller
Luca Barbato wrote:

 Tiziano Müller wrote:
 Joe Peterson wrote:
 
 Ciaran McCreesh wrote:
 And a file extension is far less obscurely complex than enforcing
 arbitrary syntax restrictions upon ebuilds.
 I disagree.  One is exposed to devs only as ebuild syntax; the other is
 exposed in an inappropriate location to everyone looking at the portage
 tree.

 No it can't. EAPI has to be known before the source can start. Bash
 doesn't provide traps for executing code upon changed variables.
 Doing it out-of-band solve this.

 No, it's only needed once per non-trivial change. So we might as well
 just change it for every EAPI.
 Huh?  If the new portage knows how to determine the EAPI definitively
 (and that would be defined), it can deal with the differences.

 And then how do we deal with EAPI 3, where the syntax changes again?
 Portage (or whatever PM) reads the EAPI, determines it is 3, and goes
 from there.  If you change the way you declare EAPI each time, yeah,
 that's a problem, but I'm not sure why that would ne necessary.
 No, that is not the problem.
 
 Example:
 In EAPI 42 we define that the package manager must provide a global
 function extract_depend_from_setup_py() such that it is callable at a
 global level in an ebuild like this
 
 *snip start*
 
 # Copyright 1999-2007 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 # $Header: $
 
 EAPI=42
 
 DESCRIPTION=A library aiming to support agile and test-driven python
 development on various levels.
 SRC_URI=http://codespeak.net/download/${PN}/${P}.tar.gz;
 HOMEPAGE=http://codespeak.net/py/;
 KEYWORDS=~amd64 ~x86
 SLOT=0
 LICENSE=MIT
 IUSE=
 
 extract_depend_from_setup_py
 
 *snip end*
 
 Now, a package manager (or a tool) not knowing EAPI 42 will fail when it
 tries to source the above ebuild to determine the EAPI version (as it is
 being currently done as far as I understood it) because
 extract_depend_from_setup_py is undefined.
 So it won't even be able to read out the EAPI.
 
 With the EAPI in the filename tools now knowing EAPI-42 will either
 ignore the above foo-1.0.ebuild-42 or mask it because they may identify
 the EAPI-version without sourcing the ebuild.
 
 
 Check if exists a line EAPI=*$, if does and the rest of the string
 matches an understood eapi, go on sourcing, otherwise ignore/mask it...

... and package managers which don't do that already still fail.


-- 
gentoo-dev@lists.gentoo.org mailing list



Re: [gentoo-dev] Re: Re: GLEP 55

2008-06-10 Thread Piotr Jaroszyński
 The simplest way is to change the syncpoint in the new package manager and
 leave the previous uri with a compatibility repo for the older ones.

So we add a new repo each time a new EAPI comes out? Sounds like a big mess.

-- 
Best Regards,
Piotr Jaroszyński
���^�X�����(��j)b�b�

Re: [gentoo-dev] Re: Re: GLEP 55

2008-06-10 Thread Luca Barbato

Tiziano Müller wrote:

... and package managers which don't do that already still fail.


To put everything in perspective all this discussion is done in order to 
workaround the issue of an old and outdated package manager that cannot 
be upgraded once it syncs from a too new repository.


The simplest way is to change the syncpoint in the new package manager 
and leave the previous uri with a compatibility repo for the older ones.


lu

--

Luca Barbato
Gentoo Council Member
Gentoo/linux Gentoo/PPC
http://dev.gentoo.org/~lu_zero

--
gentoo-dev@lists.gentoo.org mailing list



Re: [gentoo-dev] Re: Re: GLEP 55

2008-06-10 Thread Ciaran McCreesh
On Tue, 10 Jun 2008 12:22:03 +0200
Luca Barbato [EMAIL PROTECTED] wrote:
 Tiziano Müller wrote:
  ... and package managers which don't do that already still fail.
 
 To put everything in perspective all this discussion is done in order
 to workaround the issue of an old and outdated package manager that
 cannot be upgraded once it syncs from a too new repository.
 
 The simplest way is to change the syncpoint in the new package
 manager and leave the previous uri with a compatibility repo for the
 older ones.

So you're volunteering to convert the entire tree to the new EAPI all
in one go every two months?

-- 
Ciaran McCreesh


signature.asc
Description: PGP signature


Re: [gentoo-dev] Re: Re: GLEP 55

2008-06-10 Thread Luca Barbato

Piotr Jaroszyński wrote:

The simplest way is to change the syncpoint in the new package manager and
leave the previous uri with a compatibility repo for the older ones.


So we add a new repo each time a new EAPI comes out? Sounds like a big mess.


It isn't you just keep 2 repos, one with the minimal eapi and the 
minimal set of ebuilds needed to upgrade, one with the latest and greatest.


lu

--

Luca Barbato
Gentoo Council Member
Gentoo/linux Gentoo/PPC
http://dev.gentoo.org/~lu_zero

--
gentoo-dev@lists.gentoo.org mailing list



Re: [gentoo-dev] Re: Re: GLEP 55

2008-06-10 Thread Ciaran McCreesh
On Tue, 10 Jun 2008 13:13:34 +0200
Luca Barbato [EMAIL PROTECTED] wrote:
 Ciaran McCreesh wrote:
  So you're volunteering to convert the entire tree to the new EAPI
  all in one go every two months?
 
 I don't see the need and I won't see the problem given right now what
 is interesting is the set of improvements that aren't forward
 incompatible.

It's likely that any future EAPIs won't be forward compatible because:

* There's a strong desire to make lots of functions stricter.
* The current *DEPEND syntax will probably be replaced with something
more expressive.
* There'll be more phases.

So yes, it's a full tree rewrite if you want to avoid having multiple
EAPIs in the same tree.

-- 
Ciaran McCreesh


signature.asc
Description: PGP signature


Re: [gentoo-dev] Re: Re: GLEP 55

2008-06-10 Thread Fernando J. Pereda


On 10 Jun 2008, at 13:13, Luca Barbato wrote:
but I dislike empty theories or hardly searched corner cases that  
could be avoided with half of the effort necessary to get there.


Yoy mean like adopting GLEP55, right?

- ferdy

--
gentoo-dev@lists.gentoo.org mailing list



Re: [gentoo-dev] Re: Re: GLEP 55

2008-06-10 Thread Luca Barbato

Ciaran McCreesh wrote:

So you're volunteering to convert the entire tree to the new EAPI all
in one go every two months?


I don't see the need and I won't see the problem given right now what is 
interesting is the set of improvements that aren't forward incompatible.


Being that the case you'd just need 2 trees, managed as overlay and a 
marker for each tree on which eapi to use, but I dislike empty theories 
or hardly searched corner cases that could be avoided with half of the 
effort necessary to get there.



lu

--

Luca Barbato
Gentoo Council Member
Gentoo/linux Gentoo/PPC
http://dev.gentoo.org/~lu_zero

--
gentoo-dev@lists.gentoo.org mailing list



Re: [gentoo-dev] Re: Re: GLEP 55

2008-06-10 Thread Bernd Steinhauser

Luca Barbato schrieb:

Piotr Jaroszyński wrote:
The simplest way is to change the syncpoint in the new package 
manager and

leave the previous uri with a compatibility repo for the older ones.


So we add a new repo each time a new EAPI comes out? Sounds like a big 
mess.


It isn't you just keep 2 repos, one with the minimal eapi and the 
minimal set of ebuilds needed to upgrade, one with the latest and greatest.


lu


Then you could also just provide binaries...

But lets face it, it slows down progress, because you will delay every 
change, because stuff like that you will only do if necessary.

And it is still huge pain, from a users point of view, to upgrade stuff.

And that is, what this is about, making EAPI bumps as less painful as 
possible. The filename is the easiest solution for that.


I really fail to see the point, why it is so important, that the 
extension will still be .ebuild in the future.


There is a lot of software, that keeps using the same filename for 
different versions of stuff and in many cases, that is a huge mess.


I still haven't seen any good reasons against it.
And btw, the KDE overlay users don't seem at all to be confused, because 
the packages are named .kdebuild-1 instead of .ebuild.

Portage (and other tools) keeps happily ignoring them, like it should.
--
gentoo-dev@lists.gentoo.org mailing list



Re: [gentoo-dev] Re: Re: GLEP 55

2008-06-10 Thread Joe Peterson
Bernd Steinhauser wrote:
 And that is, what this is about, making EAPI bumps as less painful as 
 possible. The filename is the easiest solution for that.

In any design, there are easy short-cuts that can be taken.  But
sometimes these short-cuts break paradigms that are fundamental.  If you
wanted, you could throw a bunch of things into the filename and make it
255 characters long to avoid reading the file, but that clearly would be
a pretty bad design.

 I really fail to see the point, why it is so important, that the 
 extension will still be .ebuild in the future.
 
 There is a lot of software, that keeps using the same filename for 
 different versions of stuff and in many cases, that is a huge mess.

Is the huge mess you are thinking of the basic reality that software
of any reasonable complexity needs to deal with file formats evolving?
If so, that is exactly why EAPIs now are being introduced.

But almost all software deals with this transparently - no need to
expose it to the user, and sticking the version in the filename is both
fragile (renaming the file can alter it) and seems like a hack.

 I still haven't seen any good reasons against it.

I realize that there are two camps of people here.  One camp sees
mangling the filename extension as an undesirable way to deal with this,
and the other camp simply sees no problem with this.

I want to point out, however, that the fact that you do not see the
issue does not make the issue invalid.  I am sure there are people who
work at Apple who care nothing about the way an iPhone looks or feels
and only care that it works correctly.  If that person went to Steve
Jobs and said, Why are you spending so much money to make this thing
look cool?, he would say that Apple is known for making cool things,
and no one would buy something that works great but looks like a piece
of junk.  He'd be right.

I realize this analogy is a bit of an exaggeration, but there is no
reason we cannot make EAPIs work correctly and very efficiently (this is
where technical innovation comes in), while also keeping the basic
interface (and I include file name convention here) clean, standard,
uncluttered, uncomplicated, and elegant.

-Joe
-- 
gentoo-dev@lists.gentoo.org mailing list



Re: [gentoo-dev] Re: Re: GLEP 55

2008-06-10 Thread Ciaran McCreesh
On Tue, 10 Jun 2008 09:02:29 -0600
Joe Peterson [EMAIL PROTECTED] wrote:
 But almost all software deals with this transparently - no need to
 expose it to the user, and sticking the version in the filename is
 both fragile (renaming the file can alter it) and seems like a hack.

The typical user does not deal with the ebuild files themselves, and
if they are doing so it's because there's a deficiency in the tools
available to them. Any user who *does* deal with ebuild files is doing
something sufficiently advanced that they need to be aware of EAPIs
anyway.

As for fragile... You might as well say that sticking PN and PV in the
file is fragile and a hack...

-- 
Ciaran McCreesh


signature.asc
Description: PGP signature


Re: [gentoo-dev] Re: Re: GLEP 55

2008-06-10 Thread Bernd Steinhauser

Joe Peterson schrieb:

Bernd Steinhauser wrote:
And that is, what this is about, making EAPI bumps as less painful as 
possible. The filename is the easiest solution for that.


In any design, there are easy short-cuts that can be taken.  But
sometimes these short-cuts break paradigms that are fundamental.  If you
wanted, you could throw a bunch of things into the filename and make it
255 characters long to avoid reading the file, but that clearly would be
a pretty bad design.
Yes, in principle you could do that, but in principle you could do the 
same with the first line in a file or whatever you are suggesting.



I really fail to see the point, why it is so important, that the 
extension will still be .ebuild in the future.


There is a lot of software, that keeps using the same filename for 
different versions of stuff and in many cases, that is a huge mess.


Is the huge mess you are thinking of the basic reality that software
of any reasonable complexity needs to deal with file formats evolving?
If so, that is exactly why EAPIs now are being introduced.

But almost all software deals with this transparently - no need to
expose it to the user, and sticking the version in the filename is both
fragile (renaming the file can alter it) and seems like a hack.
Wow, altering the content of a file can alter it, too. What is the point 
there?

BTW, so you are suggesting, that we shouldn't put the PV in the file name?
We shouldn't put the revision in the file name?

Hm, so in the future, there will be a metadata.xml file, that defines:
- EAPI
- PV
- KEYWORDS
- more stuff
of  the ebuild? Sounds complicated.


I still haven't seen any good reasons against it.


I realize that there are two camps of people here.  One camp sees
mangling the filename extension as an undesirable way to deal with this,
and the other camp simply sees no problem with this.

Seems to be like that.
But I am really impress, how far some people go, to avoid renaming the 
file extension of a file.



--
gentoo-dev@lists.gentoo.org mailing list