[gentoo-dev] Turning eclasses upside down with new EAPIs (the python eclasses)

2011-07-27 Thread Michał Górny
Hello,

As many of us already raged, the Python eclasses are delaying half
a year with support of EAPI=4. The reason for that is not actually
the lack of time or complexity of needed changes but willingness to use
the new EAPI as an excuse to turn the eclass API upside down.

The question I'm raising here: should eclasses be actually allowed to
do *heavy* changes in their APIs in such cases? Or should the eclass
maintainers create a new eclass instead (python-r1.eclass or so)?

The main advantage I see in that is that devs are somehow forced
to migrate their ebuilds as soon as they bump EAPI in them. Taking
a look at a number of ebuilds still using git.eclass (instead of git-2)
this is a serious advantage.

On the other hand, I find this idea very unclear. Why should two
ebuilds use completely different eclass variables just because they're
using two different EAPIs? More importantly, why is a dev forced to do
the migration in a random point when he/she wants to bump the ebuild
EAPI? I'd like to remind you that python eclass is still hard to read
for many of us.

And why do we have to wait so long to use a new EAPI? We already had to
fix a lot of ebuilds when old EAPIs were banned in Python eclasses. We
wanted to bump the ebuilds to EAPI 4 then but the eclasses didn't
support it. And now it still doesn't come with EAPI 4 support.

And keeping two different EAPIs in a single eclass file means probably
that older EAPIs are going to be banned at a random point once again.
Devs will have to pro-actively migrate their ebuilds, overlays will
break and so on. The usual procedure related to eclass removal wouldn't
apply.

So, don't you think it would be better to simply add EAPI=4 support to
python eclass with no changes and start developing the new API in
python-r1? Devs could migrate then at any point they want (and have
time to!), and when Python team wants to get rid of the old eclass,
the usual removal procedure will apply.

-- 
Best regards,
Michał Górny


signature.asc
Description: PGP signature


Re: [gentoo-dev] Turning eclasses upside down with new EAPIs (the python eclasses)

2011-07-27 Thread Pacho Ramos
El mié, 27-07-2011 a las 09:39 +0200, Michał Górny escribió:
 Hello,
 
 As many of us already raged, the Python eclasses are delaying half
 a year with support of EAPI=4. The reason for that is not actually
 the lack of time or complexity of needed changes but willingness to use
 the new EAPI as an excuse to turn the eclass API upside down.
 
 The question I'm raising here: should eclasses be actually allowed to
 do *heavy* changes in their APIs in such cases? Or should the eclass
 maintainers create a new eclass instead (python-r1.eclass or so)?
 
 The main advantage I see in that is that devs are somehow forced
 to migrate their ebuilds as soon as they bump EAPI in them. Taking
 a look at a number of ebuilds still using git.eclass (instead of git-2)
 this is a serious advantage.
 
 On the other hand, I find this idea very unclear. Why should two
 ebuilds use completely different eclass variables just because they're
 using two different EAPIs? More importantly, why is a dev forced to do
 the migration in a random point when he/she wants to bump the ebuild
 EAPI? I'd like to remind you that python eclass is still hard to read
 for many of us.
 
 And why do we have to wait so long to use a new EAPI? We already had to
 fix a lot of ebuilds when old EAPIs were banned in Python eclasses. We
 wanted to bump the ebuilds to EAPI 4 then but the eclasses didn't
 support it. And now it still doesn't come with EAPI 4 support.
 
 And keeping two different EAPIs in a single eclass file means probably
 that older EAPIs are going to be banned at a random point once again.
 Devs will have to pro-actively migrate their ebuilds, overlays will
 break and so on. The usual procedure related to eclass removal wouldn't
 apply.
 
 So, don't you think it would be better to simply add EAPI=4 support to
 python eclass with no changes and start developing the new API in
 python-r1? Devs could migrate then at any point they want (and have
 time to!), and when Python team wants to get rid of the old eclass,
 the usual removal procedure will apply.
 

