Re: [Distutils] command hooks...

2012-05-30 Thread Erik Bray
On Tue, May 29, 2012 at 7:41 PM, PJ Eby p...@telecommunity.com wrote:
  I might be confused; I haven't been following the goings-on of late with
  distutils2.  At one point, I thought the plan was not to bless or
  include dependency-managing installers with the stdlib, or something
  like that.  i.e., I thought the plan wasn't to support or bless
  full-service tools like buildout, easy_install, or pip, or anything
  comparable to them.

 Right, yeah, the plans in this area were fluid for awhile, but the
 eventual conclusion was that the stdlib should have a command-line
 utility capable of installing packages with dependencies. That exists in
 default branch now; it's called pysetup. It doesn't have nearly all the
 features of easy_install, buildout, or pip, but it can install packages
 from an index with deps.


 In any case, it still doesn't change the part where it's a good idea to ship
 a static setup.cfg, with hooks only needing to run on the sdist-building
 machine, unless they are actually part of the build process.  There are use
 cases for calculated data to be in the initial setup.cfg, where the
 calculation machinery doesn't need to be on the target (like generating the
 file list or version from revision control info).  So, a setup_requires (or
 maybe better named build_requires) would still be helpful, but probably
 shouldn't be used for setup.cfg stability.

That's not a bad idea for certain kinds of metadata--version/vcs info
for example.  I like the idea of including a generated static
setup.cfg in a source dist as a solution to that kind of problem.  But
that doesn't eliminate the need for setup_hooks (or even more
complicated objects like custom commands) in an sdist.

For example, the majority of projects I work on require Numpy to build
one or two extension modules.  They require hooks to check that the
numpy package is importable, and then to use numpy's API to get the
paths to the numpy headers and and them to the include_dirs for each
extension module that requires them.  That's not the only one
though--one could have a whole suite of setup_hooks common to a bunch
of projects.  Custom Compiler classes are a possibility now too.

One could ship a copy of those dependencies with each project, or have
some kind of bootstrap script.  But to be able to automatically
download and add build dependencies to the path (a la setup_requires)
would be much nicer.  And packaging will have pysetup, so it should be
doable.  (Having the same capability for test dependencies and doc
dependencies would be nice too, but not nearly as important).

Erik
___
Distutils-SIG maillist  -  Distutils-SIG@python.org
http://mail.python.org/mailman/listinfo/distutils-sig


Re: [Distutils] command hooks...

2012-05-30 Thread PJ Eby
On Wed, May 30, 2012 at 11:54 AM, Erik Bray erik.m.b...@gmail.com wrote:

 On Tue, May 29, 2012 at 7:41 PM, PJ Eby p...@telecommunity.com wrote:
   I might be confused; I haven't been following the goings-on of late
 with
   distutils2.  At one point, I thought the plan was not to bless or
   include dependency-managing installers with the stdlib, or something
   like that.  i.e., I thought the plan wasn't to support or bless
   full-service tools like buildout, easy_install, or pip, or anything
   comparable to them.
 
  Right, yeah, the plans in this area were fluid for awhile, but the
  eventual conclusion was that the stdlib should have a command-line
  utility capable of installing packages with dependencies. That exists in
  default branch now; it's called pysetup. It doesn't have nearly all the
  features of easy_install, buildout, or pip, but it can install packages
  from an index with deps.
 
 
  In any case, it still doesn't change the part where it's a good idea to
 ship
  a static setup.cfg, with hooks only needing to run on the sdist-building
  machine, unless they are actually part of the build process.  There are
 use
  cases for calculated data to be in the initial setup.cfg, where the
  calculation machinery doesn't need to be on the target (like generating
 the
  file list or version from revision control info).  So, a setup_requires
 (or
  maybe better named build_requires) would still be helpful, but probably
  shouldn't be used for setup.cfg stability.

 That's not a bad idea for certain kinds of metadata--version/vcs info
 for example.  I like the idea of including a generated static
 setup.cfg in a source dist as a solution to that kind of problem.  But
 that doesn't eliminate the need for setup_hooks (or even more
 complicated objects like custom commands) in an sdist.

 For example, the majority of projects I work on require Numpy to build
 one or two extension modules.  They require hooks to check that the
 numpy package is importable, and then to use numpy's API to get the
 paths to the numpy headers and and them to the include_dirs for each
 extension module that requires them.  That's not the only one
 though--one could have a whole suite of setup_hooks common to a bunch
 of projects.  Custom Compiler classes are a possibility now too.

 One could ship a copy of those dependencies with each project, or have
 some kind of bootstrap script.  But to be able to automatically
 download and add build dependencies to the path (a la setup_requires)
 would be much nicer.  And packaging will have pysetup, so it should be
 doable.  (Having the same capability for test dependencies and doc
 dependencies would be nice too, but not nearly as important).


Certainly.  I was just saying that the generated-metadata cases need
handling, too, and that people should also be informed that they don't need
(and shouldn't use) setup_requires for simple metadata generation, and that
it might be a good idea to call the feature build_requires, and perhaps
distinguish between setup hooks (for developers to have nice things) and
build hooks (for stuff that absolutely has to run on the install machine).
___
Distutils-SIG maillist  -  Distutils-SIG@python.org
http://mail.python.org/mailman/listinfo/distutils-sig


Re: [Distutils] command hooks...

2012-05-30 Thread Erik Bray
On Wed, May 30, 2012 at 12:19 PM, PJ Eby p...@telecommunity.com wrote:


 On Wed, May 30, 2012 at 11:54 AM, Erik Bray erik.m.b...@gmail.com wrote:

 On Tue, May 29, 2012 at 7:41 PM, PJ Eby p...@telecommunity.com wrote:
   I might be confused; I haven't been following the goings-on of late
   with
   distutils2.  At one point, I thought the plan was not to bless or
   include dependency-managing installers with the stdlib, or something
   like that.  i.e., I thought the plan wasn't to support or bless
   full-service tools like buildout, easy_install, or pip, or anything
   comparable to them.
 
  Right, yeah, the plans in this area were fluid for awhile, but the
  eventual conclusion was that the stdlib should have a command-line
  utility capable of installing packages with dependencies. That exists
  in
  default branch now; it's called pysetup. It doesn't have nearly all the
  features of easy_install, buildout, or pip, but it can install packages
  from an index with deps.
 
 
  In any case, it still doesn't change the part where it's a good idea to
  ship
  a static setup.cfg, with hooks only needing to run on the sdist-building
  machine, unless they are actually part of the build process.  There are
  use
  cases for calculated data to be in the initial setup.cfg, where the
  calculation machinery doesn't need to be on the target (like generating
  the
  file list or version from revision control info).  So, a setup_requires
  (or
  maybe better named build_requires) would still be helpful, but
  probably
  shouldn't be used for setup.cfg stability.

 That's not a bad idea for certain kinds of metadata--version/vcs info
 for example.  I like the idea of including a generated static
 setup.cfg in a source dist as a solution to that kind of problem.  But
 that doesn't eliminate the need for setup_hooks (or even more
 complicated objects like custom commands) in an sdist.

 For example, the majority of projects I work on require Numpy to build
 one or two extension modules.  They require hooks to check that the
 numpy package is importable, and then to use numpy's API to get the
 paths to the numpy headers and and them to the include_dirs for each
 extension module that requires them.  That's not the only one
 though--one could have a whole suite of setup_hooks common to a bunch
 of projects.  Custom Compiler classes are a possibility now too.

 One could ship a copy of those dependencies with each project, or have
 some kind of bootstrap script.  But to be able to automatically
 download and add build dependencies to the path (a la setup_requires)
 would be much nicer.  And packaging will have pysetup, so it should be
 doable.  (Having the same capability for test dependencies and doc
 dependencies would be nice too, but not nearly as important).


 Certainly.  I was just saying that the generated-metadata cases need
 handling, too, and that people should also be informed that they don't need
 (and shouldn't use) setup_requires for simple metadata generation, and that
 it might be a good idea to call the feature build_requires, and perhaps
 distinguish between setup hooks (for developers to have nice things) and
 build hooks (for stuff that absolutely has to run on the install machine).

I think we're on the same page then :)  packaging/d2 also supports
pre/post-command hooks which might, in most cases, be more appropriate
for the build hooks that absolutely have to run case.  In fact, I
had completely forgotten this, but my aforementioned Numpy extension
module hook is a pre-build_ext hook.  That makes it absolutely clear
that this is something we have to do before we can build an extension
module, and that it doesn't have any purpose outside that context and
shouldn't be executed ever time I run `pysetup something`.

Erik
___
Distutils-SIG maillist  -  Distutils-SIG@python.org
http://mail.python.org/mailman/listinfo/distutils-sig


Re: [Distutils] command hooks...

2012-05-29 Thread PJ Eby
On Tue, May 29, 2012 at 10:20 AM, Erik Bray erik.m.b...@gmail.com wrote:

 This particular solution works for me.  But the point is that it can
 be done pretty easily.  However, the lack of a setup_requires-like
 feature still makes things pretty impossible short of shipping a copy
 of all the required setup hooks with the projects that use them.
 Certainly doable, but far from ideal.


Right, and I don't think distutils2 can really add setup_requires without
blessing a package manager.  That means the alternative is shipping an
altered setup.cfg with sdist builds, or using tools that generate setup.cfg
in the first place, such that setup.cfg isn't the project's canonical form.

Probably the simplest way to do it would be to just ship setup.cfg in the
sdist -- as modified by the setup hooks, since this keeps the developer
from having to use a different tool to generate the setup.cfg; it can all
be done by setup hooks.

In that case, the setup hooks themselves would need to be idempotent, so
they don't mess things up if they run a second time in an sdist-ed version
of the project.

Another alternative would be to use a package manager bootstrap script in
the project directory (ala ez_setup.py), which could then read and process
a setup_requires from setup.cfg.  But that's a much heavier-weight process;
it would be much preferable if people could make all their setup_requires
stuff run off an original copy only, and not be needed in an sdist copy.
So for example, if you need Pyrex for generating C code, it should run
pre-sdist, not post-sdist.

(OTOH, it's possible that there are some distributions you need for
building the package, for platform-specific build steps.)
___
Distutils-SIG maillist  -  Distutils-SIG@python.org
http://mail.python.org/mailman/listinfo/distutils-sig


Re: [Distutils] command hooks...

2012-05-29 Thread Carl Meyer


On 05/29/2012 08:19 AM, PJ Eby wrote:
 On Tue, May 29, 2012 at 10:20 AM, Erik Bray erik.m.b...@gmail.com
 mailto:erik.m.b...@gmail.com wrote:
 
 This particular solution works for me.  But the point is that it can
 be done pretty easily.  However, the lack of a setup_requires-like
 feature still makes things pretty impossible short of shipping a copy
 of all the required setup hooks with the projects that use them.
 Certainly doable, but far from ideal.
 
 
 Right, and I don't think distutils2 can really add setup_requires
 without blessing a package manager.

I'm confused by this statement. distutils2 _includes_ a package manager
(pysetup); it has no need to bless an external one. What am I missing?

Carl



signature.asc
Description: OpenPGP digital signature
___
Distutils-SIG maillist  -  Distutils-SIG@python.org
http://mail.python.org/mailman/listinfo/distutils-sig


Re: [Distutils] command hooks...

2012-05-29 Thread PJ Eby
On Tue, May 29, 2012 at 1:24 PM, Carl Meyer c...@oddbird.net wrote:



 On 05/29/2012 08:19 AM, PJ Eby wrote:
  On Tue, May 29, 2012 at 10:20 AM, Erik Bray erik.m.b...@gmail.com
  mailto:erik.m.b...@gmail.com wrote:
 
  This particular solution works for me.  But the point is that it can
  be done pretty easily.  However, the lack of a setup_requires-like
  feature still makes things pretty impossible short of shipping a copy
  of all the required setup hooks with the projects that use them.
  Certainly doable, but far from ideal.
 
 
  Right, and I don't think distutils2 can really add setup_requires
  without blessing a package manager.

 I'm confused by this statement. distutils2 _includes_ a package manager
 (pysetup); it has no need to bless an external one. What am I missing?


I might be confused; I haven't been following the goings-on of late with
distutils2.  At one point, I thought the plan was not to bless or include
dependency-managing installers with the stdlib, or something like that.
i.e., I thought the plan wasn't to support or bless full-service tools like
buildout, easy_install, or pip, or anything comparable to them.
___
Distutils-SIG maillist  -  Distutils-SIG@python.org
http://mail.python.org/mailman/listinfo/distutils-sig


Re: [Distutils] command hooks...

2012-05-29 Thread Carl Meyer

On 05/29/2012 02:01 PM, PJ Eby wrote:
 On Tue, May 29, 2012 at 1:24 PM, Carl Meyer c...@oddbird.net wrote:
 On 05/29/2012 08:19 AM, PJ Eby wrote:
  Right, and I don't think distutils2 can really add setup_requires
  without blessing a package manager.
 
 I'm confused by this statement. distutils2 _includes_ a package manager
 (pysetup); it has no need to bless an external one. What am I missing?
 
 I might be confused; I haven't been following the goings-on of late with
 distutils2.  At one point, I thought the plan was not to bless or
 include dependency-managing installers with the stdlib, or something
 like that.  i.e., I thought the plan wasn't to support or bless
 full-service tools like buildout, easy_install, or pip, or anything
 comparable to them.

Right, yeah, the plans in this area were fluid for awhile, but the
eventual conclusion was that the stdlib should have a command-line
utility capable of installing packages with dependencies. That exists in
default branch now; it's called pysetup. It doesn't have nearly all the
features of easy_install, buildout, or pip, but it can install packages
from an index with deps.

Carl



signature.asc
Description: OpenPGP digital signature
___
Distutils-SIG maillist  -  Distutils-SIG@python.org
http://mail.python.org/mailman/listinfo/distutils-sig


Re: [Distutils] command hooks...

2012-05-29 Thread PJ Eby
On Tue, May 29, 2012 at 5:17 PM, Carl Meyer c...@oddbird.net wrote:


 On 05/29/2012 02:01 PM, PJ Eby wrote:
  On Tue, May 29, 2012 at 1:24 PM, Carl Meyer c...@oddbird.net wrote:
  On 05/29/2012 08:19 AM, PJ Eby wrote:
   Right, and I don't think distutils2 can really add setup_requires
   without blessing a package manager.
 
  I'm confused by this statement. distutils2 _includes_ a package
 manager
  (pysetup); it has no need to bless an external one. What am I
 missing?
 
  I might be confused; I haven't been following the goings-on of late with
  distutils2.  At one point, I thought the plan was not to bless or
  include dependency-managing installers with the stdlib, or something
  like that.  i.e., I thought the plan wasn't to support or bless
  full-service tools like buildout, easy_install, or pip, or anything
  comparable to them.

 Right, yeah, the plans in this area were fluid for awhile, but the
 eventual conclusion was that the stdlib should have a command-line
 utility capable of installing packages with dependencies. That exists in
 default branch now; it's called pysetup. It doesn't have nearly all the
 features of easy_install, buildout, or pip, but it can install packages
 from an index with deps.


In any case, it still doesn't change the part where it's a good idea to
ship a static setup.cfg, with hooks only needing to run on the
sdist-building machine, unless they are actually part of the build
process.  There are use cases for calculated data to be in the initial
setup.cfg, where the calculation machinery doesn't need to be on the target
(like generating the file list or version from revision control info).  So,
a setup_requires (or maybe better named build_requires) would still be
helpful, but probably shouldn't be used for setup.cfg stability.

One use case I ran across rather late in the game with setuptools was the
part where sdist distributions need to be capable of rebuilding an sdist,
for at least the bdist_rpm case, if not others.  That had me tearing my
hair, since I was dependent on what I could do on top of existing
distutils.  But for distutils2, shipping an updated setup.cfg (possibly
*minus* certain setup_hooks) would solve the problem nicely.
___
Distutils-SIG maillist  -  Distutils-SIG@python.org
http://mail.python.org/mailman/listinfo/distutils-sig


Re: [Distutils] command hooks...

2012-05-27 Thread PJ Eby
On Fri, May 25, 2012 at 4:23 PM, Erik Bray erik.m.b...@gmail.com wrote:

 On Fri, May 25, 2012 at 2:24 PM, Daniel Holth dho...@gmail.com wrote:
  This discussion is confusing because we are either talking about a
  general plugin discovery mechanism for Python, or a plugin mechanism
  that packaging itself uses.
 
  After the patch, entry_points.txt (which you are encouraged to write
  yourself) is copied by means of a new {dist-info} category using the
  resources = mechanism in packaging. This is a straightforward way to
  copy anything into the .dist-info directory. Apart from copying the
  file, 'packaging' has no role.
 
  setup.cfg:
 
  [files]
  packages = mypackage
  resources =
 entry_points.txt={dist-info}
 
  That's all there is to it.

 Neat! I didn't realize there was a {dist-info} resource category.
 That, plus the register_finder() approach mentioned in the other
 thread could be a way to go for interoperability with packages using
 setuptools.  It would still require a bit of hackery though...  I
 suspect there would be resistance to adding support for this directly
 in packaging.  But a setup_hook could set this up.


Ideally, one should just be able to add sections to setup.cfg itself to
describe the entry points.  Better yet: just include setup.cfg in the
dist-info directory, and then the replacement for entry points can look for
arbitrary sections in setup.cfg files.  (The downside: slower first-use
performance, since every setup.cfg would have to be read at least once, but
on the upside, all subsequent entry point lookups would be faster.)

Is setup.cfg already in dist-info?  I guess if it isn't, you could just add
it, using the same mechanism above.  Hm  (goes to look at packaging
docs)...  Ouch.  I'm seeing a bigger problem, which is that without either
the ability to do setup_requires or to ship an sdist with a hook-altered
setup.cfg, it doesn't look like you can actually implement all of
setuptools' build functionality with just packaging.  (e.g. Setuptools can
ship an sdist whose contents and version were determined using revision
control info, but which does not then require the revision control tool
when installing from the sdist, as the sdist contains a pre-built manifest,
and a pre-built setup.cfg with hardcoded version numbers copied from the
original revision control info.)

