Re: [gentoo-dev] Re: Deprecation of python_version(), python_mod_exists(), python_tkinter_exists(), distutils_python_version() and distutils_python_tkinter() in EAPI =2

2010-03-05 Thread Mike Frysinger
On Wednesday 03 March 2010 03:47:37 Tomáš Chvátal wrote:
 Dne 3.3.2010 08:52, Ryan Hill napsal(a):
  On Wed, 03 Mar 2010 08:52:55 +0200 Petteri Räty wrote:
  On 03/02/2010 08:27 PM, Arfrever Frehtes Taifersar Arahesis wrote:
  Members of Gentoo Python Project have agreed to deprecate the following
  functions
  
  in EAPI =2:
- python_version()
- python_mod_exists()
- python_tkinter_exists()
- distutils_python_version()
- distutils_python_tkinter()
  
  These functions are already banned in EAPI =3.
  
  1. In this week, these functions will start printing deprecation
  warnings in older EAPIs. 2. On 2010-07-01, these functions will start
  calling die().
  
 (If any ebuilds in gentoo-x86 still call any of these functions on
 2010-07-01,
 
  then addition of calls to die() will be delayed.)
  
  3. On 2011-01-01, these functions will be removed.
  
  Removing eclass functions like this is not allowed by current policy. If
  you want to do it, you should discuss about changing policy.
  
  ?!
  
  since when?
 
 Since ever.
 If you change eclass abi you need to rename it.

erm, no.  being anal about eclass removal is only because of the breakage that 
occurred with installed packages.  functions that get used at build time are 
free to be deprecated on the fly.  Arfrever has a sane set of steps that 
should ease transition of everything in tree.  anything out of tree (overlays) 
that dont adapt deserve to die anyways.
-mike


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


Re: [gentoo-dev] Re: Deprecation of python_version(), python_mod_exists(), python_tkinter_exists(), distutils_python_version() and distutils_python_tkinter() in EAPI =2

2010-03-05 Thread Mike Frysinger
On Friday 05 March 2010 15:14:33 Ryan Hill wrote:
 On Fri, 05 Mar 2010 13:12:36 +0200 Petteri Räty wrote:
  Because there is so little benefit from removing old functions. What is
  so bad about having them grouped at the bottom of the file inside a
  deprecated section?
 
 Because then people use them.  Don't ask me why.  I have things I
 deprecated over two years ago still being used by a dozen ebuilds bumped
 within the last three months.  You should be familiar with this behaviour
 wrt.
 built_with_use.  So, when I'm making changes I still have to maintain the
 deprecated stuff.
 
 If I really want to get rid of it, then I have to break it.  Replace the
 whole thing with a eerror like any of our deprecated eclasses.  At that
 point, I would rather just remove the function or eclass than curate a
 museum of dead interfaces.  But I suppose that's a personal quirk -- I
 hate having old unused code around.

indeed ... and to take it further, ive seen devs inclined to leave ebuilds 
alone even after they were told point blank the funcs were deprecated and 
going away.
-mike


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


Re: [gentoo-dev] Re: Deprecation of python_version(), python_mod_exists(), python_tkinter_exists(), distutils_python_version() and distutils_python_tkinter() in EAPI =2

2010-03-05 Thread Petteri Räty
On 03/05/2010 10:14 PM, Ryan Hill wrote:
 
 Because then people use them.  Don't ask me why.  I have things I deprecated
 over two years ago still being used by a dozen ebuilds bumped within the last
 three months.  You should be familiar with this behaviour wrt.
 built_with_use.  So, when I'm making changes I still have to maintain the
 deprecated stuff.
 

built_with_use isn't using eerror and it wasn't scanned by repoman so
unless you read the whole ebuild you could miss it when bumping. If we
have devs ignoring eerrors out of the ebuild, then we should rather get
rid of them. It's much harder to spot you are using a deprecated
function when it doesn't exist at all as then the error message during
emerge doesn't stand out in any form.