About the concrete case of python eclass, per Arfrever's comment in bug
report related with its eapi4 support, that support is already available
in overlay, but not yet merged to the tree (probably because of the
possible upcoming retirement of Arfrever :-/). What is preventing python
team to merge eclass from overlay?


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


Re: [gentoo-dev] Turning eclasses upside down with new EAPIs (the python eclasses)

2011-07-27 Thread Rafael Goncalves Martins
On Wed, Jul 27, 2011 at 6:02 AM, Pacho Ramos pa...@gentoo.org wrote:
 El mié, 27-07-2011 a las 09:39 +0200, Michał Górny escribió:
 Hello,

 As many of us already raged, the Python eclasses are delaying half
 a year with support of EAPI=4. The reason for that is not actually
 the lack of time or complexity of needed changes but willingness to use
 the new EAPI as an excuse to turn the eclass API upside down.

 The question I'm raising here: should eclasses be actually allowed to
 do *heavy* changes in their APIs in such cases? Or should the eclass
 maintainers create a new eclass instead (python-r1.eclass or so)?

 The main advantage I see in that is that devs are somehow forced
 to migrate their ebuilds as soon as they bump EAPI in them. Taking
 a look at a number of ebuilds still using git.eclass (instead of git-2)
 this is a serious advantage.

 On the other hand, I find this idea very unclear. Why should two
 ebuilds use completely different eclass variables just because they're
 using two different EAPIs? More importantly, why is a dev forced to do
 the migration in a random point when he/she wants to bump the ebuild
 EAPI? I'd like to remind you that python eclass is still hard to read
 for many of us.

 And why do we have to wait so long to use a new EAPI? We already had to
 fix a lot of ebuilds when old EAPIs were banned in Python eclasses. We
 wanted to bump the ebuilds to EAPI 4 then but the eclasses didn't
 support it. And now it still doesn't come with EAPI 4 support.

 And keeping two different EAPIs in a single eclass file means probably
 that older EAPIs are going to be banned at a random point once again.
 Devs will have to pro-actively migrate their ebuilds, overlays will
 break and so on. The usual procedure related to eclass removal wouldn't
 apply.

 So, don't you think it would be better to simply add EAPI=4 support to
 python eclass with no changes and start developing the new API in
 python-r1? Devs could migrate then at any point they want (and have
 time to!), and when Python team wants to get rid of the old eclass,
 the usual removal procedure will apply.


 About the concrete case of python eclass, per Arfrever's comment in bug
 report related with its eapi4 support, that support is already available
 in overlay, but not yet merged to the tree (probably because of the
 possible upcoming retirement of Arfrever :-/). What is preventing python
 team to merge eclass from overlay?


AFAIK, the EAPI4 support in the overlay is EAPI 4-python, that almost
certainly will never come to gx86, and some guys are trying to port
the functionality to raw EAPI4, IIRC.

Regards,

-- 
Rafael Goncalves Martins
Gentoo Linux developer
http://rafaelmartins.eng.br/



Re: [gentoo-dev] Turning eclasses upside down with new EAPIs (the python eclasses)

2011-07-27 Thread Donnie Berkholz
On 09:39 Wed 27 Jul , Michał Górny wrote:
 As many of us already raged, the Python eclasses are delaying half a 
 year with support of EAPI=4. The reason for that is not actually the 
 lack of time or complexity of needed changes but willingness to use 
 the new EAPI as an excuse to turn the eclass API upside down.
 
 The question I'm raising here: should eclasses be actually allowed to 
 do *heavy* changes in their APIs in such cases? Or should the eclass 
 maintainers create a new eclass instead (python-r1.eclass or so)?

Eclasses still shouldn't break backwards compatibility — that hasn't 
changed in the past 5 years, despite what a very small minority of devs 
appears to think. This has been a huge PITA for python.eclass in 
particular, which has broken tons of my ebuilds for no particular 
reason. (And no, a 30-day warning is not an excuse for breaking 
anything.)

