[gentoo-dev] GLEP 55 updated

2009-05-17 Thread Piotr Jaroszyński
Hello,

I have just updated GLEP 55 [1], hopefully making it a bit clearer.

Just FYI, my order of preference of solutions is:

1. EAPI-suffixed ebuilds (obviously)
2. EAPI in the filename with one-time extension change
3. Easily fetchable EAPI inside the ebuild and one-time extension change

I can live with any of these if that's what it takes to move forward.

Imho, council should first vote on whether they see the problem
described in the GLEP as real (do we all agree on that at least?) and
then pick one of these solutions.

P.S. I know gentoo has other problems too, but it's the new and
innovative stuff that makes working on Gentoo fun.

[1] - http://dev.gentoo.org/~peper/glep-0055.html
(http://www.gentoo.org/proj/en/glep/glep-0055.html once it synces)

-- 
Best Regards,
Piotr Jaroszyński



Re: [gentoo-dev] GLEP 55 updated

2009-05-17 Thread Peter Alfredsen
On Sun, 17 May 2009 17:56:06 +0200
Piotr Jaroszyński pe...@gentoo.org wrote:

 I know gentoo has other problems too, but it's the new and
 innovative stuff that makes working on Gentoo fun.

YES !

/loki_val



Re: [gentoo-dev] GLEP 55 updated

2009-05-17 Thread Denis Dupeyron
2009/5/17 Piotr Jaroszyński pe...@gentoo.org:
 I have just updated GLEP 55 [1], hopefully making it a bit clearer.

Thanks a lot Piotr.

 Just FYI, my order of preference of solutions is:

 1. EAPI-suffixed ebuilds (obviously)
 2. EAPI in the filename with one-time extension change
 3. Easily fetchable EAPI inside the ebuild and one-time extension change

My preference goes to 3 with a .eb extension and EAPI on the first line.

 P.S. I know gentoo has other problems too, but it's the new and
 innovative stuff that makes working on Gentoo fun.

We need all the problem solving people we can get. And since we're all
volunteers there's no way we can force anybody to do anything. So,
sure, there may be a need for prioritizing problems, but one problem
solved is one less on the pile whatever it was.

Denis.



Re: [gentoo-dev] GLEP 55 updated

2009-05-17 Thread Ulrich Mueller
 On Sun, 17 May 2009, Denis Dupeyron wrote:

 2009/5/17 Piotr Jaroszyñski pe...@gentoo.org:

 1. EAPI-suffixed ebuilds (obviously)
 2. EAPI in the filename with one-time extension change
 3. Easily fetchable EAPI inside the ebuild and one-time extension change

I'm strongly against 1 and 2 (no need to repeat the old arguments
here), but I could live with 3.

 My preference goes to 3 with a .eb extension and EAPI on the first line.

Make this the first non-empty non-comment line.

Looks like .eb is already taken by some exotic commercial
application, but I think we can ignore this.

Ulrich

[1] http://filext.com/file-extension/EB



Re: [gentoo-dev] GLEP 55 updated

2009-05-17 Thread Nirbheek Chauhan
On Sun, May 17, 2009 at 9:36 PM, Peter Alfredsen loki_...@gentoo.org wrote:
 On Sun, 17 May 2009 17:56:06 +0200
 Piotr Jaroszyński pe...@gentoo.org wrote:

 I know gentoo has other problems too, but it's the new and
 innovative stuff that makes working on Gentoo fun.

 YES !


I sincerely hope that was sarcasm.


-- 
~Nirbheek Chauhan



Re: [gentoo-dev] GLEP 55 updated

2009-05-17 Thread Joe Peterson
Denis Dupeyron wrote:
 1. EAPI-suffixed ebuilds (obviously)
 2. EAPI in the filename with one-time extension change
 3. Easily fetchable EAPI inside the ebuild and one-time extension change
 
 My preference goes to 3 with a .eb extension and EAPI on the first line.

I second this.    :)  Although I do not have a strong preference of in-file
position, first line makes it like a she-bang, and that sounds good all around.

-Joe



Re: [gentoo-dev] GLEP 55 updated

2009-05-17 Thread Jorge Manuel B. S. Vicetto
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Ulrich Mueller wrote:
 On Sun, 17 May 2009, Denis Dupeyron wrote:
 
 2009/5/17 Piotr Jaroszyñski pe...@gentoo.org:
 
 1. EAPI-suffixed ebuilds (obviously)
 2. EAPI in the filename with one-time extension change
 3. Easily fetchable EAPI inside the ebuild and one-time extension change
 
 I'm strongly against 1 and 2 (no need to repeat the old arguments
 here), but I could live with 3.