I really hope I'm not going to have to write setuptools2 to work around
these limitations.  ;-)   (Preferably, if I do write a setuptools2, I hope
it can all be done using proper setup hooks on top of packaging/distutils2,
without monkeypatching anything.)
___
Distutils-SIG maillist  -  Distutils-SIG@python.org
http://mail.python.org/mailman/listinfo/distutils-sig


Re: [Distutils] command hooks...

2012-05-25 Thread Erik Bray
On Thu, May 24, 2012 at 8:27 PM, PJ Eby p...@telecommunity.com wrote:
 On Thu, May 24, 2012 at 6:56 PM, Daniel Holth dho...@gmail.com wrote:

  For something like Pyramid the main piece that's missing is support
  for an entry_points like system.  As Tarek and other have pointed out
  the past, such a system could still be supported through a third-party
  plugin system that works via setup hooks and custom metadata.  I think
  there was even a prototype for something like that at one point...

 'packaging' will be powerful enough to copy entry_points.txt into the
 .dist-info directory as a resource. Python bug #11880.

 The existing entry points code has a plugin mechanism for itself that
 will make it easy to iterate over entry_points.txt in dist-info as
 well as egg-info directories. Just write that plugin and you should be
 good to go. Though you might have to install the plugin in an egg-info
 directory at first...


 What plugin mechanism are you talking about here, specifically?

 For that matter, which existing entry points code are you talking about,
 too?  ;-)

Yeah, I'm a little confused by this too.  Sure you could include an
entry_points.txt in the dist-info. Though it's not clear to me that
there's an entirely straightforward way to do this yet.  I think some
ideas have been tossed about for how to make it easier to include
custom files in dist-info, but that there were no conclusions on that.
 Or maybe it already is easy and I'm just missing something.

Then there would need to be some interface like
pkg_resources.iter_entry_points() available to all software that
relies on entry_points.  This could be provided by the same plugin
that adds entry_points.txt to dist-info.  That plugin would have to be
an installation requirement for any software that relies on it (as is
setuptools for any package that currently uses entry_points, so I
don't think that's such a hardship...)

Erik
___
Distutils-SIG maillist  -  Distutils-SIG@python.org
http://mail.python.org/mailman/listinfo/distutils-sig


Re: [Distutils] command hooks...

2012-05-25 Thread Daniel Holth
This discussion is confusing because we are either talking about a
general plugin discovery mechanism for Python, or a plugin mechanism
that packaging itself uses.

After the patch, entry_points.txt (which you are encouraged to write
yourself) is copied by means of a new {dist-info} category using the
resources = mechanism in packaging. This is a straightforward way to
copy anything into the .dist-info directory. Apart from copying the
file, 'packaging' has no role.

setup.cfg:

[files]
packages = mypackage
resources =
entry_points.txt={dist-info}

That's all there is to it.
___
Distutils-SIG maillist  -  Distutils-SIG@python.org
http://mail.python.org/mailman/listinfo/distutils-sig


Re: [Distutils] command hooks...

2012-05-25 Thread Erik Bray
On Fri, May 25, 2012 at 2:24 PM, Daniel Holth dho...@gmail.com wrote:
 This discussion is confusing because we are either talking about a
 general plugin discovery mechanism for Python, or a plugin mechanism
 that packaging itself uses.

 After the patch, entry_points.txt (which you are encouraged to write
 yourself) is copied by means of a new {dist-info} category using the
 resources = mechanism in packaging. This is a straightforward way to
 copy anything into the .dist-info directory. Apart from copying the
 file, 'packaging' has no role.

 setup.cfg:

 [files]
 packages = mypackage
 resources =
    entry_points.txt={dist-info}

 That's all there is to it.

Neat! I didn't realize there was a {dist-info} resource category.
That, plus the register_finder() approach mentioned in the other
thread could be a way to go for interoperability with packages using
setuptools.  It would still require a bit of hackery though...  I
suspect there would be resistance to adding support for this directly
in packaging.  But a setup_hook could set this up.

Erik
___
Distutils-SIG maillist  -  Distutils-SIG@python.org
http://mail.python.org/mailman/listinfo/distutils-sig


Re: [Distutils] command hooks...

2012-05-24 Thread Erik Bray
On Wed, May 23, 2012 at 11:59 PM, Chris McDonough chr...@plope.com wrote:
 It sounds like a reasonable task for me to try out.  In the meantime we've
 had a bit of a family emergency which will take some time to overcome and I
 won't be able to dedicate much energy to this.  As a result, I have to
 declare bankruptcy here, so I'll have to live with whatever I get.

Sorry to hear about that.

 I'm hoping though that someone else will step up here and do an evaluation
 and try to get things like Pyramid and popular Zope packages installed in a
 way that makes sense for straddling Python 2 and Python 3.  I suspect if no
 one does this, it's going to be rough going.


 - C

For something like Pyramid I don't actually think it would be too
difficult to get it *mostly* working with packaging/distutils2 in its
present state.  The word is mostly.  And that's to say nothing of
all its dependencies, though they don't all necessarily need to work
with the same installer.

For something like Pyramid the main piece that's missing is support
for an entry_points like system.  As Tarek and other have pointed out
the past, such a system could still be supported through a third-party
plugin system that works via setup hooks and custom metadata.  I think
there was even a prototype for something like that at one point...

But that raises another issue:  If packaging is going to be like a
framework that additional features like plugin systems or console
script generators can be tacked on to, there needs to be a way to
specify build dependencies in setup.cfg, and to have those
dependencies automatically downloaded and added to sys.path during
setup, a la setup_requires in setuptools.

I know there have been discussions and proposals in the past to add
something like this to packaging, and to amend PEP 345 to include it.
Metadata for test dependencies and docs dependencies have also been
discussed in the past.  But I think a way of adding build/setup
dependencies is critical if packaging is going to be useful as a
framework.

I have a few packages that use d2to1, which supports setup_requires
through setuptools.  Thanks to that, I'm able to make those packages
have an additional setup_requirement of a package that contains
several pre-canned setup_hooks that I use in all my projects.  I would
point out specific examples, but they're a bit obscure...

Anyways, I'm working right now to finish a software release.  But then
I want to spend some time working on this issue of adding build
requirements support to packaging and to PEP 345.  I might also work
on a plugin system that can work in packaging as a replacement for
entry_points, if no one else does.  Without these features I don't see
packaging being very successful as an installation framework, IMO.

Erik
___
Distutils-SIG maillist  -  Distutils-SIG@python.org
http://mail.python.org/mailman/listinfo/distutils-sig


Re: [Distutils] command hooks...

2012-05-24 Thread Daniel Holth
 For something like Pyramid the main piece that's missing is support
 for an entry_points like system.  As Tarek and other have pointed out
 the past, such a system could still be supported through a third-party
 plugin system that works via setup hooks and custom metadata.  I think
 there was even a prototype for something like that at one point...

'packaging' will be powerful enough to copy entry_points.txt into the
.dist-info directory as a resource. Python bug #11880.

The existing entry points code has a plugin mechanism for itself that
will make it easy to iterate over entry_points.txt in dist-info as
well as egg-info directories. Just write that plugin and you should be
good to go. Though you might have to install the plugin in an egg-info
directory at first...
___
Distutils-SIG maillist  -  Distutils-SIG@python.org
http://mail.python.org/mailman/listinfo/distutils-sig


Re: [Distutils] command hooks...