If you need to edit an eclass for EAPI/API changes anyway, updating the 
inherit line to python-2 instead of python isn't a big deal.

In the general sense, I think changing the API in arbitrary ways based 
on the EAPI in use is just plain confusing, and it should go into a new 
version-bumped eclass instead.

-- 
Thanks,
Donnie

Donnie Berkholz
Council Member / Sr. Developer
Gentoo Linux
Blog: http://dberkholz.com


pgpgLBfaNeoHa.pgp
Description: PGP signature


Re: [gentoo-dev] Turning eclasses upside down with new EAPIs (the python eclasses)

2011-07-27 Thread Chí-Thanh Christopher Nguyễn

Donnie Berkholz schrieb:
Eclasses still shouldn't break backwards compatibility — that hasn't 
changed in the past 5 years, despite what a very small minority of 
devs appears to think. This has been a huge PITA for python.eclass in 
particular, which has broken tons of my ebuilds for no particular 
reason. (And no, a 30-day warning is not an excuse for breaking 
anything.) If you need to edit an eclass for EAPI/API changes anyway, 
updating the inherit line to python-2 instead of python isn't a 
big deal. In the general sense, I think changing the API in arbitrary 
ways based on the EAPI in use is just plain confusing, and it should 
go into a new version-bumped eclass instead. 


I think making the eclass behave differently on new EAPIs is not a bad 
way to deprecate old functions. It will not break any existing ebuilds. 
Only if you touch the ebuild and change the EAPI things may break, but 
then the ebuild has your attention anyway.


And there is no real disadvantage over a python.eclass that dies on EAPI 
4 and a python-2.eclass that dies on EAPI =3



Best regards,
Chí-Thanh Christopher Nguyễn




Re: [gentoo-dev] Turning eclasses upside down with new EAPIs (the python eclasses)

2011-07-27 Thread Petteri Räty
On 27.07.2011 17:30, Chí-Thanh Christopher Nguyễn wrote:
 Donnie Berkholz schrieb:
 Eclasses still shouldn't break backwards compatibility — that hasn't
 changed in the past 5 years, despite what a very small minority of
 devs appears to think. This has been a huge PITA for python.eclass in
 particular, which has broken tons of my ebuilds for no particular
 reason. (And no, a 30-day warning is not an excuse for breaking
 anything.) If you need to edit an eclass for EAPI/API changes anyway,
 updating the inherit line to python-2 instead of python isn't a
 big deal. In the general sense, I think changing the API in arbitrary
 ways based on the EAPI in use is just plain confusing, and it should
 go into a new version-bumped eclass instead. 
 
 I think making the eclass behave differently on new EAPIs is not a bad
 way to deprecate old functions. It will not break any existing ebuilds.
 Only if you touch the ebuild and change the EAPI things may break, but
 then the ebuild has your attention anyway.
 

I agree there's no problem with small deprecations with new EAPIs as
long as they are handled properly (it doesn't break backwards
compatibility) so that ebuilds authors notice they must change things.
If the eclass turns into a wholly different thing then it should rather
be a new eclass.

Regards,
Petteri



signature.asc
Description: OpenPGP digital signature


Re: [gentoo-dev] Turning eclasses upside down with new EAPIs (the python eclasses)

2011-07-27 Thread Michał Górny
On Wed, 27 Jul 2011 11:02:31 +0200
Pacho Ramos pa...@gentoo.org wrote:

 About the concrete case of python eclass, per Arfrever's comment in
 bug report related with its eapi4 support, that support is already
 available in overlay, but not yet merged to the tree (probably
 because of the possible upcoming retirement of Arfrever :-/). What is
 preventing python team to merge eclass from overlay?

AFAIK they are slowly merging patches from the overlay to gx86,
reviewing them.

-- 
Best regards,
Michał Górny


signature.asc
Description: PGP signature


Re: [gentoo-dev] Turning eclasses upside down with new EAPIs (the python eclasses)