I also prefer 3.

 My preference goes to 3 with a .eb extension and EAPI on the first line.
 
 Make this the first non-empty non-comment line.

As others have commented, we should probably make this the last comment
line in the header. Any suggestions for a specific identification string
or do we simply use '# EAPI=X' or use a she-bang '#!/.. EAPI=X' ?

 Looks like .eb is already taken by some exotic commercial
 application, but I think we can ignore this.

I like .eb but could also live with .gebuild as was suggested before.

 Ulrich
 
 [1] http://filext.com/file-extension/EB
 

- --
Regards,

Jorge Vicetto (jmbsvicetto) - jmbsvicetto at gentoo dot org
Gentoo- forums / Userrel / Devrel / SPARC / KDE
-BEGIN PGP SIGNATURE-
Version: GnuPG v2.0.11 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEARECAAYFAkoQS84ACgkQcAWygvVEyAJ2gwCfUXuvc1f995QTxkElrPlY9I1H
R6oAn0CMpXBe4Y8qnbkCleS3CgNbHJcK
=kwqB
-END PGP SIGNATURE-



Re: [gentoo-dev] GLEP 55 updated

2009-05-17 Thread Markos Chandras
On Sunday 17 May 2009 20:39:26 Jorge Manuel B. S. Vicetto wrote:
 Ulrich Mueller wrote:
  On Sun, 17 May 2009, Denis Dupeyron wrote:
 
  2009/5/17 Piotr Jaroszyñski pe...@gentoo.org:
  1. EAPI-suffixed ebuilds (obviously)
  2. EAPI in the filename with one-time extension change
  3. Easily fetchable EAPI inside the ebuild and one-time extension
  change
 
  I'm strongly against 1 and 2 (no need to repeat the old arguments
  here), but I could live with 3.

 I also prefer 3.

  My preference goes to 3 with a .eb extension and EAPI on the first line.
 
  Make this the first non-empty non-comment line.

 As others have commented, we should probably make this the last comment
 line in the header. Any suggestions for a specific identification string
 or do we simply use '# EAPI=X' or use a she-bang '#!/.. EAPI=X' ?
Yeah, this sounds pretty reasonable to me :)

-- 
Markos Chandras (hwoarang)
Gentoo Linux Developer [KDE/Qt/Sound/Sunrise]
Web: http://hwoarang.silverarrow.org


signature.asc
Description: This is a digitally signed message part.


Re: [gentoo-dev] GLEP 55 updated

2009-05-17 Thread Joe Peterson
Jorge Manuel B. S. Vicetto wrote:
 As others have commented, we should probably make this the last comment
 line in the header. Any suggestions for a specific identification string
 or do we simply use '# EAPI=X' or use a she-bang '#!/.. EAPI=X' ?

Well, if a she-bang, should be the first line.  That also makes parsing a lot
more straightforward and easily defined.

 Looks like .eb is already taken by some exotic commercial
 application, but I think we can ignore this.
 
 I like .eb but could also live with .gebuild as was suggested before.

I'd hate to see the length grow - shrinking is better and cleaner.  :)
.gebuild is a little unwieldy IMHO.  Also, since ebuilds can be used with
distros other than gentoo itself, having the g there may not be a good idea.

-Joe



Re: [gentoo-dev] GLEP 55 updated

2009-05-17 Thread Thomas de Grenier de Latour
Hi,

On 2009/05/17, Piotr Jaroszyński pe...@gentoo.org wrote:
 I have just updated GLEP 55 [1], hopefully making it a bit clearer.

In the GLEP, you raises the following argument against the Easily 
fetchable EAPI inside the ebuild class of solutions:

 Performance decrease comes from the fact that with version format 
 changes in the picture package managers need EAPI to parse the 
 ebuild's version.  That means that merely picking the best version
 of a package requires loading EAPI (from cache or the ebuild) for 
 each available ebuild.

This argument is wrong imho.  Future EAPIs can't be allowed to 
introduce backward-incompatible changes to the versions ordering 
rules, or they would make the PM behavior ill defined.  Or, more 
precisely, if a PM adopts an EAPI with such a change, it has to drop
support for the older incompatible ones. Let's take a very simple 
example:
  - eapi X says _p is equal to _p0
  - eapi Y says _p is greater than any _pN
  -- of foo-1_p1 with EAPI=X and foo-1_p with EAPI=Y, what is
  the best version?

So, basically, we are, and will stay, in a situation such that there 
is a complete order relation beetween all the version strings 
supported by at least one of the EAPIs implemented by the PM, and all
the versionning rules of this EAPIs match this order relation.