2012-05-24 Thread PJ Eby
On Thu, May 24, 2012 at 6:56 PM, Daniel Holth dho...@gmail.com wrote:

  For something like Pyramid the main piece that's missing is support
  for an entry_points like system.  As Tarek and other have pointed out
  the past, such a system could still be supported through a third-party
  plugin system that works via setup hooks and custom metadata.  I think
  there was even a prototype for something like that at one point...

 'packaging' will be powerful enough to copy entry_points.txt into the
 .dist-info directory as a resource. Python bug #11880.

 The existing entry points code has a plugin mechanism for itself that
 will make it easy to iterate over entry_points.txt in dist-info as
 well as egg-info directories. Just write that plugin and you should be
 good to go. Though you might have to install the plugin in an egg-info
 directory at first...


What plugin mechanism are you talking about here, specifically?

For that matter, which existing entry points code are you talking about,
too?  ;-)
___
Distutils-SIG maillist  -  Distutils-SIG@python.org
http://mail.python.org/mailman/listinfo/distutils-sig


Re: [Distutils] command hooks...

2012-05-23 Thread Robert Park
On Mon, May 21, 2012 at 3:42 PM, Tarek Ziadé ta...@ziade.org wrote:
 If you are a packager for a project, you can describe in details your data
 files, and add more metadata that are understood by PyPI.

 If you are a debian packager, you will be able to define where the data
 files of a python project should be installed without having to patch some
 python code.

This right here is the killer feature for me. By my limited
observations, most people solve the data files problem either by
dumping their data files inside their python modules (which is an ugly
abuse of the filesystem), or are simply using the cumbersome autotools
in order to record the installation prefix for their data files. It
blows my mind that it is standard practice for many GNOME apps written
in Python to use a C compilation preprocessor in order to set a python
variable so their python scripts can find their data files.

Currently I am hacking distutils in order to accomplish this, like so:

https://github.com/robru/gottengeography/blob/master/setup.py

But this is ugly because it modifies the file in-place, so I always
have to be careful not to accidentally commit the munged file into my
git repo.

It's absolutely critical that any replacement for distutils have
built-in functionality for installed python code being able to query
at run-time the location that data files were placed at install time.

-- 
http://exolucere.ca
___
Distutils-SIG maillist  -  Distutils-SIG@python.org
http://mail.python.org/mailman/listinfo/distutils-sig


Re: [Distutils] command hooks...

2012-05-23 Thread Tarek Ziadé

On 5/23/12 8:16 AM, Robert Park wrote:

On Mon, May 21, 2012 at 3:42 PM, Tarek Ziadéta...@ziade.org  wrote:

If you are a packager for a project, you can describe in details your data
files, and add more metadata that are understood by PyPI.

If you are a debian packager, you will be able to define where the data
files of a python project should be installed without having to patch some
python code.

This right here is the killer feature for me. By my limited
observations, most people solve the data files problem either by
dumping their data files inside their python modules (which is an ugly
abuse of the filesystem), or are simply using the cumbersome autotools
in order to record the installation prefix for their data files. It
blows my mind that it is standard practice for many GNOME apps written
in Python to use a C compilation preprocessor in order to set a python
variable so their python scripts can find their data files.

Currently I am hacking distutils in order to accomplish this, like so:

https://github.com/robru/gottengeography/blob/master/setup.py

But this is ugly because it modifies the file in-place, so I always
have to be careful not to accidentally commit the munged file into my
git repo.

It's absolutely critical that any replacement for distutils have
built-in functionality for installed python code being able to query
at run-time the location that data files were placed at install time.


Please read this section and let us know what you think:

http://docs.python.org/dev/packaging/setupcfg.html#resources

This works in conjunction with the new sysconfig module, which can be 
configured system-wide by the linux distribution, or locally per projet


Then you can use an API to get the file from your code.