Regards,
Petteri



signature.asc
Description: OpenPGP digital signature


Re: [gentoo-dev] Re: Deprecation of python_version(), python_mod_exists(), python_tkinter_exists(), distutils_python_version() and distutils_python_tkinter() in EAPI =2

2010-03-04 Thread Ulrich Mueller
 On Thu, 04 Mar 2010, Petteri Räty wrote:

 I think removal of functions is a special case of Adding and
 Updating Eclasses and we already have a policy for this.

 Removing functions needs a migration plan. For example how long to
 have a warning there, how long before it can be removed etc.

There may be no general answer to these questions. If it's an eclass
with limited scope and if the functions are no longer used in the
tree, then I don't see the need for a long transition period. OTOH,
for widespread eclasses like eutils you'd probably want it.

 I don't see how you can get those from the common policy?

If you don't email gentoo-dev first, and end up breaking something,
expect to be in a lot of trouble.

Ulrich



Re: [gentoo-dev] Re: Deprecation of python_version(), python_mod_exists(), python_tkinter_exists(), distutils_python_version() and distutils_python_tkinter() in EAPI =2

2010-03-03 Thread Tomáš Chvátal
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Dne 3.3.2010 08:52, Ryan Hill napsal(a):
 On Wed, 03 Mar 2010 08:52:55 +0200
 Petteri Räty betelge...@gentoo.org wrote:
 
 On 03/02/2010 08:27 PM, Arfrever Frehtes Taifersar Arahesis wrote:
 Members of Gentoo Python Project have agreed to deprecate the following 
 functions
 in EAPI =2:
   - python_version()
   - python_mod_exists()
   - python_tkinter_exists()
   - distutils_python_version()
   - distutils_python_tkinter()

 These functions are already banned in EAPI =3.

 1. In this week, these functions will start printing deprecation warnings 
 in older EAPIs.
 2. On 2010-07-01, these functions will start calling die().
(If any ebuilds in gentoo-x86 still call any of these functions on 
 2010-07-01,
 then addition of calls to die() will be delayed.)
 3. On 2011-01-01, these functions will be removed.


 Removing eclass functions like this is not allowed by current policy. If
 you want to do it, you should discuss about changing policy.
 
 ?!
 
 since when?
 
Since ever.
If you change eclass abi you need to rename it.

Tom
-BEGIN PGP SIGNATURE-
Version: GnuPG v2.0.14 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAkuOIikACgkQHB6c3gNBRYdIoQCfXZupVWgQByemjTLbSyN6qH+H
L3IAn2yFop+l4dclIyzoCYdlGK0a/xSn
=iutE
-END PGP SIGNATURE-



Re: [gentoo-dev] Re: Deprecation of python_version(), python_mod_exists(), python_tkinter_exists(), distutils_python_version() and distutils_python_tkinter() in EAPI =2

2010-03-03 Thread Nirbheek Chauhan
2010/3/3 Tomáš Chvátal scarab...@gentoo.org:
 Removing eclass functions like this is not allowed by current policy. If
 you want to do it, you should discuss about changing policy.

 ?!

 since when?

 Since ever.
 If you change eclass abi you need to rename it.


I think you can *add* functions and variables to eclasses, you can
change *how* a function works internally, you can *fix* problems with
functions (which would technically result in a change in API). I don't
think it has ever been as strict as, say, the kernel ABI interface.

-- 
~Nirbheek Chauhan

Gentoo GNOME+Mozilla Team



Re: [gentoo-dev] Re: Deprecation of python_version(), python_mod_exists(), python_tkinter_exists(), distutils_python_version() and distutils_python_tkinter() in EAPI =2