As a consequence, the algorithm for picking best version of a package
can be as simple as the following:
 1- among all ebuilds filenames, filter out the ones with unrecognized
version string
 2- among the remaining ones, parse and sort versions (sure, would 
actually be done together with step 1, for performances reasons)
 3- get metadatas for the best one (generate or pick in cache), and 
check its EAPI that it is a supported one, and also that the version
string is allowed in this EAPI
 4- loop on step 3 if EAPI check failed

It is as fast as the algorithm GLEP55 promotes, but in the case you're
using an old package manager and there is really a lot of ebuild 
updates you skip because of unsupported EAPI (here you still fetch 
their metadata, but not with GLEP55).  But i don't see it as a nominal
case. 


Thanks,
--
TGL.



Re: [gentoo-dev] GLEP 55 updated

2009-05-17 Thread Ciaran McCreesh
On Sun, 17 May 2009 20:40:37 +0200
Thomas de Grenier de Latour tom...@free.fr wrote:
 This argument is wrong imho.  Future EAPIs can't be allowed to 
 introduce backward-incompatible changes to the versions ordering 
 rules, or they would make the PM behavior ill defined.  Or, more 
 precisely, if a PM adopts an EAPI with such a change, it has to drop
 support for the older incompatible ones.

Not exactly true. It means that EAPI version rules have to be mappable
onto a single larger superversion format in such a way that they have a
total order.

 Let's take a very simple 
 example:
   - eapi X says _p is equal to _p0
   - eapi Y says _p is greater than any _pN
   -- of foo-1_p1 with EAPI=X and foo-1_p with EAPI=Y, what is
   the best version?

You don't define it quite like that. You define it by mapping EAPI X _p
onto super-EAPI _p0, and EAPI Y _p onto super_EAPI _pINFINITY. That way
the ordering's well defined.

Although that's a fairly convoluted example, and not in line with
what's being proposed for future EAPIs. What we're after is the ability
to allow versions like 1.2.3-rc1.

 As a consequence, the algorithm for picking best version of a package
 can be as simple as the following:
  1- among all ebuilds filenames, filter out the ones with unrecognized
 version string

You don't know whether you recognise the version string until you know
the EAPI, though.

-- 
Ciaran McCreesh


signature.asc
Description: PGP signature


Re: [gentoo-dev] GLEP 55 updated

2009-05-17 Thread Peter Alfredsen
On Sun, 17 May 2009 22:54:38 +0530
Nirbheek Chauhan nirbh...@gentoo.org wrote:

 On Sun, May 17, 2009 at 9:36 PM, Peter Alfredsen
 loki_...@gentoo.org wrote:
  On Sun, 17 May 2009 17:56:06 +0200
  Piotr Jaroszyński pe...@gentoo.org wrote:
 
  I know gentoo has other problems too, but it's the new and
  innovative stuff that makes working on Gentoo fun.
 
  YES !
 
 
 I sincerely hope that was sarcasm.

I don't want us to get to a place where every single new feature has to
be delayed by the objection We've got basic bugs we need to fix
first. That's just unreasonable and a straw man. I get my kicks from
improving things, not from fixing broken things. You may object and say
they're one and the same, and you would not be wrong, but the emphasis
*is* different.

People seem to not see that in the case of GLEP 55 and some call for a
moratorium on new features till we've fixed the bugs that already
exist. Not gonna happen. The human spirit is what's driving Gentoo,
giving it life. Our aspirations to improve the world around us lives
and breathes with every ebuild we churn out. World domination is our
goal and we won't get there by letting the maintainer-needed queue bog
us down.

I think that it's obvious to everybody that the problem GLEP 55 is
solving is real. To me, .ebuild-$eapi/.eapi-$eapi.eb looks like the best
solution, all things considered. From a purely unixy point-of-view, I
see the cleanliness of a shebang EAPI definition, and that would be my
second choice, but we need a solution we can use now. Not a year from
now. Time really does matter.

My dislike for the GLEP 55 process is my main reason for supporting
GLEP 55 as-is. If we can skip just one more 50-mail thread because of
GLEP55, it will be worth the extra work of typing -$eapi every now and
then. Because seriously, if ever there was a mailing list topic whose
only effect has been to act like a succubus, GLEP 55 is it.

( In other words: No sarcasm intended )

/loki_val



Re: [gentoo-dev] GLEP 55 updated