2011-07-27 Thread Michał Górny
On Wed, 27 Jul 2011 16:30:08 +0200
Chí-Thanh Christopher Nguyễn chith...@gentoo.org wrote:

 Donnie Berkholz schrieb:
  Eclasses still shouldn't break backwards compatibility — that
  hasn't changed in the past 5 years, despite what a very small
  minority of devs appears to think. This has been a huge PITA for
  python.eclass in particular, which has broken tons of my ebuilds
  for no particular reason. (And no, a 30-day warning is not an
  excuse for breaking anything.) If you need to edit an eclass for
  EAPI/API changes anyway, updating the inherit line to python-2
  instead of python isn't a big deal. In the general sense, I think
  changing the API in arbitrary ways based on the EAPI in use is just
  plain confusing, and it should go into a new version-bumped eclass
  instead. 
 
 I think making the eclass behave differently on new EAPIs is not a
 bad way to deprecate old functions. It will not break any existing
 ebuilds. Only if you touch the ebuild and change the EAPI things may
 break, but then the ebuild has your attention anyway.

That's one thing. Renaming variables and changing their formats
is another one.

 And there is no real disadvantage over a python.eclass that dies on
 EAPI 4 and a python-2.eclass that dies on EAPI =3

What I'd prefer instead, is a python.eclass that just behaves in EAPI 4
like usual, and a new python-r1.eclass which has a clean API
(and possibly supports EAPIs 2+ or so).

-- 
Best regards,
Michał Górny


signature.asc
Description: PGP signature


Re: [gentoo-dev] Turning eclasses upside down with new EAPIs (the python eclasses)

2011-07-27 Thread Thomas Sachau
Michał Górny schrieb:
 On Wed, 27 Jul 2011 16:30:08 +0200
 Chí-Thanh Christopher Nguyễn chith...@gentoo.org wrote:
 
 Donnie Berkholz schrieb:
 Eclasses still shouldn't break backwards compatibility — that
 hasn't changed in the past 5 years, despite what a very small
 minority of devs appears to think. This has been a huge PITA for
 python.eclass in particular, which has broken tons of my ebuilds
 for no particular reason. (And no, a 30-day warning is not an
 excuse for breaking anything.) If you need to edit an eclass for
 EAPI/API changes anyway, updating the inherit line to python-2
 instead of python isn't a big deal. In the general sense, I think
 changing the API in arbitrary ways based on the EAPI in use is just
 plain confusing, and it should go into a new version-bumped eclass
 instead. 

 I think making the eclass behave differently on new EAPIs is not a
 bad way to deprecate old functions. It will not break any existing
 ebuilds. Only if you touch the ebuild and change the EAPI things may
 break, but then the ebuild has your attention anyway.
 
 That's one thing. Renaming variables and changing their formats
 is another one.
 
 And there is no real disadvantage over a python.eclass that dies on
 EAPI 4 and a python-2.eclass that dies on EAPI =3
 
 What I'd prefer instead, is a python.eclass that just behaves in EAPI 4
 like usual, and a new python-r1.eclass which has a clean API
 (and possibly supports EAPIs 2+ or so).
 

I fully support the idea of just adding EAPI-4 support to the python eclass 
without any API changes
and doing those changes in e.g. python-r1 eclass.

It was already very frustrating, when the python eclass created additional 
changes per EAPI, same
for those forced EAPI moves. You should never need to learn the new behaviour 
of an eclass, just
because you want to change the EAPI in your ebuild. Such changes should be done 
in a new eclass,
which both means a clean start and no compromise due to existing behaviour in 
the python eclass and
less trouble for users of such eclass, since they only have to know the normal 
EAPI changes.
Just because Arfrever did such things to the python eclass, it still is no good 
idea and should not
be continued.



signature.asc
Description: OpenPGP digital signature


Re: [gentoo-dev] Turning eclasses upside down with new EAPIs (the python eclasses)