2010-03-03 Thread Petteri Räty
On 3.3.2010 11.23, Nirbheek Chauhan wrote:
 2010/3/3 Tomáš Chvátal scarab...@gentoo.org:
 Removing eclass functions like this is not allowed by current policy. If
 you want to do it, you should discuss about changing policy.

 ?!

 since when?

 Since ever.
 If you change eclass abi you need to rename it.

 
 I think you can *add* functions and variables to eclasses, you can
 change *how* a function works internally, you can *fix* problems with
 functions (which would technically result in a change in API). I don't
 think it has ever been as strict as, say, the kernel ABI interface.
 

Yes, eclasses go along the same lines as shared libraries, which is
probably what Tomáš meant any way.

Regards,
Petteri



Re: [gentoo-dev] Re: Deprecation of python_version(), python_mod_exists(), python_tkinter_exists(), distutils_python_version() and distutils_python_tkinter() in EAPI =2

2010-03-03 Thread Ciaran McCreesh
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

On Wed, 03 Mar 2010 09:47:37 +0100
Tomáš Chvátal scarab...@gentoo.org wrote:
  Removing eclass functions like this is not allowed by current
  policy. If you want to do it, you should discuss about changing
  policy.
  
  since when?
  
 Since ever.
 If you change eclass abi you need to rename it.

No, that's not been the case 'since ever' at all. It used to be that if
you changed or removed a function, you just had to make sure you didn't
break anything. This was made more complicated by the way that eclasses
in the tree were used for removing installed packages too, which is no
longer an issue.

- -- 
Ciaran McCreesh
-BEGIN PGP SIGNATURE-
Version: GnuPG v2.0.14 (GNU/Linux)

iEYEARECAAYFAkuOWnAACgkQ96zL6DUtXhHcgACgj8hDz+sIgvCbqXeotvUqHyYr
v2wAoJzESPARQnPDaWhrbFNiK0zHp2G2
=RzSg
-END PGP SIGNATURE-


Re: [gentoo-dev] Re: Deprecation of python_version(), python_mod_exists(), python_tkinter_exists(), distutils_python_version() and distutils_python_tkinter() in EAPI =2

2010-03-03 Thread Petteri Räty
On 03/03/2010 02:47 PM, Ciaran McCreesh wrote:
 On Wed, 03 Mar 2010 09:47:37 +0100
 Tomáa Chvátal scarab...@gentoo.org wrote:
 Removing eclass functions like this is not allowed by current
 policy. If you want to do it, you should discuss about changing
 policy.

 since when?

 Since ever.
 If you change eclass abi you need to rename it.
 
 No, that's not been the case 'since ever' at all. It used to be that if
 you changed or removed a function, you just had to make sure you didn't
 break anything. This was made more complicated by the way that eclasses
 in the tree were used for removing installed packages too, which is no
 longer an issue.
 

You can't fix all possible overlays so you can only start removing
functions that are used for installations if we decide we don't care
about overlays.

Regards,
Petteri



signature.asc
Description: OpenPGP digital signature


Re: [gentoo-dev] Re: Deprecation of python_version(), python_mod_exists(), python_tkinter_exists(), distutils_python_version() and distutils_python_tkinter() in EAPI =2

2010-03-03 Thread Petteri Räty
On 03/03/2010 02:40 PM, Ryan Hill wrote:
 On Wed, 03 Mar 2010 13:09:49 +0200
 Petteri Räty betelge...@gentoo.org wrote:
 
 On 3.3.2010 11.23, Nirbheek Chauhan wrote:
 2010/3/3 Tomáš Chvátal scarab...@gentoo.org:
 Removing eclass functions like this is not allowed by current policy. If
 you want to do it, you should discuss about changing policy.

 ?!

 since when?

 Since ever.
 If you change eclass abi you need to rename it.


 I think you can *add* functions and variables to eclasses, you can
 change *how* a function works internally, you can *fix* problems with
 functions (which would technically result in a change in API). I don't
 think it has ever been as strict as, say, the kernel ABI interface.


 Yes, eclasses go along the same lines as shared libraries, which is
 probably what Tomáš meant any way.
 
 Is this actually documented anywhere?  Or is this another of our
 this-is-policy-because-everyone-knows-it's-policy policies?  I know there
 was a technical issue with removing pkg_*_rm functions way-back-when, but if
 there's no technical reason why functions can't be deprecated, and we're just
 clinging to policy in the name of policy, then I can't say I see the point.
 