2009-05-17 Thread Robert Buchholz
On Sunday 17 May 2009, Piotr Jaroszyński wrote:
 Hello,

 I have just updated GLEP 55 [1], hopefully making it a bit clearer.

 Just FYI, my order of preference of solutions is:

 1. EAPI-suffixed ebuilds (obviously)
 2. EAPI in the filename with one-time extension change
 3. Easily fetchable EAPI inside the ebuild and one-time extension
 change

Judging from this list, fourth option present in the GLEP is 
unacceptable for you?
4. Easily fetchable EAPI inside the ebuild

From what I understand, the difference between 3 and 4 is that

(4) would break pre-glep55 Portage versions that see an ebuild with no
metadata cache present if the ebuild uses a future EAPI that 
introduces changes as described in the Current behaviour section.
(4) would otherwise keep the current workflow the same except 
restricting the way the EAPI variable is defined in the ebuild.

I would argue that most people who are be exposed to repositories that 
do not carry a metadata cache (overlays) which use new EAPIs also keep 
their portage version current. I'd say go with option (4) now and by 
the time EAPI 4 is collected, written up, agreed upon and implemented, 
enough time went by so we would not have to introduce an artificial 
delay.
And after that, there won't be any delay to avoid breakage anymore.


Robert


signature.asc
Description: This is a digitally signed message part.


Re: [gentoo-dev] GLEP 55 updated

2009-05-17 Thread Arfrever Frehtes Taifersar Arahesis
2009-05-17 20:57:25 Robert Buchholz napisał(a):
 On Sunday 17 May 2009, Piotr Jaroszyński wrote:
  Hello,
 
  I have just updated GLEP 55 [1], hopefully making it a bit clearer.
 
  Just FYI, my order of preference of solutions is:
 
  1. EAPI-suffixed ebuilds (obviously)
  2. EAPI in the filename with one-time extension change
  3. Easily fetchable EAPI inside the ebuild and one-time extension
  change
 
 Judging from this list, fourth option present in the GLEP is 
 unacceptable for you?
 4. Easily fetchable EAPI inside the ebuild

+1

-- 
Arfrever Frehtes Taifersar Arahesis


signature.asc
Description: This is a digitally signed message part.


Re: [gentoo-dev] GLEP 55 updated

2009-05-17 Thread Piotr Jaroszyński
2009/5/17 Robert Buchholz r...@gentoo.org:
 On Sunday 17 May 2009, Piotr Jaroszyński wrote:
 Hello,

 I have just updated GLEP 55 [1], hopefully making it a bit clearer.

 Just FYI, my order of preference of solutions is:

 1. EAPI-suffixed ebuilds (obviously)
 2. EAPI in the filename with one-time extension change
 3. Easily fetchable EAPI inside the ebuild and one-time extension
 change

 Judging from this list, fourth option present in the GLEP is
 unacceptable for you?

I would like to avoid user-visible breakage as much as possible.

-- 
Best Regards,
Piotr Jaroszyński



Re: [gentoo-dev] GLEP 55 updated

2009-05-17 Thread Thomas de Grenier de Latour
On 2009/05/17, Ciaran McCreesh ciaran.mccre...@googlemail.com wrote:

  Let's take a very simple 
  example:
- eapi X says _p is equal to _p0
- eapi Y says _p is greater than any _pN
-- of foo-1_p1 with EAPI=X and foo-1_p with EAPI=Y, what is
the best version?
 
 You don't define it quite like that. You define it by mapping EAPI X
 _p onto super-EAPI _p0, and EAPI Y _p onto super_EAPI _pINFINITY.
 That way the ordering's well defined.

I understand the idea, but I still don't think it's viable to allow
such definitions, because there are too many contexts in which we
manipulate pure version strings, without decorating them with an EAPI,
and without reference to a concrete package from which we could get it.
Take =bar/foo-1_p as an emerge command line argument for
instance, is my foo-1_p1.ebuild a candidate?

 Although that's a fairly convoluted example, and not in line with
 what's being proposed for future EAPIs. What we're after is the
 ability to allow versions like 1.2.3-rc1.

Right, and for this kind of reasonable future needs, it's easy enough 
to ensure enough backward compatibility so that we don't need to add 
the EAPI each time we talk about a version.

  As a consequence, the algorithm for picking best version of a
  package can be as simple as the following:
   1- among all ebuilds filenames, filter out the ones with
  unrecognized version string
 
 You don't know whether you recognise the version string until you know
 the EAPI, though.

Under my previously stated restrictions, you know:
 - which one can be rejected for sure (the ones not recognized by any
   of your implemented EAPI).
 - how to correctly order the remaining ones (even the incorrect ones
   which may remain and would be rejected only at step 4), and thus
   where to start to find the best correct one.