2011-07-27 Thread Arfrever Frehtes Taifersar Arahesis
2011-07-27 15:07:54 Rafael Goncalves Martins napisał(a):
 On Wed, Jul 27, 2011 at 6:02 AM, Pacho Ramos pa...@gentoo.org wrote:
  El mié, 27-07-2011 a las 09:39 +0200, Michał Górny escribió:
  Hello,
 
  As many of us already raged, the Python eclasses are delaying half
  a year with support of EAPI=4. The reason for that is not actually
  the lack of time or complexity of needed changes but willingness to use
  the new EAPI as an excuse to turn the eclass API upside down.
 
  The question I'm raising here: should eclasses be actually allowed to
  do *heavy* changes in their APIs in such cases? Or should the eclass
  maintainers create a new eclass instead (python-r1.eclass or so)?
 
  The main advantage I see in that is that devs are somehow forced
  to migrate their ebuilds as soon as they bump EAPI in them. Taking
  a look at a number of ebuilds still using git.eclass (instead of git-2)
  this is a serious advantage.
 
  On the other hand, I find this idea very unclear. Why should two
  ebuilds use completely different eclass variables just because they're
  using two different EAPIs? More importantly, why is a dev forced to do
  the migration in a random point when he/she wants to bump the ebuild
  EAPI? I'd like to remind you that python eclass is still hard to read
  for many of us.
 
  And why do we have to wait so long to use a new EAPI? We already had to
  fix a lot of ebuilds when old EAPIs were banned in Python eclasses. We
  wanted to bump the ebuilds to EAPI 4 then but the eclasses didn't
  support it. And now it still doesn't come with EAPI 4 support.
 
  And keeping two different EAPIs in a single eclass file means probably
  that older EAPIs are going to be banned at a random point once again.
  Devs will have to pro-actively migrate their ebuilds, overlays will
  break and so on. The usual procedure related to eclass removal wouldn't
  apply.
 
  So, don't you think it would be better to simply add EAPI=4 support to
  python eclass with no changes and start developing the new API in
  python-r1? Devs could migrate then at any point they want (and have
  time to!), and when Python team wants to get rid of the old eclass,
  the usual removal procedure will apply.
 
 
  About the concrete case of python eclass, per Arfrever's comment in bug
  report related with its eapi4 support, that support is already available
  in overlay, but not yet merged to the tree (probably because of the
  possible upcoming retirement of Arfrever :-/). What is preventing python
  team to merge eclass from overlay?
 
 
 AFAIK, the EAPI4 support in the overlay is EAPI 4-python, that almost
 certainly will never come to gx86, and some guys are trying to port
 the functionality to raw EAPI4, IIRC.

python.eclass from python overlay supports EAPI=4.

-- 
Arfrever Frehtes Taifersar Arahesis


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


Re: [gentoo-dev] Turning eclasses upside down with new EAPIs (the python eclasses)

2011-07-27 Thread Arfrever Frehtes Taifersar Arahesis
There are small changes between behavior in EAPI=3 and EAPI=4 in 
python.eclass in python
overlay. The main change is improved syntax of PYTHON_DEPEND, which provides 
support for more
situations and replaces PYTHON_USE_WITH* variables. 95 % of whole code in 
python.eclass is
EAPI-independent, so there is no need for a new eclass.

-- 
Arfrever Frehtes Taifersar Arahesis


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


Re: [gentoo-dev] Ohloh statistics updated

2011-07-27 Thread Rafael Goncalves Martins
On Mon, Jul 25, 2011 at 2:30 PM, Jeroen Roovers j...@gentoo.org wrote:
 [1] https://www.ohloh.net/p/gentoo
 [2]
 http://git-exp.overlays.gentoo.org/gitweb/?p=exp/gentoo-x86.git;a=summary

 It appears they count rather more commits than does CIA - Manifest
 commits look to be the likely cause.



Each user can setup an ignore list from the ohloh interface. don't
know if there's a way to ignore files project-side.

Regards,


-- 
Rafael Goncalves Martins
Gentoo Linux developer
http://rafaelmartins.eng.br/