Gosh the documentation is a mess ... we need to fix this - it has bits 
from the previous version that should be removed :(


Cheers
Tarek
___
Distutils-SIG maillist  -  Distutils-SIG@python.org
http://mail.python.org/mailman/listinfo/distutils-sig


[Distutils] command hooks...

2012-05-23 Thread Oscar Benjamin
On 23 May 2012 07:48, Tarek Ziadé ta...@ziade.org wrote:

 On 5/23/12 8:16 AM, Robert Park wrote:

 On Mon, May 21, 2012 at 3:42 PM, Tarek Ziadéta...@ziade.org  wrote:

 If you are a packager for a project, you can describe in details your
 data
 files, and add more metadata that are understood by PyPI.

 If you are a debian packager, you will be able to define where the data
 files of a python project should be installed without having to patch
 some
 python code.

 This right here is the killer feature for me. By my limited
 observations, most people solve the data files problem either by
 dumping their data files inside their python modules (which is an ugly
 abuse of the filesystem), or are simply using the cumbersome autotools
 in order to record the installation prefix for their data files. It
 blows my mind that it is standard practice for many GNOME apps written
 in Python to use a C compilation preprocessor in order to set a python
 variable so their python scripts can find their data files.

 Currently I am hacking distutils in order to accomplish this, like so:

 https://github.com/robru/**gottengeography/blob/master/**setup.pyhttps://github.com/robru/gottengeography/blob/master/setup.py

 But this is ugly because it modifies the file in-place, so I always
 have to be careful not to accidentally commit the munged file into my
 git repo.

 It's absolutely critical that any replacement for distutils have
 built-in functionality for installed python code being able to query
 at run-time the location that data files were placed at install time.

  Please read this section and let us know what you think:

 http://docs.python.org/dev/**packaging/setupcfg.html#**resourceshttp://docs.python.org/dev/packaging/setupcfg.html#resources


How do gettext translation files fit into this scheme? Should they go under
appdata?




 This works in conjunction with the new sysconfig module, which can be
 configured system-wide by the linux distribution, or locally per projet

 Then you can use an API to get the file from your code.

 Gosh the documentation is a mess ... we need to fix this - it has bits
 from the previous version that should be removed :(

 Cheers
 Tarek

 __**_
 Distutils-SIG maillist  -  Distutils-SIG@python.org
 http://mail.python.org/**mailman/listinfo/distutils-sighttp://mail.python.org/mailman/listinfo/distutils-sig

___
Distutils-SIG maillist  -  Distutils-SIG@python.org
http://mail.python.org/mailman/listinfo/distutils-sig


Re: [Distutils] command hooks...

2012-05-23 Thread Robert Park
On Wed, May 23, 2012 at 1:48 AM, Tarek Ziadé ta...@ziade.org wrote:
 On 5/23/12 8:16 AM, Robert Park wrote:
 It's absolutely critical that any replacement for distutils have
 built-in functionality for installed python code being able to query
 at run-time the location that data files were placed at install time.

 Please read this section and let us know what you think:

 http://docs.python.org/dev/packaging/setupcfg.html#resources

Yeah, the [files] definition in setup.cfg looks fine, the space syntax
in the source definition I would consider highly important in order to
avoid installing things into {datadir}/doc/foo/doc/ as given in the
example.

 This works in conjunction with the new sysconfig module, which can be
 configured system-wide by the linux distribution, or locally per projet

 Then you can use an API to get the file from your code.

I didn't see any mention of this aspect in the documentation you
linked. What does the API look like?

-- 
http://exolucere.ca
___
Distutils-SIG maillist  -  Distutils-SIG@python.org
http://mail.python.org/mailman/listinfo/distutils-sig


Re: [Distutils] command hooks...

2012-05-23 Thread Chris McDonough

On 05/21/2012 04:59 PM, Tarek Ziadé wrote:

On 5/16/12 6:26 PM, Chris McDonough wrote:

On 05/16/2012 02:55 AM, Tarek Ziadé wrote:

On 5/16/12 3:58 AM, Chris McDonough wrote:

Adding two more (packaging and distutils2) which are similarly
semi-documented and which don't even solve the problems that the
previous ones do would serve no purpose, and baking them into Python
itself will mean they can't evolve in important ways.


Oh, I think I need to answer to this too since you said you wanted to
help. Packaging is not intended to be similar to setuptools in its
features.

For instance we won't provide console scripts or entry points. The first
one because 'script' is the same feature (except there's an indirection
and I said before we could mimic this)
The second one because we should build this kind of feature outside the
stdlib (this is not something most people use, according to the survey I
did back a few years ago, it's mostly zope/plone/repoze land)


I suspect many people don't really know they're using entry points
when they are. PasteDeploy configuration files rely heavily on entry
points. Those are used in various ways by Pylons, Pyramid, Zope, and
Turbogears. (PasteDeploy itself been downloaded almost a million times
from PyPI.)


yes.

on a side note: The PyPI stats numbers are biased for many libraries
because they are artificially increased by all the buildouts and Jenkins
and Travis-CI calls out there.
IOW: if a server downloads 100 times a day PasteDeploy because someone
did not set a cache, does it make it 100 times more popular ?
Same goes for any library that's a core part of the non-monolithic
frameworks out there.




I'm fine with needing to depend on an external package to scan for
entrypoint-like-things registered as the result of the installation of
a distribution. But there will need to be a way to register
entrypoint-like things (along the lines of arbitrary egg-info
metadata) as the result of distribution installation using pysetup.
Maybe that already exists.

we want to make the dist-info (see PEP 376) structure a directory where
you can drop anything, so you can have arbitrary metadata. Right now,
entry_points.txt is copied over in that directory by pysetup.

the new setup.cfg file allows you to define extra metadata as well, and
what's awesome: we want to publish that static file to PyPI so tools can
browse it !

= http://docs.python.org/dev/packaging/setupcfg.html#extensibility


IOW: packaging should only be the common basis and provide a basic
installer - not a full fledge tool you can use to replace the most
advanced setuptools features. And we want it pluggable enough so people
can build pluggable features on the top of it, like Eric explained
earlier

Does that make sense ?


I'd like to say it does, but I'm afraid it does not.

I can see shipping both machinery and a full-fledged installer that
handles all the use cases of existing installers. I can also see
shipping just machinery and no installer at all.

But I can't really see shipping both machinery and an installer that
we know doesn't service use cases that existing installers already do.
At least I can't see doing that in order to service an external
shipping deadline.


So what about this suggestion:

let's make this goal : pysetup should be able to install Pyramid
(without [extras] sorry, we can live without it) - with a few
adaptations in a branch if needed.

if we can make it work before 3.3rc1, great. If we fail we remove the
installer part of packaging and move it to an external project

That's just a suggestion, I'll defer the decision to Eric because while
I can help around, I don't have the time, neither the motivation to do
packaging work these days.

But we have to hurry up - and check with Guido if he's ok with those
decisions.


It sounds like a reasonable task for me to try out.  In the meantime 
we've had a bit of a family emergency which will take some time to 
overcome and I won't be able to dedicate much energy to this.  As a 
result, I have to declare bankruptcy here, so I'll have to live with 
whatever I get.


I'm hoping though that someone else will step up here and do an 
evaluation and try to get things like Pyramid and popular Zope packages 
installed in a way that makes sense for straddling Python 2 and Python 
3.  I suspect if no one does this, it's going to be rough going.


- C
___
Distutils-SIG maillist  -  Distutils-SIG@python.org
http://mail.python.org/mailman/listinfo/distutils-sig


Re: [Distutils] command hooks...

2012-05-22 Thread Erik Bray
On Mon, May 21, 2012 at 4:42 PM, Tarek Ziadé ta...@ziade.org wrote:
 My understanding is that the legacy tools already work, for some vague
 definition of work.  Your task is to convince me that packaging is
 better -- which I think will be hard to do if packaging is not better.

 It really depends what you put behind the word better. And no, My task is
 not to convince you that packaging is better.

 My tasks were :

 1 - try to define standards which every packaging tool can implement, for
 the sake of interoperability, have a consensus on them, have them accepted
 2 - allow more static definitions of metadata
 3 - add in the standard library
  a/ a reference implementation for all the standards
  b/ a minimal installer.

 3-b is not ready for prime time obviously - but this should not take too
 long.

I don't usually do this, and I think most people on this list are
already aware of it, but this seems like a decent place to insert a
shameless plug for d2to1 [1].  d2to1 allows Python developers to take
advantage of many of the features and advantages of packaging
today--in particular static metadata and hook functions--while still
supporting existing installers like easy_install and pip.  It's a
total hack, and only meant to aid with transition, but it actually
works quite well in practice.

Unfortunately I haven't found the time to work on it in a little while
so I need to find that time.  In particular it would be useful for it
to add resources support.

Erik

[1] http://pypi.python.org/pypi/d2to1
___
Distutils-SIG maillist  -  Distutils-SIG@python.org
http://mail.python.org/mailman/listinfo/distutils-sig


Re: [Distutils] command hooks...

2012-05-21 Thread Tarek Ziadé

On 5/16/12 7:35 PM, Mark Sienkiewicz wrote:



Can you see packaging as a set of utility at this point, rather than 
a tool that's going to replace instantly all the legacy tools ?


If it is not going to replace the legacy tools, then why should I use it?


Who are you ?

If you are a user that just installs software, you might want to use it 
because you can *uninstall* things. This is now less relevant now that 
pip has this feature, but easy_install does not. And with the PEP we 
wrote, any tool should be able to install/uninstall any project. And 
well, have this feature bundled into Python makes sense.


If you are a packager for a project, you can describe in details your 
data files, and add more metadata that are understood by PyPI.


If you are a debian packager, you will be able to define where the data 
files of a python project should be installed without having to patch 
some python code.


I have much more but it's a bit hard to summarize this in a mail - I 
have a packaging fatigue anyways.




My understanding is that the legacy tools already work, for some vague 
definition of work.  Your task is to convince me that packaging is 
better -- which I think will be hard to do if packaging is not better.
It really depends what you put behind the word better. And no, My task 
is not to convince you that packaging is better.


My tasks were :

1 - try to define standards which every packaging tool can implement, 
for the sake of interoperability, have a consensus on them, have them 
accepted

2 - allow more static definitions of metadata
3 - add in the standard library
  a/ a reference implementation for all the standards
  b/ a minimal installer.

3-b is not ready for prime time obviously - but this should not take too 
long.



Cheers
Tarek




Mark S.

___
Distutils-SIG maillist  -  Distutils-SIG@python.org
http://mail.python.org/mailman/listinfo/distutils-sig


___
Distutils-SIG maillist  -  Distutils-SIG@python.org
http://mail.python.org/mailman/listinfo/distutils-sig


Re: [Distutils] command hooks...

2012-05-16 Thread Tarek Ziadé

On 5/16/12 3:58 AM, Chris McDonough wrote:

On 05/15/2012 04:39 PM, Éric Araujo wrote:

Hi again,

Le 01/05/2012 14:28, Paul Moore a écrit :

On 1 May 2012 17:40, Chris McDonoughchr...@plope.com wrote:

Is there a PEP for the packaging package? Is there any sort of
unfinished
business I can help with?

AFAIK, there's no specific PEP for packaging (there are a number of
related PEPs, but nothing specific like a roadmap).

Yep. distutils2/packaging implement PEP 345 (Metadata 1.2), 376
(dist-info directory a.k.a. installation database) and 386 (version
numbers), and also the older Metadata PEPs like distutils, but there was
no PEP to discuss inclusion of d2 in Python 3.3: it just happened when a
core developer (Martin von Löwis) indicated he was opposed to work on
features (to add support for PEP 384 — Stable ABI for example) outside
of the Python repository. I think that no PEP was asked by anyone
because distutils2 is forked from code already in the stdlib and it
implements accepted PEPs. There are small and big features added or in
progress, many of them inspired by setuptools, that don’t have a PEP
though.

As I said on my other reply there is no friendly list of issues or
roadmap, only unsorted bugs and what’s in my mind.


OK.  Is there a way for me to take a look at the unsorted bugs?


I'm sure Éric can give you much better pointers on what would be
useful, but one issue I've tried to raise a few times, and more
recently Jim Fulton raised here
(http://mail.python.org/pipermail/distutils-sig/2012-March/018323.html)
is that of binary distribution support in packaging2. I've never had
the time to shepherd a proposal through beyond the initial debate
stage, and I know it's not getting high on Éric's list of priorities,
but it would be good to see some movement on this.

Indeed, in private email with Paul I agreed on the importance of a
binary distribution format and did a pre-publication review of his PEP,
but we did not finish our discussion nor incorporated the alternate
proposal that was discussed at PyCon and on the mailing list (which
makes it hard to see a clear picture — PEPs are good :)

It seems unlikely that this hard topic can be solved for Python 3.3 /
distutils2 1.0; what can be done however is to make sure that the
extensibility hooks in d2 are well tested and documented so that when a
bdist PEP reaches agreement and is implemented, a simple pysetup call
and two lines of config will be all it takes to be able to use the new
command.

I know that the situation is far from ideal, and far from our goals for
3.3, but anyway d2 was never intended as a full replacement for
setuptools and pip (more on that in an upcoming reply to another of your
messages when you listed the setuptools features used by Pyramid). I
think packaging in Python 3.3 will be a first version put in the stdlib
to gather feedback and reports, not a finished stable product.


I really don't want to add stop energy here, and I'm more than willing 
to row to get something going, but I'm afraid if that's the diagnosis, 
it means I'll personally have to oppose the inclusion of packaging in 
3.3.  We currently already have at least 3 competing solutions 
(setuptools, distribute, and distutils itself), and people are baffled 
about which to use and how to use it.  Adding two more (packaging and 
distutils2) which are similarly semi-documented and which don't even 
solve the problems that the previous ones do would serve no purpose, 
and baking them into Python itself will mean they can't evolve in 
important ways.   I'd suggest we just put the brakes on and slate 
something better for 3.4.  Does that make sense, or does that make 
people sad?
I know the idea of having packaging in the stdlib is something some 
people disliked, from day 1. And if I recall correctly, you did not like 
this either back then.


I am -1 on for two reasons:

1/ your argument about people being baffled about which tool to use will 
be worse if we work outside the stdlib. Having packaging in the stdlib 
and distutils frozen here, leads the path: hey, the next tool in the 
stdlib is packaging


2/ packaging is completely mature for some parts, like the PEP 386 
implementation. And having the packaging.version module in the stdlib is 
a great step forward for standardization
The pep 376 implementation is also providing great APIs to push all 
tools to inter-operate.


If we develop this tool outside, I am afraid we will just add more 
confusion in the mix.


Can you see packaging as a set of utility at this point, rather than a 
tool that's going to replace instantly all the legacy tools ?


I am adding Guido in cc for his opinion on this

Cheers
Tarek




- C
___
Distutils-SIG maillist  -  Distutils-SIG@python.org
http://mail.python.org/mailman/listinfo/distutils-sig


___
Distutils-SIG maillist  -  Distutils-SIG@python.org

Re: [Distutils] command hooks...

2012-05-16 Thread Tarek Ziadé

On 5/16/12 5:01 AM, Alex Clark wrote:

Hi,

On 5/15/12 9:58 PM, Chris McDonough wrote:

On 05/15/2012 04:39 PM, Éric Araujo wrote:

Hi again,

Le 01/05/2012 14:28, Paul Moore a écrit :

On 1 May 2012 17:40, Chris McDonoughchr...@plope.com wrote:

Is there a PEP for the packaging package? Is there any sort of
unfinished
business I can help with?

AFAIK, there's no specific PEP for packaging (there are a number of
related PEPs, but nothing specific like a roadmap).

Yep. distutils2/packaging implement PEP 345 (Metadata 1.2), 376
(dist-info directory a.k.a. installation database) and 386 (version
numbers), and also the older Metadata PEPs like distutils, but there 
was
no PEP to discuss inclusion of d2 in Python 3.3: it just happened 
when a

core developer (Martin von Löwis) indicated he was opposed to work on
features (to add support for PEP 384 — Stable ABI for example) outside
of the Python repository. I think that no PEP was asked by anyone
because distutils2 is forked from code already in the stdlib and it
implements accepted PEPs. There are small and big features added or in
progress, many of them inspired by setuptools, that don’t have a PEP
though.

As I said on my other reply there is no friendly list of issues or
roadmap, only unsorted bugs and what’s in my mind.


OK. Is there a way for me to take a look at the unsorted bugs?


I'm sure Éric can give you much better pointers on what would be
useful, but one issue I've tried to raise a few times, and more
recently Jim Fulton raised here
(http://mail.python.org/pipermail/distutils-sig/2012-March/018323.html) 


is that of binary distribution support in packaging2. I've never had
the time to shepherd a proposal through beyond the initial debate
stage, and I know it's not getting high on Éric's list of priorities,
but it would be good to see some movement on this.

Indeed, in private email with Paul I agreed on the importance of a
binary distribution format and did a pre-publication review of his PEP,
but we did not finish our discussion nor incorporated the alternate
proposal that was discussed at PyCon and on the mailing list (which
makes it hard to see a clear picture — PEPs are good :)

It seems unlikely that this hard topic can be solved for Python 3.3 /
distutils2 1.0; what can be done however is to make sure that the
extensibility hooks in d2 are well tested and documented so that when a
bdist PEP reaches agreement and is implemented, a simple pysetup call
and two lines of config will be all it takes to be able to use the new
command.

I know that the situation is far from ideal, and far from our goals for
3.3, but anyway d2 was never intended as a full replacement for
setuptools and pip (more on that in an upcoming reply to another of 
your

messages when you listed the setuptools features used by Pyramid). I
think packaging in Python 3.3 will be a first version put in the stdlib
to gather feedback and reports, not a finished stable product.


I really don't want to add stop energy here, and I'm more than willing
to row to get something going, but I'm afraid if that's the diagnosis,
it means I'll personally have to oppose the inclusion of packaging in
3.3. We currently already have at least 3 competing solutions
(setuptools, distribute, and distutils itself), and people are baffled
about which to use and how to use it. Adding two more (packaging and
distutils2) which are similarly semi-documented and which don't even
solve the problems that the previous ones do would serve no purpose, and
baking them into Python itself will mean they can't evolve in important
ways. I'd suggest we just put the brakes on and slate something better
for 3.4. Does that make sense, or does that make people sad?



+1. I think that makes sense. I'd be willing to work on something if I 
felt like I understood what was going on, which I don't. For example, 
distribute's goal seems very clear: provide a well-maintained and 
frequently-released setuptools. It would make sense (to me) to include 
distribute in a future release of Python, to close the loop of the 
non-std-lib-packaging-lib-built-on-top-distutils-but-never-included-in-the-stdlib-situation. 


This will never happen because Distribute's goal was 1/ to allow us to 
fix some bugs in setuptools and 2/ set some bridges for packaging 
adoption. But the final goal is to let it die where it is.




But IIUC, it's too convoluted to attempt such a thing, and 
distutils2/packaging was meant to provide us the freedom to break 
backwards compat, but to what end? I don't think I fully understand 
the over-arching, real-world practical goals are for packaging in 
Python 3.x (other than to provide the pysetup command, and ini-style 
configuration over setup.py.)

packaging provides two things:
- reference implementations for the PEPs we've written - that can be 
used by any tool
- a replacement for distutils-the-tool, with improvements and backward 
compatible helpers, like a way to browse packages installed by other 

Re: [Distutils] command hooks...

2012-05-16 Thread Tarek Ziadé

On 5/16/12 3:58 AM, Chris McDonough wrote:
Adding two more (packaging and distutils2) which are similarly 
semi-documented and which don't even solve the problems that the 
previous ones do would serve no purpose, and baking them into Python 
itself will mean they can't evolve in important ways.


Oh, I think I need to answer to this too since you said you wanted to 
help. Packaging is not intended to be similar to setuptools in its features.


For instance we won't provide console scripts or entry points. The first 
one because 'script' is the same feature (except there's an indirection 
and I said before we could mimic this)
The second one because we should build this kind of feature outside the 
stdlib (this is not something most people use, according to the survey I 
did back a few years ago, it's mostly zope/plone/repoze land)


I'd suggest you list what you can't do with packaging today and we 
work through that list to point which features are missing and should be 
developed *outside* the standard lib, and which ones are in packaging 
or should be


IOW: packaging should only be the common basis and provide a basic 
installer - not a full fledge tool you can use to replace the most 
advanced setuptools features. And we want it pluggable enough so people 
can build pluggable features on the top of it, like Eric explained earlier


Does that make sense ?

Cheers
Tarek

___
Distutils-SIG maillist  -  Distutils-SIG@python.org
http://mail.python.org/mailman/listinfo/distutils-sig


Re: [Distutils] command hooks...

2012-05-16 Thread Donald Stufft
I think the biggest thing missing wrt to command hooks is the ability  
to have the tool automatically generate a OS specific wrapper (.exe for
windows, extension less with a shebang for *NIX). While I think it would
be useful for this feature to live in std lib, I don't think it's near as 
required
as getting the core of packaging into stdlib.

Attempting to create packaging as outside of stdlib brings up images
of http://xkcd.com/927/, and to me the only thing prevent packaging
from just being another standard is the Blessing that comes with
being in stdlib.


On Wednesday, May 16, 2012 at 2:55 AM, Tarek Ziadé wrote:

 On 5/16/12 3:58 AM, Chris McDonough wrote:
  Adding two more (packaging and distutils2) which are similarly  
  semi-documented and which don't even solve the problems that the  
  previous ones do would serve no purpose, and baking them into Python  
  itself will mean they can't evolve in important ways.
   
  
  
 Oh, I think I need to answer to this too since you said you wanted to  
 help. Packaging is not intended to be similar to setuptools in its features.
  
 For instance we won't provide console scripts or entry points. The first  
 one because 'script' is the same feature (except there's an indirection  
 and I said before we could mimic this)
 The second one because we should build this kind of feature outside the  
 stdlib (this is not something most people use, according to the survey I  
 did back a few years ago, it's mostly zope/plone/repoze land)
  
 I'd suggest you list what you can't do with packaging today and we  
 work through that list to point which features are missing and should be  
 developed *outside* the standard lib, and which ones are in packaging  
 or should be
  
 IOW: packaging should only be the common basis and provide a basic  
 installer - not a full fledge tool you can use to replace the most  
 advanced setuptools features. And we want it pluggable enough so people  
 can build pluggable features on the top of it, like Eric explained earlier
  
 Does that make sense ?
  
 Cheers
 Tarek
  
 ___
 Distutils-SIG maillist - Distutils-SIG@python.org 
 (mailto:Distutils-SIG@python.org)
 http://mail.python.org/mailman/listinfo/distutils-sig
  
  


___
Distutils-SIG maillist  -  Distutils-SIG@python.org
http://mail.python.org/mailman/listinfo/distutils-sig


Re: [Distutils] command hooks...

2012-05-16 Thread Paul Moore
On 16 May 2012 07:55, Tarek Ziadé ta...@ziade.org wrote:

 I'd suggest you list what you can't do with packaging today and we work
 through that list to point which features are missing and should be
 developed *outside* the standard lib, and which ones are in packaging or
 should be

This would be a very good step - but rather than simply getting
responses in the mailing list, can I suggest that we need some sort of
central location where the features still outstanding for packaging
can be tracked. Call it a roadmap if you like. Maybe it should be a
PEP - simply because I can't think of a better place to put it, but
I'm open to suggestions (I don't think the bug tracker is the right
place, fwiw).

At the moment, the biggest issue I see is that there are lots of
discussions about what people believe is missing, but nothing clearly
documenting what's intended to be there (and what is not - for
example, your comment about entry points).

As a starter, my key missing requirement is support for binary
distributions - whether this is a new universal format, or whether
it is reusing the bdist_wininst/bdist_msi formats, I don't really
care, but it needs to be formalised with a migration path, backward
compatibility support considered, etc.

 IOW: packaging should only be the common basis and provide a basic installer
 - not a full fledge tool you can use to replace the most advanced setuptools
 features. And we want it pluggable enough so people can build pluggable
 features on the top of it, like Eric explained earlier

 Does that make sense ?

I would assume as a first guess that it should replace all of
distutils, though? Ideally there should be no reason for people to use
distutils for anything once packaging is available - am I right?

Paul.
___
Distutils-SIG maillist  -  Distutils-SIG@python.org
http://mail.python.org/mailman/listinfo/distutils-sig


Re: [Distutils] command hooks...

2012-05-16 Thread Tarek Ziadé

On 5/16/12 9:40 AM, Paul Moore wrote:

On 16 May 2012 07:55, Tarek Ziadéta...@ziade.org  wrote:


I'd suggest you list what you can't do with packaging today and we work
through that list to point which features are missing and should be
developed *outside* the standard lib, and which ones are in packaging or
should be

This would be a very good step - but rather than simply getting
responses in the mailing list, can I suggest that we need some sort of
central location where the features still outstanding for packaging
can be tracked. Call it a roadmap if you like. Maybe it should be a
PEP - simply because I can't think of a better place to put it, but
I'm open to suggestions (I don't think the bug tracker is the right
place, fwiw).
A wiki page sounds good, as long as each point turns into a bug at some 
point




At the moment, the biggest issue I see is that there are lots of
discussions about what people believe is missing, but nothing clearly
documenting what's intended to be there (and what is not - for
example, your comment about entry points).

As a starter, my key missing requirement is support for binary
distributions - whether this is a new universal format, or whether
it is reusing the bdist_wininst/bdist_msi formats, I don't really
care, but it needs to be formalised with a migration path, backward
compatibility support considered, etc.


Do you feel like you could start the windows story section on that wiki 
page ?





IOW: packaging should only be the common basis and provide a basic installer
- not a full fledge tool you can use to replace the most advanced setuptools
features. And we want it pluggable enough so people can build pluggable
features on the top of it, like Eric explained earlier

Does that make sense ?

I would assume as a first guess that it should replace all of
distutils, though? Ideally there should be no reason for people to use
distutils for anything once packaging is available - am I right?

It does replace all distutils since it's a fork of it.

The parts that is missing on purpose is bdist_rpm because we want 
anything RPM-related to
be dealt outside the stdlib : there's a whole gap between how 
rhel/fedora guys do their packaging
and what we offer with bdist_rpm, which seems to be perfect for... red 
hat 4 ?


FWIW I have started the pypi2rpm project to group tools for RPM-izing 
python projects.


Windows binaries were kept because it seems easy and feasible to 
maintain those from the stdlib --
but they still smell like old stuff because we don't have a Mr Windows 
in the distutils project.


It was mostly Martin doing the legit work to make it work, and a couple 
of other people (forgive

me if I forget someone)

So... the windows binary story will improve if we get a champion for this.

Cheers
Tarek

___
Distutils-SIG maillist  -  Distutils-SIG@python.org
http://mail.python.org/mailman/listinfo/distutils-sig


Re: [Distutils] command hooks...

2012-05-16 Thread Paul Moore
On 16 May 2012 08:49, Tarek Ziadé ta...@ziade.org wrote:
 On 5/16/12 9:40 AM, Paul Moore wrote:
 This would be a very good step - but rather than simply getting
 responses in the mailing list, can I suggest that we need some sort of
 central location where the features still outstanding for packaging
 can be tracked. Call it a roadmap if you like. Maybe it should be a
 PEP - simply because I can't think of a better place to put it, but
 I'm open to suggestions (I don't think the bug tracker is the right
 place, fwiw).

 A wiki page sounds good, as long as each point turns into a bug at some
 point