Which is well enough.

--
TGL.



Re: [gentoo-dev] GLEP 55 updated

2009-05-17 Thread Ciaran McCreesh
On Sun, 17 May 2009 21:57:40 +0200
Thomas de Grenier de Latour tom...@free.fr wrote:
 On 2009/05/17, Ciaran McCreesh ciaran.mccre...@googlemail.com wrote:
  You don't define it quite like that. You define it by mapping EAPI X
  _p onto super-EAPI _p0, and EAPI Y _p onto super_EAPI _pINFINITY.
  That way the ordering's well defined.
 
 I understand the idea, but I still don't think it's viable to allow
 such definitions, because there are too many contexts in which we
 manipulate pure version strings, without decorating them with an EAPI,
 and without reference to a concrete package from which we could get
 it. Take =bar/foo-1_p as an emerge command line argument for
 instance, is my foo-1_p1.ebuild a candidate?

Conceptually, you'd define a 'user' EAPI for those things, so you can
define it any way you want (including in such a way that the _p thing
works both ways depending upon the EAPI used for creating the thing
you're comparing it to -- for the user EAPI, you'd define it as being
_pUNSPECIFIED rather than _p0 or _pINFINITY and use the other side of
the comparison to decide the result). But yes, if you do something
silly like your example, things get very complicated.

   As a consequence, the algorithm for picking best version of a
   package can be as simple as the following:
1- among all ebuilds filenames, filter out the ones with
   unrecognized version string
  
  You don't know whether you recognise the version string until you
  know the EAPI, though.
 
 Under my previously stated restrictions, you know:
  - which one can be rejected for sure (the ones not recognized by any
of your implemented EAPI).
  - how to correctly order the remaining ones (even the incorrect ones
which may remain and would be rejected only at step 4), and thus
where to start to find the best correct one.

Your previously stated restrictions are too strong, though. And when it
turns out a future change breaks those restrictions, we'd be back to
yet another extension change.

-- 
Ciaran McCreesh


signature.asc
Description: PGP signature


Re: [gentoo-dev] GLEP 55 updated

2009-05-17 Thread Ben de Groot
Let me first say that I think this revision is much improved, and makes
it clearer what we are talking about.

As to the stated problem(s):

1. Incompatible change of inherit (e.g. make it look in the package dir
too)
A case would need to be made, in my opinion, as to why we would wish to
allow this in the first place. The current inherit behavior with
eclasses in a central place works well enough. So I think we can
disregard this.

2. Add new global scope functions in any sane way
This is a valid use case, as seen by the eapi-2 update. But the way this
is currently handled by portage (advising to upgrade the package
manager) works. So I don't see a need to change the file extension for
this reason.

3. Extend versioning rules in an EAPI - for example, addition of the
scm suffix - GLEP54 [1] or allowing more sensible version formats like
1-rc1, 1-alpha etc. to match upstream more closely.
Apart from GLEP54, I believe our versioning scheme works reasonably
well. I don't see any need to match upstream more closely. I'd rather
like to keep the more uniform way of handling suffixes like rc and
alpha, that we have now.
GLEP54 is a valid use case, and I can see the value in that. Even so,
using - and variations has worked for us so far, so I'm not
convinced GLEP5455 as a package is a must have.

4. Use newer bash features
This, in my opinion, would potentially be very useful to have. Altho it
is certainly possible to continue with bash 3.0 as we have done so far,
certain newer features are nice to be able to use.

All in all I am still not sold on the perceived problems, and therefor a
solution is in my eyes not strictly necessary. Having said that, I do
understand people wanting support for newer bash features and GLEP54, so
let's look at the possible solutions that have been proposed.


Jorge Manuel B. S. Vicetto wrote:
 Ulrich Mueller wrote:
 On Sun, 17 May 2009, Denis Dupeyron wrote:
 2009/5/17 Piotr Jaroszyñski pe...@gentoo.org:
 1. EAPI-suffixed ebuilds (obviously)
 2. EAPI in the filename with one-time extension change
 3. Easily fetchable EAPI inside the ebuild and one-time extension change
 I'm strongly against 1 and 2 (no need to repeat the old arguments
 here), but I could live with 3.

Me too.

 My preference goes to 3 with a .eb extension and EAPI on the first line.
 Make this the first non-empty non-comment line.
 
 As others have commented, we should probably make this the last comment
 line in the header. Any suggestions for a specific identification string
 or do we simply use '# EAPI=X' or use a she-bang '#!/.. EAPI=X' ?