Big eclass changes should go through gentoo-dev so someone here will
point it out at least. Devmanual should document it so I challenge
anyone to submit a patch:

http://devmanual.gentoo.org/eclass-writing/index.html
git+ssh://git.gentoo.org/var/gitroot/devmanual.git

Also policies should be changed when they don't make sense any more as I
said in my first response but I am not sure if that's the case here.

Regards,
Petteri



signature.asc
Description: OpenPGP digital signature


Re: [gentoo-dev] Re: Deprecation of python_version(), python_mod_exists(), python_tkinter_exists(), distutils_python_version() and distutils_python_tkinter() in EAPI =2

2010-03-03 Thread Petteri Räty
On 03/03/2010 11:39 PM, Ryan Hill wrote:

 Also policies should be changed when they don't make sense any more as I
 said in my first response but I am not sure if that's the case here.
 
 The problem is I don't think this is actually a policy.  One of the first
 projects I did as a developer, while still under probation, was a complete
 rewrite, in-place, of an eclass.  Many functions were removed or renamed
 (done in an overlay of course, with a migration path). It was fully reviewed,
 on list, by senior devs at the time.  I was told by several people that if
 there were any exported pkg_post_rm or pkg_pre_rm functions, they couldn't be
 touched because of portage limitations (those limitations were removed ~3
 years ago now IIRC).  So I wonder if this isn't just a years-long game of
 Telephone where one rule passed down by word of mouth got over-generalized
 and sufficiently twisted as to apply to everything.
 

You can mostly get away with deprecating eclass functions in a slowly
manner.

 Nor do I think it's a particularly useful policy that keeps deprecated
 interfaces around forever.  Careful removal with a long warning period
 shouldn't actually pose a problem.  I think Arfrever's plan is reasonable.
 

If we decide allowing removal of functions, we should come up with a
common procedure like the eclass removal policy:
http://devmanual.gentoo.org/eclass-writing/index.html

Regards,
Petteri




signature.asc
Description: OpenPGP digital signature


Re: [gentoo-dev] Re: Deprecation of python_version(), python_mod_exists(), python_tkinter_exists(), distutils_python_version() and distutils_python_tkinter() in EAPI =2

2010-03-03 Thread Ulrich Mueller
 On Thu, 04 Mar 2010, Petteri Räty wrote:

 If we decide allowing removal of functions, we should come up with a
 common procedure like the eclass removal policy:
 http://devmanual.gentoo.org/eclass-writing/index.html

I think removal of functions is a special case of Adding and Updating
Eclasses and we already have a policy for this.

Ulrich



Re: [gentoo-dev] Re: Deprecation of python_version(), python_mod_exists(), python_tkinter_exists(), distutils_python_version() and distutils_python_tkinter() in EAPI =2

2010-03-03 Thread Petteri Räty
On 03/04/2010 09:39 AM, Ulrich Mueller wrote:
 On Thu, 04 Mar 2010, Petteri Räty wrote:
 
 If we decide allowing removal of functions, we should come up with a
 common procedure like the eclass removal policy:
 http://devmanual.gentoo.org/eclass-writing/index.html
 
 I think removal of functions is a special case of Adding and Updating
 Eclasses and we already have a policy for this.
 
 Ulrich
 

Removing functions needs a migration plan. For example how long to have
a warning there, how long before it can be removed etc. I don't see how
you can get those from the common policy?

Regards,
Petteri



signature.asc
Description: OpenPGP digital signature