That sounds reasonable, I guess. As long as it's easy for people to find.

 As a starter, my key missing requirement is support for binary
 distributions - whether this is a new universal format, or whether
 it is reusing the bdist_wininst/bdist_msi formats, I don't really
 care, but it needs to be formalised with a migration path, backward
 compatibility support considered, etc.

 Do you feel like you could start the windows story section on that wiki page
 ?

I'm happy to summarise this on there. Let me know a link to the wiki
page. But 2 points:

1. Binary distributions is *not* a Windows issue. I originally pitched
it as such, because that's where I care, but other people chimed in
with an interest from a non-Windows POV. I can't comment on those
requirements, though. And part of the problem is getting someone to
make a unified statement. I drafted a PEP based around this, but Éric
wanted to have a think about it, and it stalled. We also had other
suggestions from Jim Fulton and Vinay Sanjip on various lists. So
someone needs to take a lead on unifying all this.

2. The main Windows issue is that there are still a lot of bugs.
Whenever I test stuff, I usually find myself hitting one or two bugs,
often existing ones (I don't often get to report new bugs :-)) and
then I'm stuck, unless I fix those bugs, which I often can't (or don't
have the time to). So my efforts stall. I'll have another try at using
packaging in the 3.3a2 release and see what the picture looks like
now. (Note - my key use case at the moment is pysetup install stuff
from pypi, I'm not writing my own packages, so it's the backward
compatibility with existing distutils-based packages that I'll be
testing, and which is key for me).

 Windows binaries were kept because it seems easy and feasible to maintain
 those from the stdlib --
 but they still smell like old stuff because we don't have a Mr Windows in
 the distutils project.

 It was mostly Martin doing the legit work to make it work, and a couple of
 other people (forgive
 me if I forget someone)

 So... the windows binary story will improve if we get a champion for this.

Agreed. Unfortunately, I don't have the time to be such a champion.
But nevertheless, the current story with
distutils/setuptools/distribute on Windows is perfectly fine, so
unless packaging can get to that standard, I can't honestly suggest to
people that they should switch over. It's a high bar to reach
(particularly with such limited Windows expertise available) but
necessary, IMO.

Paul.
___
Distutils-SIG maillist  -  Distutils-SIG@python.org
http://mail.python.org/mailman/listinfo/distutils-sig


Re: [Distutils] command hooks...

2012-05-16 Thread Tarek Ziadé

Taking off Guido, I don't think he needs to be in the whole thread

On 5/16/12 10:30 AM, Paul Moore wrote:
I'm happy to summarise this on there. Let me know a link to the wiki 
page. 

I created http://wiki.python.org/moin/Packaging/Roadmap



But 2 points:

1. Binary distributions is *not* a Windows issue. I originally pitched
it as such, because that's where I care, but other people chimed in
with an interest from a non-Windows POV. I can't comment on those
requirements, though. And part of the problem is getting someone to
make a unified statement. I drafted a PEP based around this, but Éric
wanted to have a think about it, and it stalled. We also had other
suggestions from Jim Fulton and Vinay Sanjip on various lists. So
someone needs to take a lead on unifying all this.
Yeah definitely agreed. Although it impacts windows the most because 
it's easier on other platform

to deal with source archives.



2. The main Windows issue is that there are still a lot of bugs.
Whenever I test stuff, I usually find myself hitting one or two bugs,
often existing ones (I don't often get to report new bugs :-)) and
then I'm stuck, unless I fix those bugs, which I often can't (or don't
have the time to). So my efforts stall.


Yeah. And those bugs where in Distutils. What I mean is that Packaging 
has not improved much in this corner of distutils,
but has not made it worse, and the tools are still accessible under the 
new version.



  I'll have another try at using
packaging in the 3.3a2 release and see what the picture looks like
now. (Note - my key use case at the moment is pysetup install stuff
from pypi, I'm not writing my own packages, so it's the backward
compatibility with existing distutils-based packages that I'll be
testing, and which is key for me).

Ok thanks



Windows binaries were kept because it seems easy and feasible to maintain
those from the stdlib --
but they still smell like old stuff because we don't have a Mr Windows in
the distutils project.

It was mostly Martin doing the legit work to make it work, and a couple of
other people (forgive
me if I forget someone)

So... the windows binary story will improve if we get a champion for this.

Agreed. Unfortunately, I don't have the time to be such a champion.
But nevertheless, the current story with
distutils/setuptools/distribute on Windows is perfectly fine, so
unless packaging can get to that standard, I can't honestly suggest to
people that they should switch over. It's a high bar to reach
(particularly with such limited Windows expertise available) but
necessary, IMO.
Definitely ! I am afraid the scope is so wide that it's impossible to 
address all problems for v1


Another part were we lack a champion: compilers




Paul.


___
Distutils-SIG maillist  -  Distutils-SIG@python.org
http://mail.python.org/mailman/listinfo/distutils-sig


Re: [Distutils] command hooks...

2012-05-16 Thread Jim Fulton
On Wed, May 16, 2012 at 2:55 AM, Tarek Ziadé ta...@ziade.org wrote:
 On 5/16/12 3:58 AM, Chris McDonough wrote:

 Adding two more (packaging and distutils2) which are similarly
 semi-documented and which don't even solve the problems that the previous
 ones do would serve no purpose, and baking them into Python itself will mean
 they can't evolve in important ways.


 Oh, I think I need to answer to this too since you said you wanted to help.
 Packaging is not intended to be similar to setuptools in its features.

 For instance we won't provide console scripts or entry points. The first one
 because 'script' is the same feature (except there's an indirection and I
 said before we could mimic this)

I don't know what this means.  Will we have something
functionally-equivalent to console-scripts?  Or will we have something
more similar to the old distutils scripts functionality.  If the
later, then I doubt that packaging will work well with buildout.

Jim
___
Distutils-SIG maillist  -  Distutils-SIG@python.org
http://mail.python.org/mailman/listinfo/distutils-sig


Re: [Distutils] command hooks...

2012-05-16 Thread Tarek Ziadé

On 5/16/12 3:19 PM, Jim Fulton wrote:

On Wed, May 16, 2012 at 2:55 AM, Tarek Ziadéta...@ziade.org  wrote:

On 5/16/12 3:58 AM, Chris McDonough wrote:

Adding two more (packaging and distutils2) which are similarly
semi-documented and which don't even solve the problems that the previous
ones do would serve no purpose, and baking them into Python itself will mean
they can't evolve in important ways.


Oh, I think I need to answer to this too since you said you wanted to help.
Packaging is not intended to be similar to setuptools in its features.

For instance we won't provide console scripts or entry points. The first one
because 'script' is the same feature (except there's an indirection and I
said before we could mimic this)

I don't know what this means.  Will we have something
functionally-equivalent to console-scripts?  Or will we have something
more similar to the old distutils scripts functionality.  If the
later, then I doubt that packaging will work well with buildout.


Please explain us exactly what you mean with this feature.

What we want to have in packaging is the old distutils srcipt feature, 
with an extra option:
a way to point a callable instead of a module, and then a wrapper like 
setuptools does.


If you need something else, please explain what it is.

(there's no need to declare an entry point and iterate over all 
projects, just to find back a

 callable to run your script, right? you can just... import the callable)




Jim


___
Distutils-SIG maillist  -  Distutils-SIG@python.org
http://mail.python.org/mailman/listinfo/distutils-sig


Re: [Distutils] command hooks...

2012-05-16 Thread Jim Fulton
On Wed, May 16, 2012 at 9:26 AM, Tarek Ziadé ta...@ziade.org wrote:
 On 5/16/12 3:19 PM, Jim Fulton wrote:

 On Wed, May 16, 2012 at 2:55 AM, Tarek Ziadéta...@ziade.org  wrote:

 On 5/16/12 3:58 AM, Chris McDonough wrote:

 Adding two more (packaging and distutils2) which are similarly
 semi-documented and which don't even solve the problems that the
 previous
 ones do would serve no purpose, and baking them into Python itself will
 mean
 they can't evolve in important ways.


 Oh, I think I need to answer to this too since you said you wanted to
 help.
 Packaging is not intended to be similar to setuptools in its features.

 For instance we won't provide console scripts or entry points. The first
 one
 because 'script' is the same feature (except there's an indirection and I
 said before we could mimic this)

 I don't know what this means.  Will we have something
 functionally-equivalent to console-scripts?  Or will we have something
 more similar to the old distutils scripts functionality.  If the
 later, then I doubt that packaging will work well with buildout.


 Please explain us exactly what you mean with this feature.

 What we want to have in packaging is the old distutils srcipt feature, with
 an extra option:
 a way to point a callable instead of a module, and then a wrapper like
 setuptools does.

That's exactly what buildout needs.

Jim

-- 
Jim Fulton
http://www.linkedin.com/in/jimfulton
Jerky is better than bacon! http://www.dublinstore.com/
___
Distutils-SIG maillist  -  Distutils-SIG@python.org
http://mail.python.org/mailman/listinfo/distutils-sig


Re: [Distutils] command hooks...

2012-05-16 Thread Chris McDonough

On 05/16/2012 02:35 AM, Tarek Ziadé wrote:

I know the idea of having packaging in the stdlib is something some
people disliked, from day 1. And if I recall correctly, you did not like
this either back then.


I've always been pro-stdlib-contains-a-package-installer-and-machinery, 
and I still am.



I am -1 on for two reasons:

1/ your argument about people being baffled about which tool to use will
be worse if we work outside the stdlib. Having packaging in the stdlib
and distutils frozen here, leads the path: hey, the next tool in the
stdlib is packaging


It's fine to develop it inside the stdlib.  It's harder to think about 
releasing it in 3.3 though without good docs.  Do you think we have 
enough time to document it and define its scope and limitations and 
future plans in written form before 3.3beta1 ships?



2/ packaging is completely mature for some parts, like the PEP 386
implementation. And having the packaging.version module in the stdlib is
a great step forward for standardization
The pep 376 implementation is also providing great APIs to push all
tools to inter-operate.


That's good to know.


If we develop this tool outside, I am afraid we will just add more
confusion in the mix.

Can you see packaging as a set of utility at this point, rather than a
tool that's going to replace instantly all the legacy tools ?


I can.

- C
___
Distutils-SIG maillist  -  Distutils-SIG@python.org
http://mail.python.org/mailman/listinfo/distutils-sig


Re: [Distutils] command hooks...

2012-05-16 Thread Chris McDonough

On 05/16/2012 02:55 AM, Tarek Ziadé wrote:

On 5/16/12 3:58 AM, Chris McDonough wrote:

Adding two more (packaging and distutils2) which are similarly
semi-documented and which don't even solve the problems that the
previous ones do would serve no purpose, and baking them into Python
itself will mean they can't evolve in important ways.


Oh, I think I need to answer to this too since you said you wanted to
help. Packaging is not intended to be similar to setuptools in its
features.

For instance we won't provide console scripts or entry points. The first
one because 'script' is the same feature (except there's an indirection
and I said before we could mimic this)
The second one because we should build this kind of feature outside the
stdlib (this is not something most people use, according to the survey I
did back a few years ago, it's mostly zope/plone/repoze land)


I suspect many people don't really know they're using entry points when 
they are. PasteDeploy configuration files rely heavily on entry points. 
 Those are used in various ways by Pylons, Pyramid, Zope, and 
Turbogears.  (PasteDeploy itself been downloaded almost a million times 
from PyPI.)


I'm fine with needing to depend on an external package to scan for 
entrypoint-like-things registered as the result of the installation of a 
distribution.  But there will need to be a way to register 
entrypoint-like things (along the lines of arbitrary egg-info metadata) 
as the result of distribution installation using pysetup.  Maybe that 
already exists.



I'd suggest you list what you can't do with packaging today and we
work through that list to point which features are missing and should be
developed *outside* the standard lib, and which ones are in packaging
or should be


I can try.


IOW: packaging should only be the common basis and provide a basic
installer - not a full fledge tool you can use to replace the most
advanced setuptools features. And we want it pluggable enough so people
can build pluggable features on the top of it, like Eric explained earlier

Does that make sense ?


I'd like to say it does, but I'm afraid it does not.

I can see shipping both machinery and a full-fledged installer that 
handles all the use cases of existing installers.  I can also see 
shipping just machinery and no installer at all.


But I can't really see shipping both machinery and an installer that we 
know doesn't service use cases that existing installers already do.  At 
least I can't see doing that in order to service an external shipping 
deadline.


- C
___
Distutils-SIG maillist  -  Distutils-SIG@python.org
http://mail.python.org/mailman/listinfo/distutils-sig


Re: [Distutils] command hooks...

2012-05-16 Thread Mark Sienkiewicz

On 05/16/2012 02:35 AM, Tarek Ziadé wrote:


1/ your argument about people being baffled about which tool to use will be worse if we 
work outside the stdlib. Having packaging in the stdlib and distutils frozen here, leads 
the path: hey, the next tool in the stdlib is packaging


It all depends on the documentation.

If you have complete documentation that explains how to do everything I need to 
do, then I can use the new tool -- someday, when I have time to read that 
documentation, figure out how to use it, and convert my software.

If you do not have complete documentation or if your documentation does not describe some 
feature that I need, then the message to me is quite clear: Don't use this -- it 
doesn't do what you need.

If you want people to adopt this new tool someday, then you should avoid 
training everybody to think that it is incomplete and that it doesn't work.  
Don't ask everybody to look at it before it is ready.

( If this were a commercial effort, you might want to release incomplete 
software so that you can build market share against your competitors.  But in 
this case, there are no alternative suppliers who might release something any 
day now.  There are only the legacy tools. )



Can you see packaging as a set of utility at this point, rather than a tool 
that's going to replace instantly all the legacy tools ?


If it is not going to replace the legacy tools, then why should I use it?

My understanding is that the legacy tools already work, for some vague definition of 
work.  Your task is to convince me that packaging is better -- which I 
think will be hard to do if packaging is not better.

Mark S.

___
Distutils-SIG maillist  -  Distutils-SIG@python.org
http://mail.python.org/mailman/listinfo/distutils-sig


Re: [Distutils] command hooks...

2012-05-15 Thread Éric Araujo

Hi again,

Le 01/05/2012 14:28, Paul Moore a écrit :

On 1 May 2012 17:40, Chris McDonoughchr...@plope.com  wrote:

Is there a PEP for the packaging package?  Is there any sort of unfinished
business I can help with?

AFAIK, there's no specific PEP for packaging (there are a number of
related PEPs, but nothing specific like a roadmap).
Yep.  distutils2/packaging implement PEP 345 (Metadata 1.2), 376 
(dist-info directory a.k.a. installation database) and 386 (version 
numbers), and also the older Metadata PEPs like distutils, but there was 
no PEP to discuss inclusion of d2 in Python 3.3: it just happened when a 
core developer (Martin von Löwis) indicated he was opposed to work on 
features (to add support for PEP 384 — Stable ABI for example) outside 
of the Python repository.  I think that no PEP was asked by anyone 
because distutils2 is forked from code already in the stdlib and it 
implements accepted PEPs.  There are small and big features added or in 
progress, many of them inspired by setuptools, that don’t have a PEP though.


As I said on my other reply there is no friendly list of issues or 
roadmap, only unsorted bugs and what’s in my mind.



I'm sure Éric can give you much better pointers on what would be
useful, but one issue I've tried to raise a few times, and more
recently Jim Fulton raised here
(http://mail.python.org/pipermail/distutils-sig/2012-March/018323.html)
is that of binary distribution support in packaging2. I've never had
the time to shepherd a proposal through beyond the initial debate
stage, and I know it's not getting high on Éric's list of priorities,
but it would be good to see some movement on this.
Indeed, in private email with Paul I agreed on the importance of a 
binary distribution format and did a pre-publication review of his PEP, 
but we did not finish our discussion nor incorporated the alternate 
proposal that was discussed at PyCon and on the mailing list (which 
makes it hard to see a clear picture — PEPs are good :)


It seems unlikely that this hard topic can be solved for Python 3.3 / 
distutils2 1.0; what can be done however is to make sure that the 
extensibility hooks in d2 are well tested and documented so that when a 
bdist PEP reaches agreement and is implemented, a simple pysetup call 
and two lines of config will be all it takes to be able to use the new 
command.


I know that the situation is far from ideal, and far from our goals for 
3.3, but anyway d2 was never intended as a full replacement for 
setuptools and pip (more on that in an upcoming reply to another of your 
messages when you listed the setuptools features used by Pyramid).  I 
think packaging in Python 3.3 will be a first version put in the stdlib 
to gather feedback and reports, not a finished stable product.


Regards
___
Distutils-SIG maillist  -  Distutils-SIG@python.org
http://mail.python.org/mailman/listinfo/distutils-sig


Re: [Distutils] command hooks...

2012-05-15 Thread Chris McDonough

On 05/15/2012 04:39 PM, Éric Araujo wrote:

Hi again,

Le 01/05/2012 14:28, Paul Moore a écrit :

On 1 May 2012 17:40, Chris McDonoughchr...@plope.com wrote:

Is there a PEP for the packaging package? Is there any sort of
unfinished
business I can help with?

AFAIK, there's no specific PEP for packaging (there are a number of
related PEPs, but nothing specific like a roadmap).

Yep. distutils2/packaging implement PEP 345 (Metadata 1.2), 376
(dist-info directory a.k.a. installation database) and 386 (version
numbers), and also the older Metadata PEPs like distutils, but there was
no PEP to discuss inclusion of d2 in Python 3.3: it just happened when a
core developer (Martin von Löwis) indicated he was opposed to work on
features (to add support for PEP 384 — Stable ABI for example) outside
of the Python repository. I think that no PEP was asked by anyone
because distutils2 is forked from code already in the stdlib and it
implements accepted PEPs. There are small and big features added or in
progress, many of them inspired by setuptools, that don’t have a PEP
though.

As I said on my other reply there is no friendly list of issues or
roadmap, only unsorted bugs and what’s in my mind.


OK.  Is there a way for me to take a look at the unsorted bugs?


I'm sure Éric can give you much better pointers on what would be
useful, but one issue I've tried to raise a few times, and more
recently Jim Fulton raised here
(http://mail.python.org/pipermail/distutils-sig/2012-March/018323.html)
is that of binary distribution support in packaging2. I've never had
the time to shepherd a proposal through beyond the initial debate
stage, and I know it's not getting high on Éric's list of priorities,
but it would be good to see some movement on this.

Indeed, in private email with Paul I agreed on the importance of a
binary distribution format and did a pre-publication review of his PEP,
but we did not finish our discussion nor incorporated the alternate
proposal that was discussed at PyCon and on the mailing list (which
makes it hard to see a clear picture — PEPs are good :)

It seems unlikely that this hard topic can be solved for Python 3.3 /
distutils2 1.0; what can be done however is to make sure that the
extensibility hooks in d2 are well tested and documented so that when a
bdist PEP reaches agreement and is implemented, a simple pysetup call
and two lines of config will be all it takes to be able to use the new
command.

I know that the situation is far from ideal, and far from our goals for
3.3, but anyway d2 was never intended as a full replacement for
setuptools and pip (more on that in an upcoming reply to another of your
messages when you listed the setuptools features used by Pyramid). I
think packaging in Python 3.3 will be a first version put in the stdlib
to gather feedback and reports, not a finished stable product.


I really don't want to add stop energy here, and I'm more than willing 
to row to get something going, but I'm afraid if that's the diagnosis, 
it means I'll personally have to oppose the inclusion of packaging in 
3.3.  We currently already have at least 3 competing solutions 
(setuptools, distribute, and distutils itself), and people are baffled 
about which to use and how to use it.  Adding two more (packaging and 
distutils2) which are similarly semi-documented and which don't even 
solve the problems that the previous ones do would serve no purpose, and 
baking them into Python itself will mean they can't evolve in important 
ways.   I'd suggest we just put the brakes on and slate something better 
for 3.4.  Does that make sense, or does that make people sad?


- C
___
Distutils-SIG maillist  -  Distutils-SIG@python.org
http://mail.python.org/mailman/listinfo/distutils-sig


Re: [Distutils] command hooks...

2012-05-15 Thread Alex Clark

Hi,

On 5/15/12 9:58 PM, Chris McDonough wrote:

On 05/15/2012 04:39 PM, Éric Araujo wrote:

Hi again,

Le 01/05/2012 14:28, Paul Moore a écrit :

On 1 May 2012 17:40, Chris McDonoughchr...@plope.com wrote:

Is there a PEP for the packaging package? Is there any sort of
unfinished
business I can help with?

AFAIK, there's no specific PEP for packaging (there are a number of
related PEPs, but nothing specific like a roadmap).

Yep. distutils2/packaging implement PEP 345 (Metadata 1.2), 376
(dist-info directory a.k.a. installation database) and 386 (version
numbers), and also the older Metadata PEPs like distutils, but there was
no PEP to discuss inclusion of d2 in Python 3.3: it just happened when a
core developer (Martin von Löwis) indicated he was opposed to work on
features (to add support for PEP 384 — Stable ABI for example) outside
of the Python repository. I think that no PEP was asked by anyone
because distutils2 is forked from code already in the stdlib and it
implements accepted PEPs. There are small and big features added or in
progress, many of them inspired by setuptools, that don’t have a PEP
though.

As I said on my other reply there is no friendly list of issues or
roadmap, only unsorted bugs and what’s in my mind.


OK. Is there a way for me to take a look at the unsorted bugs?


I'm sure Éric can give you much better pointers on what would be
useful, but one issue I've tried to raise a few times, and more
recently Jim Fulton raised here
(http://mail.python.org/pipermail/distutils-sig/2012-March/018323.html)
is that of binary distribution support in packaging2. I've never had
the time to shepherd a proposal through beyond the initial debate
stage, and I know it's not getting high on Éric's list of priorities,
but it would be good to see some movement on this.

Indeed, in private email with Paul I agreed on the importance of a
binary distribution format and did a pre-publication review of his PEP,
but we did not finish our discussion nor incorporated the alternate
proposal that was discussed at PyCon and on the mailing list (which
makes it hard to see a clear picture — PEPs are good :)

It seems unlikely that this hard topic can be solved for Python 3.3 /
distutils2 1.0; what can be done however is to make sure that the
extensibility hooks in d2 are well tested and documented so that when a
bdist PEP reaches agreement and is implemented, a simple pysetup call
and two lines of config will be all it takes to be able to use the new
command.

I know that the situation is far from ideal, and far from our goals for
3.3, but anyway d2 was never intended as a full replacement for
setuptools and pip (more on that in an upcoming reply to another of your
messages when you listed the setuptools features used by Pyramid). I
think packaging in Python 3.3 will be a first version put in the stdlib
to gather feedback and reports, not a finished stable product.


I really don't want to add stop energy here, and I'm more than willing
to row to get something going, but I'm afraid if that's the diagnosis,
it means I'll personally have to oppose the inclusion of packaging in
3.3. We currently already have at least 3 competing solutions
(setuptools, distribute, and distutils itself), and people are baffled
about which to use and how to use it. Adding two more (packaging and
distutils2) which are similarly semi-documented and which don't even
solve the problems that the previous ones do would serve no purpose, and
baking them into Python itself will mean they can't evolve in important
ways. I'd suggest we just put the brakes on and slate something better
for 3.4. Does that make sense, or does that make people sad?



+1. I think that makes sense. I'd be willing to work on something if I 
felt like I understood what was going on, which I don't. For example, 
distribute's goal seems very clear: provide a well-maintained and 
frequently-released setuptools. It would make sense (to me) to include 
distribute in a future release of Python, to close the loop of the 
non-std-lib-packaging-lib-built-on-top-distutils-but-never-included-in-the-stdlib-situation. 
But IIUC, it's too convoluted to attempt such a thing, and 
distutils2/packaging was meant to provide us the freedom to break 
backwards compat, but to what end? I don't think I fully understand the 
over-arching, real-world practical goals are for packaging in Python 3.x 
(other than to provide the pysetup command, and ini-style configuration 
over setup.py.)



Alex




- C
___
Distutils-SIG maillist - Distutils-SIG@python.org
http://mail.python.org/mailman/listinfo/distutils-sig



--
Alex Clark · http://pythonpackages.com

___
Distutils-SIG maillist  -  Distutils-SIG@python.org
http://mail.python.org/mailman/listinfo/distutils-sig


Re: [Distutils] command hooks

2012-05-09 Thread Éric Araujo

Hi Rob,


I looked all around the bug tracker to try to add a comment and a thank you
for providing it, but I could not even find a login button or if I were
even logged in...
You can log in with the small form in the sidebar on the left.  When you 
are logged in, a bug page appears as an HTML form instead of just text.



My issues that I was having regarding the command hooks is now fixed and
working perfectly for me!  I am so excited and grateful for this patch...

One of the developers had made some incredible changes, but I was not able
to even run them as I was plagued by this bug until now...  Do you know
when it will be committed into the DistUtils2-1.0 code base?
I don’t know what you are talking about :)  You had a problem, found a 
patch (for distutils2?) and it fixed it?


Cheers
___
Distutils-SIG maillist  -  Distutils-SIG@python.org
http://mail.python.org/mailman/listinfo/distutils-sig


[Distutils] command hooks

2012-05-08 Thread Rob Healey
Greetings:

I looked all around the bug tracker to try to add a comment and a thank you
for providing it, but I could not even find a login button or if I were
even logged in...

My issues that I was having regarding the command hooks is now fixed and
working perfectly for me!  I am so excited and grateful for this patch...

One of the developers had made some incredible changes, but I was not able
to even run them as I was plagued by this bug until now...  Do you know
when it will be committed into the DistUtils2-1.0 code base?

I am running Fedora Core rawhide/Fc18.x86_64, and it works wonderful for
me...

-- 
Sincerely yours,
Rob G. Healey
___
Distutils-SIG maillist  -  Distutils-SIG@python.org
http://mail.python.org/mailman/listinfo/distutils-sig


Re: [Distutils] command hooks...

2012-05-01 Thread Chris McDonough

On 04/21/2012 01:51 AM, Éric Araujo wrote:

Hi again,


Is Distutils2 kind of your baby?  Simply, you are the only one working
on it!

It’s more like my foster kid.  At first there was distutils, in the
standard library since 1999.  After a few years it stopped being
actively developed, and people started to rely on undocumented behavior
and internal things.  Four years ago Tarek Ziadé became the new
maintainer for distutils and attacked the big pile of bugs and feature
requests.  He hit a barrier when his changes broke other people’s code,
so it was decided two years ago to stop adding new features or clean up
code in distutils and instead start anew in a project named distutils2,
where backward compatibility would not stall all improvement efforts.
That’s when I started contributing, as a Google Summer of Code student
and then a volunteer.  Tarek focused on distutils2 and passed on the
maintenance of distutils to me, and later I also became the maintainer
of distutils2, i.e. I reply to most bugs and make the releases.  Tarek
is still the lead of the project and weighs in for important changes.


Georg Brandl was trying to herd cats on outstanding PEPs today:

http://mail.python.org/pipermail/python-dev/2012-May/119157.html

Is there a PEP for the packaging package?  Is there any sort of 
unfinished business I can help with?


- C





I am curious as to what you mean by this statement, when I get
some spare round tuits?

That’s a wordplay from the expression “I’ll get around to it” → “I’ll
get a round tuit”.


 From the bug tracker page, this has been around for over a year!

Bugs live from a few minutes to a few years; with more than 300 bugs on
my list, I can’t get to everything at the same time.  For the last
months I’ve also been busy with paperwork and a new job.  But be sure
the bug is not forgotten; it’s one of the things that will be fixed
before distutils2 1.0 and Python 3.3.0.


I applied the diff file that was attached to the page to the current
Python-3.3.0a2, and it doesn't make a bit of difference on the
outcome...

If you read the full bug report you’ll see that this patch was already
applied and only fixes setup hooks; I said that I was working on a patch
for commands hooks but I did not upload it as it was not finished.


I also added the path to sys.path, like this:
sys.path.append(os.getcwd()) and it doesn't make a difference!

Probably because you did that in your code, but that makes no difference
because it happens after pysetup is started and tries to import your
module.  I don’t know if I’ll have time to fix this bug tomorrow, as
I’ll have mentoring to do, so no promises here.


After the upcoming Distutils2 sprint, when will the work be patched
into Distutils2?  When will we see the benefit of all the work that
will be done???

The changes from the sprint will go into the main repository
immediately, and after a short while they will get ported into packaging
in the cpython repository.  I want to release distutils2 1.0a5 soon
after the sprint.


1) http://dl.dropbox.com/u/47247655/create_setup_cfg.py
[...]
1) Will create the setup.cfg file if one is not there...?