In this case, I'd prefer .eb extension as well. EAPI to be somewhere
near the top, I don't care that much about the exact implementation.

 Looks like .eb is already taken by some exotic commercial
 application, but I think we can ignore this.
 
 I like .eb but could also live with .gebuild as was suggested before.

I'd rather go for .geb as second choice. I'd rather go shorter than longer.

Robert Buchholz wrote:
 Judging from this list, fourth option present in the GLEP is 
 unacceptable for you?
 4. Easily fetchable EAPI inside the ebuild
 
 From what I understand, the difference between 3 and 4 is that
 
 (4) would break pre-glep55 Portage versions that see an ebuild with no
 metadata cache present if the ebuild uses a future EAPI that 
 introduces changes as described in the Current behaviour section.
 (4) would otherwise keep the current workflow the same except 
 restricting the way the EAPI variable is defined in the ebuild.
 
 I would argue that most people who are be exposed to repositories that 
 do not carry a metadata cache (overlays) which use new EAPIs also keep 
 their portage version current. I'd say go with option (4) now and by 
 the time EAPI 4 is collected, written up, agreed upon and implemented, 
 enough time went by so we would not have to introduce an artificial 
 delay.
 And after that, there won't be any delay to avoid breakage anymore.

This would still have my preference.

Cheers,
-- 
Ben de Groot
Gentoo Linux developer (qt, media, lxde, desktop-misc)
Gentoo Linux Release Engineering PR liaison
__



Re: [gentoo-dev] GLEP 55 updated

2009-05-17 Thread Ciaran McCreesh
On Sun, 17 May 2009 23:17:57 +0200
Ben de Groot yng...@gentoo.org wrote:
 1. Incompatible change of inherit (e.g. make it look in the package
 dir too)
 A case would need to be made, in my opinion, as to why we would wish
 to allow this in the first place. The current inherit behavior with
 eclasses in a central place works well enough. So I think we can
 disregard this.

There are already horrible hacks in the tree to get per-package
'eclasses'. That's a clear sign there's something lacking.

 2. Add new global scope functions in any sane way
 This is a valid use case, as seen by the eapi-2 update. But the way
 this is currently handled by portage (advising to upgrade the package
 manager) works. So I don't see a need to change the file extension for
 this reason.

It means we can't start using those new global scope functions until
we're sure that everyone's going to be upgraded, because users get
extremely upset if they start seeing that kind of message.

 3. Extend versioning rules in an EAPI - for example, addition of the
 scm suffix - GLEP54 [1] or allowing more sensible version formats like
 1-rc1, 1-alpha etc. to match upstream more closely.
 Apart from GLEP54, I believe our versioning scheme works reasonably
 well. I don't see any need to match upstream more closely. I'd rather
 like to keep the more uniform way of handling suffixes like rc and
 alpha, that we have now.

Please explain why 1.2_rc3 is legal but 1.2-rc3 is not.

-- 
Ciaran McCreesh


signature.asc
Description: PGP signature


Re: [gentoo-dev] GLEP 55 updated

2009-05-17 Thread Joe Peterson
Ciaran McCreesh wrote:
 3. Extend versioning rules in an EAPI - for example, addition of the
 scm suffix - GLEP54 [1] or allowing more sensible version formats like
 1-rc1, 1-alpha etc. to match upstream more closely.
 Apart from GLEP54, I believe our versioning scheme works reasonably
 well. I don't see any need to match upstream more closely. I'd rather
 like to keep the more uniform way of handling suffixes like rc and
 alpha, that we have now.
 
 Please explain why 1.2_rc3 is legal but 1.2-rc3 is not.

I actually like the current format in that it does *not* allow - in
the version.  For example, pkg-2.3.1_rc5 makes it clear that the string
from 2 to rc5 is the version.  If were were to allow pkg-2.3.1-rc5,
this could get visually confusing (looks a bit like pkg-2.3.1-r5).  In
this case, *less* flexibility and more strict rules serve a good
purpose, I think.

-Joe



Re: [gentoo-dev] GLEP 55 updated

2009-05-17 Thread Ben de Groot
Ciaran McCreesh wrote:
 On Sun, 17 May 2009 23:17:57 +0200
 Ben de Groot yng...@gentoo.org wrote:
 1. Incompatible change of inherit (e.g. make it look in the package
 dir too)
 A case would need to be made, in my opinion, as to why we would wish
 to allow this in the first place. The current inherit behavior with
 eclasses in a central place works well enough. So I think we can
 disregard this.
 
 There are already horrible hacks in the tree to get per-package
 'eclasses'. That's a clear sign there's something lacking.