As you’re using open('setup.cfg', 'w'), the file will be recreated each
time you run the script.  I’m not sure you need that script; why not
just create the config file once and keep it updated when you have changes?

Regards
___
Distutils-SIG maillist  -  Distutils-SIG@python.org
http://mail.python.org/mailman/listinfo/distutils-sig


___
Distutils-SIG maillist  -  Distutils-SIG@python.org
http://mail.python.org/mailman/listinfo/distutils-sig


Re: [Distutils] command hooks...

2012-05-01 Thread Paul Moore
On 1 May 2012 17:40, Chris McDonough chr...@plope.com wrote:
 Georg Brandl was trying to herd cats on outstanding PEPs today:

 http://mail.python.org/pipermail/python-dev/2012-May/119157.html

 Is there a PEP for the packaging package?  Is there any sort of unfinished
 business I can help with?

AFAIK, there's no specific PEP for packaging (there are a number of
related PEPs, but nothing specific like a roadmap).

I'm sure Éric can give you much better pointers on what would be
useful, but one issue I've tried to raise a few times, and more
recently Jim Fulton raised here
(http://mail.python.org/pipermail/distutils-sig/2012-March/018323.html)
is that of binary distribution support in packaging2. I've never had
the time to shepherd a proposal through beyond the initial debate
stage, and I know it's not getting high on Éric's list of priorities,
but it would be good to see some movement on this.

I can offer opinions, Windows testing, and assistance, but I really
don't have the time to make this happen. But I honestly believe that
unless packaging has binary distribution support, it won't get
critical mass, on Windows if nowhere else.

Just a thought - if it's where your interests lie, that would be great.
Paul.
___
Distutils-SIG maillist  -  Distutils-SIG@python.org
http://mail.python.org/mailman/listinfo/distutils-sig


Re: [Distutils] command hooks...

2012-05-01 Thread Chris McDonough

On 05/01/2012 02:28 PM, Paul Moore wrote:

On 1 May 2012 17:40, Chris McDonoughchr...@plope.com  wrote:

Georg Brandl was trying to herd cats on outstanding PEPs today:

http://mail.python.org/pipermail/python-dev/2012-May/119157.html

Is there a PEP for the packaging package?  Is there any sort of unfinished
business I can help with?


AFAIK, there's no specific PEP for packaging (there are a number of
related PEPs, but nothing specific like a roadmap).

I'm sure Éric can give you much better pointers on what would be
useful, but one issue I've tried to raise a few times, and more
recently Jim Fulton raised here
(http://mail.python.org/pipermail/distutils-sig/2012-March/018323.html)
is that of binary distribution support in packaging2. I've never had
the time to shepherd a proposal through beyond the initial debate
stage, and I know it's not getting high on Éric's list of priorities,
but it would be good to see some movement on this.

I can offer opinions, Windows testing, and assistance, but I really
don't have the time to make this happen. But I honestly believe that
unless packaging has binary distribution support, it won't get
critical mass, on Windows if nowhere else.


Yeah, it's kinda required.  We currently tell people to avoid pip 
because it doesn't support installation of binary distributions.  It's 
just too hard to document the corner cases of using both pip and 
easy_install at the same time, or telling Windows people to use 
easy_install and UNIX people to use pip, or some combination thereof.


I'm not sure if other features we (the Pylons project) make heavy use of 
like extras, console scripts, entry points, and testing hooks are 
currently supported, but if they aren't I'd be willing to help add them 
as necessary.  We wouldn't really be able to use it without this stuff, 
in any case.



Just a thought - if it's where your interests lie, that would be great.
Paul.


In a perfect world, I'd not be volunteering, but it looks like I have to 
if I want to be able to get to bitch. ;-)


- C
___
Distutils-SIG maillist  -  Distutils-SIG@python.org
http://mail.python.org/mailman/listinfo/distutils-sig


Re: [Distutils] command hooks...

2012-04-21 Thread Rob Healey
Dear Eric:

On Fri, Apr 20, 2012 at 10:51 PM, Éric Araujo mer...@netwok.org wrote:
 Hi again,

 Is Distutils2 kind of your baby?  Simply, you are the only one working on it!

 It’s more like my foster kid.  At first there was distutils, in the
 standard library since 1999.  After a few years it stopped being actively 
 developed, and people started to rely on undocumented behavior and internal 
 things.  Four years ago Tarek Ziadé became the new maintainer for distutils 
 and attacked the big pile of bugs and feature requests.  He hit a barrier 
 when his changes broke other people’s code,  so it was decided two years ago 
 to stop adding new features or clean up code in distutils and instead start 
 anew in a project named distutils2, where backward compatibility would not 
 stall all improvement efforts.  That’s when I started contributing, as a 
 Google Summer of Code student
 and then a volunteer.  Tarek focused on distutils2 and passed on the 
 maintenance of distutils to me, and later I also became the maintainer of 
 distutils2, i.e. I reply to most bugs and make the releases.  Tarek is still 
 the lead of the project and weighs in for important changes.