I haven't come across any horrible hacks, that I'm aware of, but of
course my interest is only in certain parts of the tree.

 2. Add new global scope functions in any sane way
 This is a valid use case, as seen by the eapi-2 update. But the way
 this is currently handled by portage (advising to upgrade the package
 manager) works. So I don't see a need to change the file extension for
 this reason.
 
 It means we can't start using those new global scope functions until
 we're sure that everyone's going to be upgraded, because users get
 extremely upset if they start seeing that kind of message.

Isn't that a given anyway? I think the way eapi-2 was introduced into
the tree wasn't particularly problematic.

 3. Extend versioning rules in an EAPI - for example, addition of the
 scm suffix - GLEP54 [1] or allowing more sensible version formats like
 1-rc1, 1-alpha etc. to match upstream more closely.
 Apart from GLEP54, I believe our versioning scheme works reasonably
 well. I don't see any need to match upstream more closely. I'd rather
 like to keep the more uniform way of handling suffixes like rc and
 alpha, that we have now.
 
 Please explain why 1.2_rc3 is legal but 1.2-rc3 is not.

Because we say so. We have chosen to do it a certain way. This works.
It's uniform, it's simple, and therefor has a certain beauty to it. I
see no pressing reason why we should start allowing alternative forms.

-- 
Ben de Groot
Gentoo Linux developer (qt, media, lxde, desktop-misc)
Gentoo Linux Release Engineering PR liaison
__



Re: [gentoo-dev] GLEP 55 updated

2009-05-17 Thread Ciaran McCreesh
On Mon, 18 May 2009 00:08:05 +0200
Ben de Groot yng...@gentoo.org wrote:
  There are already horrible hacks in the tree to get per-package
  'eclasses'. That's a clear sign there's something lacking.
 
 I haven't come across any horrible hacks, that I'm aware of, but of
 course my interest is only in certain parts of the tree.

Read the glibc ebuilds sometime. Notice the 'eblits' nonsense.

  It means we can't start using those new global scope functions until
  we're sure that everyone's going to be upgraded, because users get
  extremely upset if they start seeing that kind of message.
 
 Isn't that a given anyway? I think the way eapi-2 was introduced into
 the tree wasn't particularly problematic.

There's a difference between the clean unsupported EAPIs are treated
as masked behaviour you get with EAPIs done properly, and the horrible
spammy errors you get if they aren't. New global scope functions cause
the latter; new EAPIs done cleanly cause only the former.

  Please explain why 1.2_rc3 is legal but 1.2-rc3 is not.
 
 Because we say so. We have chosen to do it a certain way. This works.
 It's uniform, it's simple, and therefor has a certain beauty to it. I
 see no pressing reason why we should start allowing alternative forms.

It's an utterly arbitrary restriction. Upstreams don't standardise
either way on - vs _, so there's no reason Gentoo should.

-- 
Ciaran McCreesh


signature.asc
Description: PGP signature


Re: [gentoo-dev] GLEP 55 updated

2009-05-17 Thread David Leverton
2009/5/17 Ben de Groot yng...@gentoo.org:
 Ciaran McCreesh wrote:
 On Sun, 17 May 2009 23:17:57 +0200
 Ben de Groot yng...@gentoo.org wrote:
 2. Add new global scope functions in any sane way
 This is a valid use case, as seen by the eapi-2 update. But the way
 this is currently handled by portage (advising to upgrade the package
 manager) works. So I don't see a need to change the file extension for
 this reason.

 It means we can't start using those new global scope functions until
 we're sure that everyone's going to be upgraded, because users get
 extremely upset if they start seeing that kind of message.

 Isn't that a given anyway? I think the way eapi-2 was introduced into
 the tree wasn't particularly problematic.

I think there might be a misunderstanding here. Ciaran means functions
provided by the package manager that ebuilds can call during metadata
generation, for example built-in versionator-like functionality, not
new phase functions like src_prepare and src_configure.



Re: [gentoo-dev] GLEP 55 updated

2009-05-17 Thread Ulrich Mueller
 On Sun, 17 May 2009, Ciaran McCreesh wrote:

 Upstreams don't standardise either way on - vs _, so there's no
 reason Gentoo should.

Upstreams use all sorts of strange versioning schemes. Here is a small
collection:

   1_14   - 1.14(app-emacs/limit)
   1.0pre4- 1.0_pre4(app-emacs/cedet)
   1.9.1-preview1 - 1.9.1_pre1  (app-emacs/ruby-mode)
   2.0b6  - 2.0_beta6   (app-emacs/chess)
   12B5   - 12.2.5  (dev-lang/erlang)
   0.28   - 28.0(dev-lang/c-intercal, minor.major)
   -0.74  - ??  (SmallEiffel, negative version number)
   1.-94.-2   - ??  (CLC-Intercal, negative components)

We have to draw the borderline somewhere, and I think our current
rules are a reasonable compromise.

Ulrich



Re: [gentoo-dev] GLEP 55 updated

2009-05-17 Thread Ciaran McCreesh
On Mon, 18 May 2009 00:54:04 +0200
Ulrich Mueller u...@gentoo.org wrote:
  Upstreams don't standardise either way on - vs _, so there's no
  reason Gentoo should.
 
 Upstreams use all sorts of strange versioning schemes. Here is a small
 collection:

And we can handle a lot more of them sensibly than we currently do. We
can't cover everything, but of these:

1_14   - 1.14(app-emacs/limit)
1.0pre4- 1.0_pre4(app-emacs/cedet)
12B5   - 12.2.5  (dev-lang/erlang)

These we should handle.

1.9.1-preview1 - 1.9.1_pre1  (app-emacs/ruby-mode)

This we could handle easily if there are more things using -preview.

2.0b6  - 2.0_beta6   (app-emacs/chess)

This we can't sensibly, since most people using b use it as a 'greater
than' thing.

0.28   - 28.0(dev-lang/c-intercal, minor.major)
-0.74  - ??  (SmallEiffel, negative version
 number) 1.-94.-2   - ??  (CLC-Intercal, negative
 components)

These are upstreams being deliberately silly, so we can ignore them.

 We have to draw the borderline somewhere, and I think our current
 rules are a reasonable compromise.

Forbidding -rc is not a reasonable compromise...

-- 
Ciaran McCreesh


signature.asc
Description: PGP signature


Re: [gentoo-dev] GLEP 55 updated

2009-05-17 Thread Ulrich Mueller
 On Sun, 17 May 2009, Ciaran McCreesh wrote:

 1_14   - 1.14(app-emacs/limit)
 12B5   - 12.2.5  (dev-lang/erlang)

 These we should handle.

How? Both limit-1_14 and erlang-12B5 are valid package names,
so how do you determine where PN ends and where PV starts?

Ulrich



Re: [gentoo-dev] GLEP 55 updated

2009-05-17 Thread Ciaran McCreesh
On Mon, 18 May 2009 01:11:45 +0200
Ulrich Mueller u...@gentoo.org wrote:
  On Sun, 17 May 2009, Ciaran McCreesh wrote:
  1_14   - 1.14(app-emacs/limit)
  12B5   - 12.2.5  (dev-lang/erlang)
 
  These we should handle.
 
 How? Both limit-1_14 and erlang-12B5 are valid package names,
 so how do you determine where PN ends and where PV starts?

By the time the things we need to get this done end up being accepted,
we'll probably be using ranged deps, so it won't be an issue.

-- 
Ciaran McCreesh


signature.asc
Description: PGP signature


Re: [gentoo-dev] GLEP 55 updated

2009-05-17 Thread Ulrich Mueller
 On Mon, 18 May 2009, Ciaran McCreesh wrote:

 How? Both limit-1_14 and erlang-12B5 are valid package names,
 so how do you determine where PN ends and where PV starts?

 By the time the things we need to get this done end up being
 accepted, we'll probably be using ranged deps, so it won't be an
 issue.

In fact, with GLEP 54 we have the problem already now.
P=foo-1a-scm could mean both of the following:

   PN=foo PV=1a-scm
   PN=foo-1a  PV=scm

Ulrich



Re: [gentoo-dev] GLEP 55 updated

2009-05-17 Thread Ciaran McCreesh
On Mon, 18 May 2009 01:30:26 +0200
Ulrich Mueller u...@gentoo.org wrote:
  On Mon, 18 May 2009, Ciaran McCreesh wrote:
  How? Both limit-1_14 and erlang-12B5 are valid package names,
  so how do you determine where PN ends and where PV starts?
 
  By the time the things we need to get this done end up being
  accepted, we'll probably be using ranged deps, so it won't be an
  issue.
 
 In fact, with GLEP 54 we have the problem already now.
 P=foo-1a-scm could mean both of the following:
 
PN=foo PV=1a-scm
PN=foo-1a  PV=scm

We've had that problem ever since -100dpi things had to be made legal,
and the horrible mess explaining the splitting rules in PMS came about
from the last time we had this discussion. This isn't anything new --
it's just something we have to define very carefully.

-- 
Ciaran McCreesh


signature.asc
Description: PGP signature