I understand now!  My role at gramps is something like that too in one
manner of updating the two plugins in the webreport directory,
NarrativeWeb.py and WebCal.py...

I am full owner and maintainer of my plugin, EditExifImageMetadata.py,
which allows editing and creation of metadata fields for images...
Now anyone else can also modify this plugin and also the plugins
listed above, but it mainly falls on my shoulders...


 I am curious as to what you mean by this statement, when I get some spare 
 round tuits?

 That’s a wordplay from the expression “I’ll get around to it” → “I’ll get a 
 round tuit”.

I like it...


 From the bug tracker page, this has been around for over a year!  Bugs live 
 from a few minutes to a few years; with more than 300 bugs on my list, I 
 can’t get to everything at the same time.  For the last months I’ve also 
 been busy with paperwork and a new job.  But be sure the bug is not 
 forgotten; it’s one of the things that will be fixed before distutils2 1.0 
 and Python 3.3.0.

After the sprint and you release Distutils2-1.0a5, would you also
update the version_info too?  If you import distutils2, and then
distutils2.version_info, you get a3 not a4?

 I applied the diff file that was attached to the page to the current 
 Python-3.3.0a2, and it doesn't make a bit of difference on the outcome...

Obviously, I didn't get that far in reading the bug tracker!  I will
re-download Python-3.3.0a2 and re-install it without the extra diff
file...


 If you read the full bug report you’ll see that this patch was already 
 applied and only fixes setup hooks; I said that I was working on a patch for 
 commands hooks but I did not upload it as it was not finished.

I am more than willing to do testing of the patch for you if you would
like?  Is there a way for me to get svn or git access to the
developmental version of Distutils2?

Since I am legally blind and have kidney failure, I spend a whole lot
of time at home on my computer!  It is also one extra thing that I do
at gramps is alpha and beta testing...


 I also added the path to sys.path, like this:
 sys.path.append(os.getcwd()) and it doesn't make a difference!

What would I do in Linux to add my directory to the permanent $PYTHONPATH???

 Probably because you did that in your code, but that makes no difference 
 because it happens after pysetup is started and tries to import your module.  
 I don’t know if I’ll have time to fix this bug tomorrow, as I’ll have 
 mentoring to do, so no promises here.

Is there access to the bug tracker for simply Distutils2 only?  I
would like to see it and start getting familiar with the Distutils2
code???

 After the upcoming Distutils2 sprint, when will the work be patched into 
 Distutils2?  When will we see the benefit of all the work that will be 
 done???

 The changes from the sprint will go into the main repository
 immediately, and after a short while they will get ported into packaging in 
 the cpython repository.  I want to release distutils2 1.0a5 soon after the 
 sprint.

I will certainly be looking forward to it!  Once again, I have a lot
of time on my hands, so I am willing to do alpha/ beta testing...

 1) http://dl.dropbox.com/u/47247655/create_setup_cfg.py
 [...]
 1) Will create the setup.cfg file if one is not there...?
 As you’re using open('setup.cfg', 'w'), the file will be recreated each time 
 you run the script.  I’m not sure you need that script; why not just create 
 the config file once and keep it updated when you have changes?

You are correct about, why not just update the setup.cfg file instead
of creating one each time I make changes!

Sincerely yours,
Rob G. Healey



 Regards
 ___
 Distutils-SIG maillist  -  Distutils-SIG@python.org
 

Re: [Distutils] command hooks...

2012-04-21 Thread Éric Araujo
Hi,

 After the sprint and you release Distutils2-1.0a5, would you also
 update the version_info too?  If you import distutils2, and then
 distutils2.version_info, you get a3 not a4?
I forgot to update distutils2.__version__ when I cut my first release :)
 Now I will remember it.

 I will re-download Python-3.3.0a2 and re-install it without the
 extra diff file...
Yeah, editing a real installation to test things is fragile.  Better use
a Mercurial clone that is not installed and that lets you revert
changes.  Help is found at http://docs.python.org/devguide .

 I am more than willing to do testing of the patch for you if you would
 like?  Is there a way for me to get svn or git access to the
 developmental version of Distutils2?
hg clone http://hg.python.org/distutils2
I haven’t finished my patch because I ended up fixing too many things at
once: hooks need to add the project directory to sys.path, hooks errors
should result in warnings but not stop all operation, and maybe another
bug.  I need to split that into smaller changes.

Do you have a user account on bugs.python.org?  Now that I know that
you’re willing to test things or give your opinion as a user (thanks!),
if you create an account it will makes it easy to add you to a bug
discussion.

 What would I do in Linux to add my directory to the permanent
 $PYTHONPATH???
Many ways to do that, but it is not a correct solution here.  When you
run pysetup, it should put the project directory in sys.path without the
user having to do anything (and with my patch it does).

 Is there access to the bug tracker for simply Distutils2 only?  I
 would like to see it and start getting familiar with the Distutils2
 code???
The bug tracker has categories, called components, and there is one for
d2: http://is.gd/mFZfqo .  Some of the bugs are tagged “easy” to mean
that they are good introductory bugs for people wanting to work on d2.
I also intend to write more wiki pages or blog posts to explain how the
codebase is laid out and internally works to reduce the bus factor of d2.

Best regards
___
Distutils-SIG maillist  -  Distutils-SIG@python.org
http://mail.python.org/mailman/listinfo/distutils-sig


[Distutils] command hooks...

2012-04-20 Thread Rob Healey
Greetings All:

I would like to know if anyone could help me with this problem?

Here is where you can find the files that are involved in this issue:
1) http://dl.dropbox.com/u/47247655/setup.cfg
2) http://dl.dropbox.com/u/47247655/setup_custom.py

These files are held in the public folder of my DropBox account...
Any help that you can give to me would be greatly appreciated!

BTW, these two files are within the same directory within the same project!

Here is the error that I get:

[root@SwimmingAntelope gep-026]# pysetup run install_dist
running install_dist
setup_custom
Traceback (most recent call last):
  File /usr/lib/python2.7/site-packages/distutils2/run.py, line 651, in main
return dispatcher()
  File /usr/lib/python2.7/site-packages/distutils2/run.py, line 639,
in __call__
return func(self, self.args)
  File /usr/lib/python2.7/site-packages/distutils2/run.py, line 91, in wrapper
return f(*args, **kwargs)
  File /usr/lib/python2.7/site-packages/distutils2/run.py, line 285, in _run
dist.run_command(cmd, dispatcher.command_options[cmd])
  File /usr/lib/python2.7/site-packages/distutils2/dist.py, line
709, in run_command
cmd_obj.run()
  File /usr/lib/python2.7/site-packages/distutils2/command/install_dist.py,
line 509, in run
self.run_command('build')
  File /usr/lib/python2.7/site-packages/distutils2/command/cmd.py,
line 330, in run_command
self.distribution.run_command(command)
  File /usr/lib/python2.7/site-packages/distutils2/dist.py, line
707, in run_command
self.run_command_hooks(cmd_obj, 'pre_hook')
  File /usr/lib/python2.7/site-packages/distutils2/dist.py, line
732, in run_command_hooks
raise PackagingModuleError(e)
PackagingModuleError: setup_custom


-- 
Sincerely yours,
Rob G. Healey
___
Distutils-SIG maillist  -  Distutils-SIG@python.org
http://mail.python.org/mailman/listinfo/distutils-sig


Re: [Distutils] command hooks...

2012-04-20 Thread Éric Araujo
Good evening,

 BTW, these two files are within the same directory within the same project!
 Here is the error that I get:
 [...]
 PackagingModuleError: setup_custom

This looks like http://bugs.python.org/issue11637
The project directory needs to be added to sys.path when running command
hooks.  I have a patch in progress and will commit it when I get some
spare round tuits.

Thank you for testing and sending feedback!

Regards
___
Distutils-SIG maillist  -  Distutils-SIG@python.org
http://mail.python.org/mailman/listinfo/distutils-sig


Re: [Distutils] command hooks...

2012-04-20 Thread Rob Healey
Dear Eric:

Is Distutils2 kind of your baby?  Simply, you are the only one working
on it!  I am curious as to what you mean by this statement, when I get
some spare round tuits?

From the bug tracker page, this has been around for over a year!  I
applied the diff file that was attached to the page to the current
Python-3.3.0a2, and it doesn't make a bit of difference on the
outcome...

I also added the path to sys.path, like this:
sys.path.append(os.getcwd()) and it doesn't make a difference!

After the upcoming Distutils2 sprint, when will the work be patched
into Distutils2?  When will we see the benefit of all the work that
will be done???

1) http://dl.dropbox.com/u/47247655/create_setup_cfg.py
2) http://dl.dropbox.com/u/47247655/setup_custom.py
3) http://dl.dropbox.com/u/47247655/setup.cfg

1) Will create the setup.cfg file if one is not there...?

The rest, you know about already...  I have updated 2 and 3 and
uploaded the new ones...

Sincerely yours,
Rob G. Healey



On Fri, Apr 20, 2012 at 5:32 PM, Éric Araujo mer...@netwok.org wrote:
 Good evening,

 BTW, these two files are within the same directory within the same project!
 Here is the error that I get:
 [...]
 PackagingModuleError: setup_custom

 This looks like http://bugs.python.org/issue11637
 The project directory needs to be added to sys.path when running command
 hooks.  I have a patch in progress and will commit it when I get some
 spare round tuits.

 Thank you for testing and sending feedback!

 Regards
 ___
 Distutils-SIG maillist  -  Distutils-SIG@python.org
 http://mail.python.org/mailman/listinfo/distutils-sig



-- 
Sincerely yours,
Rob G. Healey
___
Distutils-SIG maillist  -  Distutils-SIG@python.org
http://mail.python.org/mailman/listinfo/distutils-sig


Re: [Distutils] command hooks...

2012-04-20 Thread Éric Araujo
Hi again,

 Is Distutils2 kind of your baby?  Simply, you are the only one working
 on it!
It’s more like my foster kid.  At first there was distutils, in the
standard library since 1999.  After a few years it stopped being
actively developed, and people started to rely on undocumented behavior
and internal things.  Four years ago Tarek Ziadé became the new
maintainer for distutils and attacked the big pile of bugs and feature
requests.  He hit a barrier when his changes broke other people’s code,
so it was decided two years ago to stop adding new features or clean up
code in distutils and instead start anew in a project named distutils2,
where backward compatibility would not stall all improvement efforts.
That’s when I started contributing, as a Google Summer of Code student
and then a volunteer.  Tarek focused on distutils2 and passed on the
maintenance of distutils to me, and later I also became the maintainer
of distutils2, i.e. I reply to most bugs and make the releases.  Tarek
is still the lead of the project and weighs in for important changes.

 I am curious as to what you mean by this statement, when I get
 some spare round tuits?
That’s a wordplay from the expression “I’ll get around to it” → “I’ll
get a round tuit”.

 From the bug tracker page, this has been around for over a year!
Bugs live from a few minutes to a few years; with more than 300 bugs on
my list, I can’t get to everything at the same time.  For the last
months I’ve also been busy with paperwork and a new job.  But be sure
the bug is not forgotten; it’s one of the things that will be fixed
before distutils2 1.0 and Python 3.3.0.

 I applied the diff file that was attached to the page to the current
 Python-3.3.0a2, and it doesn't make a bit of difference on the
 outcome...
If you read the full bug report you’ll see that this patch was already
applied and only fixes setup hooks; I said that I was working on a patch
for commands hooks but I did not upload it as it was not finished.

 I also added the path to sys.path, like this:
 sys.path.append(os.getcwd()) and it doesn't make a difference!
Probably because you did that in your code, but that makes no difference
because it happens after pysetup is started and tries to import your
module.  I don’t know if I’ll have time to fix this bug tomorrow, as
I’ll have mentoring to do, so no promises here.

 After the upcoming Distutils2 sprint, when will the work be patched
 into Distutils2?  When will we see the benefit of all the work that
 will be done???
The changes from the sprint will go into the main repository
immediately, and after a short while they will get ported into packaging
in the cpython repository.  I want to release distutils2 1.0a5 soon
after the sprint.

 1) http://dl.dropbox.com/u/47247655/create_setup_cfg.py
 [...]
 1) Will create the setup.cfg file if one is not there...?
As you’re using open('setup.cfg', 'w'), the file will be recreated each
time you run the script.  I’m not sure you need that script; why not
just create the config file once and keep it updated when you have changes?

Regards
___
Distutils-SIG maillist  -  Distutils-SIG@python.org
http://mail.python.org/mailman/listinfo/distutils-sig