Re: [Distutils] Warehouse XMLRPC

2014-03-06 Thread Marius Gedminas
On Wed, Mar 05, 2014 at 07:01:49AM -0500, Donald Stufft wrote:
 On Mar 5, 2014, at 5:48 AM, anatoly techtonik techto...@gmail.com wrote:
  JSON-RPC is a better choice for recommended external API,
  because it doesn't rely on memory hungry and potentially unsafe
  XML libraries.
  
  On Wed, Mar 5, 2014 at 3:41 AM, Donald Stufft don...@stufft.io wrote:
  Just a quick FYI that the last missing piece (search) for XMLRPC was 
  merged in
  Warehouse today. If you have an application that depends on XMLRPC on PyPI 
  and
  you’d like to test it, please try against the url:
  
 https://pypi-preview.a.ssl.fastly.net/pypi
  
  Let me know if you find any issues, or you can file a bug at:
  
 https://github.com/pypa/warehouse
 
 XMLRPC is used in order to maintain compatibility with what is already
 there. Something better will replace it eventually and XMLRPC will be
 deprecated.

This is a bit confusing to me now.

You're reacting as if anatoly suggested a new JSON interface to
replace the legacy XML-RPC one.

But the old PyPI codebase already had a JSON API[1].  I'm using it to keep
track of Python 3 support status of about 800 packages maintained by the
Zope Foundation: http://zope3.pov.lt/py3/

  [1] https://wiki.python.org/moin/PyPIJSON

I assume at some point Warehouse will add support for the JSON API and
you'll issue a call for testing?

Marius Gedminas
-- 
The typewriter was invented by Hungarian immigrant Qwert Yuiop, who left his
signature on the keyboard.
-- Kim


signature.asc
Description: Digital signature
___
Distutils-SIG maillist  -  Distutils-SIG@python.org
https://mail.python.org/mailman/listinfo/distutils-sig


Re: [Distutils] Warehouse XMLRPC

2014-03-06 Thread anatoly techtonik
On Wed, Mar 5, 2014 at 3:01 PM, Donald Stufft don...@stufft.io wrote:

 XMLRPC is used in order to maintain compatibility with what is already there. 
 Something
 better will replace it eventually and XMLRPC will be deprecated.

Good to know that. Testing XMLRPC is a chance to port handlers to a better API,
so if something better already has some forms, or at least a ticket
- it will be nice
to get subscribed to it.

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


Re: [Distutils] Warehouse XMLRPC

2014-03-06 Thread Matthew Iversen
On 06/03/14 20:10, Marius Gedminas wrote:
 On Wed, Mar 05, 2014 at 07:01:49AM -0500, Donald Stufft wrote:
 On Mar 5, 2014, at 5:48 AM, anatoly techtonik techto...@gmail.com wrote:
 JSON-RPC is a better choice for recommended external API,
 because it doesn't rely on memory hungry and potentially unsafe
 XML libraries.

 On Wed, Mar 5, 2014 at 3:41 AM, Donald Stufft don...@stufft.io wrote:
 Just a quick FYI that the last missing piece (search) for XMLRPC was 
 merged in
 Warehouse today. If you have an application that depends on XMLRPC on PyPI 
 and
 you'd like to test it, please try against the url:

https://pypi-preview.a.ssl.fastly.net/pypi

 Let me know if you find any issues, or you can file a bug at:

https://github.com/pypa/warehouse
 XMLRPC is used in order to maintain compatibility with what is already
 there. Something better will replace it eventually and XMLRPC will be
 deprecated.
 This is a bit confusing to me now.

 You're reacting as if anatoly suggested a new JSON interface to
 replace the legacy XML-RPC one.

 But the old PyPI codebase already had a JSON API[1].  I'm using it to keep
 track of Python 3 support status of about 800 packages maintained by the
 Zope Foundation: http://zope3.pov.lt/py3/

   [1] https://wiki.python.org/moin/PyPIJSON

 I assume at some point Warehouse will add support for the JSON API and
 you'll issue a call for testing?

 Marius Gedminas


 ___
 Distutils-SIG maillist  -  Distutils-SIG@python.org
 https://mail.python.org/mailman/listinfo/distutils-sig
A JSON-RPC interface is slightly different from a normal 'RESTful
JSON' api.

PyPI currently offers some normal JSON REST resources, as well as an
XML-RPC interface.

AFAIK Anatoly was suggesting to replace XML-RPC, with JSON-RPC (not just
a JSON API, which as you mention already exists), however the former
needs to continue to exist because it is an existing feature that many
things use.

Also AFAIK, warehouse is currently in the business of gaining feature
parity with the current PyPI, after which it will be looked into if or
what new APIs will be useful to add to make better clients with.
Of course a prime candidate for that might be expanding the current
RESTful JSON api.

-- 
Matt Iversen
PGP: 0xc046e8a874522973 // 2F04 3DCC D6E6 D5AC D262  2E0B C046 E8A8 7452 2973



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


Re: [Distutils] Warehouse XMLRPC

2014-03-06 Thread Donald Stufft

On Mar 6, 2014, at 4:10 AM, Marius Gedminas mar...@pov.lt wrote:

 On Wed, Mar 05, 2014 at 07:01:49AM -0500, Donald Stufft wrote:
 On Mar 5, 2014, at 5:48 AM, anatoly techtonik techto...@gmail.com wrote:
 JSON-RPC is a better choice for recommended external API,
 because it doesn't rely on memory hungry and potentially unsafe
 XML libraries.
 
 On Wed, Mar 5, 2014 at 3:41 AM, Donald Stufft don...@stufft.io wrote:
 Just a quick FYI that the last missing piece (search) for XMLRPC was 
 merged in
 Warehouse today. If you have an application that depends on XMLRPC on PyPI 
 and
 you’d like to test it, please try against the url:
 
   https://pypi-preview.a.ssl.fastly.net/pypi
 
 Let me know if you find any issues, or you can file a bug at:
 
   https://github.com/pypa/warehouse
 
 XMLRPC is used in order to maintain compatibility with what is already
 there. Something better will replace it eventually and XMLRPC will be
 deprecated.
 
 This is a bit confusing to me now.
 
 You're reacting as if anatoly suggested a new JSON interface to
 replace the legacy XML-RPC one.

Well specifically he said JSON-RPC is better than XMLRPC which sounds like
he was disagreeing with Warehouse implementing the XMLRPC interface. If
that wasn’t the case then I misunderstood :) I don’t think an RPC interface
is really needed at all for PyPI.

 
 But the old PyPI codebase already had a JSON API[1].  I'm using it to keep
 track of Python 3 support status of about 800 packages maintained by the
 Zope Foundation: http://zope3.pov.lt/py3/
 
  [1] https://wiki.python.org/moin/PyPIJSON
 
 I assume at some point Warehouse will add support for the JSON API and
 you'll issue a call for testing?

Richard has actually already implemented it! But in testing it just now I see it
is failing on the server but isn’t locally for me so I’ll need to see why that 
is the
case.

 
 Marius Gedminas
 -- 
 The typewriter was invented by Hungarian immigrant Qwert Yuiop, who left his
 signature on the keyboard.
-- Kim
 ___
 Distutils-SIG maillist  -  Distutils-SIG@python.org
 https://mail.python.org/mailman/listinfo/distutils-sig


-
Donald Stufft
PGP: 0x6E3CBCE93372DCFA // 7C6B 7C5D 5E2B 6356 A926 F04F 6E3C BCE9 3372 DCFA



signature.asc
Description: Message signed with OpenPGP using GPGMail
___
Distutils-SIG maillist  -  Distutils-SIG@python.org
https://mail.python.org/mailman/listinfo/distutils-sig


Re: [Distutils] Warehouse XMLRPC

2014-03-06 Thread anatoly techtonik
On Thu, Mar 6, 2014 at 3:28 PM, Donald Stufft don...@stufft.io wrote:
 On Mar 6, 2014, at 4:10 AM, Marius Gedminas mar...@pov.lt wrote:
 On Wed, Mar 05, 2014 at 07:01:49AM -0500, Donald Stufft wrote:
 On Mar 5, 2014, at 5:48 AM, anatoly techtonik techto...@gmail.com wrote:
 JSON-RPC is a better choice for recommended external API,
 because it doesn't rely on memory hungry and potentially unsafe
 XML libraries.

 On Wed, Mar 5, 2014 at 3:41 AM, Donald Stufft don...@stufft.io wrote:
 Just a quick FYI that the last missing piece (search) for XMLRPC was 
 merged in
 Warehouse today. If you have an application that depends on XMLRPC on 
 PyPI and
 you’d like to test it, please try against the url:

   https://pypi-preview.a.ssl.fastly.net/pypi

 Let me know if you find any issues, or you can file a bug at:

   https://github.com/pypa/warehouse

 XMLRPC is used in order to maintain compatibility with what is already
 there. Something better will replace it eventually and XMLRPC will be
 deprecated.

 This is a bit confusing to me now.

 You're reacting as if anatoly suggested a new JSON interface to
 replace the legacy XML-RPC one.

 Well specifically he said JSON-RPC is better than XMLRPC which sounds like
 he was disagreeing with Warehouse implementing the XMLRPC interface. If
 that wasn’t the case then I misunderstood :) I don’t think an RPC interface
 is really needed at all for PyPI.

Let me clarify to avoid further speculations.
1. I forgot that PyPI exposes JSON API
2. I expressed concern that XMLRPC is promoted for integration with PyPI and
it should not, because it is ineffective

 But the old PyPI codebase already had a JSON API[1].  I'm using it to keep
 track of Python 3 support status of about 800 packages maintained by the
 Zope Foundation: http://zope3.pov.lt/py3/

  [1] https://wiki.python.org/moin/PyPIJSON

 I assume at some point Warehouse will add support for the JSON API and
 you'll issue a call for testing?

 Richard has actually already implemented it! But in testing it just now I see 
 it
 is failing on the server but isn’t locally for me so I’ll need to see why 
 that is the
 case.

So yes. Use JSON API, but test XMLRPC for compatibility is the thing I
expected to hear. =)

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


[Distutils] tourist here, with a dumb RTFM question

2014-03-06 Thread Michael Bayer
Hi Distutils !

I don’t follow this list and haven’t looked at it in a long time.   However, 
I’m learning via twitter that a brand new setuptools release that’s just gone 
out has just removed the “Feature” mechanism.

Now as you’re all rolling your eyes and preparing to bang out frustrated 
replies how this was well announced and deprecated and warned about and wow 
really didn’t you know the term paper was due today, OK first off let me say I 
am sorry!  I am not a distutils/setuptools maintainer.I am just someone 
that uses it, and as I include setuptools in my setup.py, I am also getting 
thousands of other people who download my product to use it as well.And I 
don’t read the setuptools changelog!  Or the setuptools blog.  Or this list.  I 
assume you guys have it under control (and you certainly do!).  There seem to 
be other people like me (people who write very widely used software) who also 
seem surprised!   And that is surprising too (as I am usually the only person 
to be surprised by these things that should not be surprising).  So I hope you 
can hold back your frustration with my clueless RTFMness long enough to answer 
these questions:

1. where was this announced?   I’m wondering why there weren’t loud blaring 
blog posts and tweets all over the place stating that on March 6, dozens of 
major packages are going to all break.

2. what is the plan for unmaintained packages and old versions of existing 
packages on pypi that “import Feature” and can no longer be installed?Is it 
just the case that a large amount of pypi just won’t install anymore?

3. What, if any, is the recommended approach going forward to a Python package 
that wishes to specify a command-line flag during install.  Here’s multiple 
choice:

a. you can use new setuptools API some new way to add —flags

b. you can roll it yourself in setup.py using hack X

c. your setup.py should never accept any kind of flags as that interferes 
with up-and-coming use case Q

d. other

If choice c., then here is another question.  My library includes optional C 
extensions.   On certain platforms, these C extensions don’t build (like on 
Pypy, or on Windows if you don’t have compilation tools installed).  In this 
regard it gracefully degrades.  But also, I want to be able to have a command 
line option to determine this as well.  Because!  Maybe I’m installing within a 
test suite where I need to test the entire library without the C extensions 
built.Maybe some user has found a bug in the C extensions, and that user 
needs to temporarily install the tool without the extensions built.Other 
cases for flags are, maybe your library can build with or without SSL support, 
something like that.

Keep in mind, I actually *won’t* be getting bug reports about this because my 
setup.py already gracefully degrades to distutils!  But still, I’d like to have 
my —without-cextensions flag somehow.

Thanks for listening and again I apologize for not following the setuptools 
changelog on a regular basis!


- mike




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


Re: [Distutils] tourist here, with a dumb RTFM question

2014-03-06 Thread Donald Stufft

On Mar 6, 2014, at 12:55 PM, Michael Bayer mike...@zzzcomputing.com wrote:

 Hi Distutils !
 
 I don’t follow this list and haven’t looked at it in a long time.   However, 
 I’m learning via twitter that a brand new setuptools release that’s just gone 
 out has just removed the “Feature” mechanism.
 
 Now as you’re all rolling your eyes and preparing to bang out frustrated 
 replies how this was well announced and deprecated and warned about and wow 
 really didn’t you know the term paper was due today, OK first off let me say 
 I am sorry!  I am not a distutils/setuptools maintainer.I am just someone 
 that uses it, and as I include setuptools in my setup.py, I am also getting 
 thousands of other people who download my product to use it as well.And I 
 don’t read the setuptools changelog!  Or the setuptools blog.  Or this list.  
 I assume you guys have it under control (and you certainly do!).  There seem 
 to be other people like me (people who write very widely used software) who 
 also seem surprised!   And that is surprising too (as I am usually the only 
 person to be surprised by these things that should not be surprising).  So I 
 hope you can hold back your frustration with my clueless RTFMness long enough 
 to answer these questions:
 
 1. where was this announced?   I’m wondering why there weren’t loud blaring 
 blog posts and tweets all over the place stating that on March 6, dozens of 
 major packages are going to all break.
 
 2. what is the plan for unmaintained packages and old versions of existing 
 packages on pypi that “import Feature” and can no longer be installed?Is 
 it just the case that a large amount of pypi just won’t install anymore?
 
 3. What, if any, is the recommended approach going forward to a Python 
 package that wishes to specify a command-line flag during install.  Here’s 
 multiple choice:
 
a. you can use new setuptools API some new way to add —flags
 
b. you can roll it yourself in setup.py using hack X
 
c. your setup.py should never accept any kind of flags as that interferes 
 with up-and-coming use case Q
 
d. other
 
 If choice c., then here is another question.  My library includes optional C 
 extensions.   On certain platforms, these C extensions don’t build (like on 
 Pypy, or on Windows if you don’t have compilation tools installed).  In this 
 regard it gracefully degrades.  But also, I want to be able to have a command 
 line option to determine this as well.  Because!  Maybe I’m installing within 
 a test suite where I need to test the entire library without the C extensions 
 built.Maybe some user has found a bug in the C extensions, and that user 
 needs to temporarily install the tool without the extensions built.Other 
 cases for flags are, maybe your library can build with or without SSL 
 support, something like that.
 
 Keep in mind, I actually *won’t* be getting bug reports about this because my 
 setup.py already gracefully degrades to distutils!  But still, I’d like to 
 have my —without-cextensions flag somehow.
 
 Thanks for listening and again I apologize for not following the setuptools 
 changelog on a regular basis!
 
 
 - mike
 
 
 
 
 ___
 Distutils-SIG maillist  -  Distutils-SIG@python.org
 https://mail.python.org/mailman/listinfo/distutils-sig


FWIW as the person who was mostly the responder on Twitter, I really didn’t 
mean to sound RTFM-y. I think that communicating things to users is 
*important*. I was mostly just responding to the fact it wasn’t completely out 
of the blue :)

As far as I’m aware here are the answers:

1. Setuptools changelog in Version 1.0
2. Use older versions of setuptools
3. No idea.

Please note that I’m not the setuptools maintainer and these are just what I’m 
aware of.

-
Donald Stufft
PGP: 0x6E3CBCE93372DCFA // 7C6B 7C5D 5E2B 6356 A926 F04F 6E3C BCE9 3372 DCFA



signature.asc
Description: Message signed with OpenPGP using GPGMail
___
Distutils-SIG maillist  -  Distutils-SIG@python.org
https://mail.python.org/mailman/listinfo/distutils-sig


Re: [Distutils] tourist here, with a dumb RTFM question

2014-03-06 Thread Daniel Holth
pje said:

The Feature() facility was never completely implemented or
supported, and even if it were, it should be deprecated now, as it
will not be compatible with the coming packaging systems based on PEP
426. If you need separate features, use separate distributions and
extras instead.

(The problem I discovered when I first implemented Feature is that
distutils' build system really isn't capable of having a sane
configure step, or saving that configuration. Essentially, distutils
is a little too stateless for that, but Features need it in order not
to act weird in various scenarios. Extras are basically the intended
replacement for this functionality, and Features were just kept around
to support legacy projects.)

See also

https://bitbucket.org/pypa/setuptools/issue/58

https://bitbucket.org/pypa/setuptools/issue/65

On Thu, Mar 6, 2014 at 12:55 PM, Michael Bayer mike...@zzzcomputing.com wrote:
 Hi Distutils !

 I don't follow this list and haven't looked at it in a long time.   However, 
 I'm learning via twitter that a brand new setuptools release that's just gone 
 out has just removed the Feature mechanism.

 Now as you're all rolling your eyes and preparing to bang out frustrated 
 replies how this was well announced and deprecated and warned about and wow 
 really didn't you know the term paper was due today, OK first off let me say 
 I am sorry!  I am not a distutils/setuptools maintainer.I am just someone 
 that uses it, and as I include setuptools in my setup.py, I am also getting 
 thousands of other people who download my product to use it as well.And I 
 don't read the setuptools changelog!  Or the setuptools blog.  Or this list.  
 I assume you guys have it under control (and you certainly do!).  There seem 
 to be other people like me (people who write very widely used software) who 
 also seem surprised!   And that is surprising too (as I am usually the only 
 person to be surprised by these things that should not be surprising).  So I 
 hope you can hold back your frustration with my clueless RTFMness long enough 
 to answer these questions:

 1. where was this announced?   I'm wondering why there weren't loud blaring 
 blog posts and tweets all over the place stating that on March 6, dozens of 
 major packages are going to all break.

 2. what is the plan for unmaintained packages and old versions of existing 
 packages on pypi that import Feature and can no longer be installed?Is 
 it just the case that a large amount of pypi just won't install anymore?

 3. What, if any, is the recommended approach going forward to a Python 
 package that wishes to specify a command-line flag during install.  Here's 
 multiple choice:

 a. you can use new setuptools API some new way to add --flags

 b. you can roll it yourself in setup.py using hack X

 c. your setup.py should never accept any kind of flags as that interferes 
 with up-and-coming use case Q

 d. other

 If choice c., then here is another question.  My library includes optional C 
 extensions.   On certain platforms, these C extensions don't build (like on 
 Pypy, or on Windows if you don't have compilation tools installed).  In this 
 regard it gracefully degrades.  But also, I want to be able to have a command 
 line option to determine this as well.  Because!  Maybe I'm installing within 
 a test suite where I need to test the entire library without the C extensions 
 built.Maybe some user has found a bug in the C extensions, and that user 
 needs to temporarily install the tool without the extensions built.Other 
 cases for flags are, maybe your library can build with or without SSL 
 support, something like that.

 Keep in mind, I actually *won't* be getting bug reports about this because my 
 setup.py already gracefully degrades to distutils!  But still, I'd like to 
 have my --without-cextensions flag somehow.

 Thanks for listening and again I apologize for not following the setuptools 
 changelog on a regular basis!


 - mike




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


Re: [Distutils] tourist here, with a dumb RTFM question

2014-03-06 Thread Michael Bayer

On Mar 6, 2014, at 12:55 PM, Michael Bayer mike...@zzzcomputing.com wrote:

 changelog!  Or the setuptools blog.  Or this list.  I assume you guys have it 
 under control (and you certainly do!).  There seem to be other people like me 
 (people 

please note this correction to my last email:  “I assume you guys have it under 
control” should read:  “I assume you folks have it under control”.I 
apologize for this mistake.


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


Re: [Distutils] tourist here, with a dumb RTFM question

2014-03-06 Thread Michael Bayer

On Mar 6, 2014, at 1:07 PM, Daniel Holth dho...@gmail.com wrote:

 pje said:
 
 The Feature() facility was never completely implemented or
 supported, and even if it were, it should be deprecated now, as it
 will not be compatible with the coming packaging systems based on PEP
 426. If you need separate features, use separate distributions and
 extras instead.

wait, ok this is that thing.  “separate distributions” means….


SQLAlchemy-0.9.3-nocext.tar.gz
SQLAlchemy-0.9.3-cext.tar.gz

??

I think that’s what it means.OK, not sure if I have to say this but that 
would be…OK very very unworkable.   A Python package distribution is a *source 
distribution*.  That suggests that one need to package up separate source 
distributions in order to specify an option, is… OK very very unworkable.   
(note by “very very unworkable” I mean “list of hyperboles I had to backspace 
out because that’s not why I’m here”).

If a package has three flags, now there need to be  *eight source distros*?  
Really?   On the plus side, I just used math.

how does one even maintain this in source control?  Do I have setup.py.nocext, 
setup.py.cext, maintain a copy of 99% the same code in each, then rename them 
when I do “python setup.py sdist” (since sdist doesn’t take command line 
options either!!)  ?   The suggestion is completely inappropriate.

I don’t know the metadata format in pep426 well enough to comment (as I wanted 
to use it one day and found that it seemed to still be pretty much vapor), but 
I’ll reiterate: these are source distributions, not binaries or wheels or 
anything like that.  A source distro has to build, and builds need options.
A metadata format that purports to represent metadata about a source 
distribution and does not support flags is a broken metadata format.



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


Re: [Distutils] tourist here, with a dumb RTFM question

2014-03-06 Thread Daniel Holth
It is certainly broken.

On Thu, Mar 6, 2014 at 1:37 PM, Michael Bayer mike...@zzzcomputing.com wrote:

 On Mar 6, 2014, at 1:07 PM, Daniel Holth dho...@gmail.com wrote:

 pje said:

 The Feature() facility was never completely implemented or
 supported, and even if it were, it should be deprecated now, as it
 will not be compatible with the coming packaging systems based on PEP
 426. If you need separate features, use separate distributions and
 extras instead.

 wait, ok this is that thing.  separate distributions means


 SQLAlchemy-0.9.3-nocext.tar.gz
 SQLAlchemy-0.9.3-cext.tar.gz

 ??

 I think that's what it means.OK, not sure if I have to say this but that 
 would be...OK very very unworkable.   A Python package distribution is a 
 *source distribution*.  That suggests that one need to package up separate 
 source distributions in order to specify an option, is... OK very very 
 unworkable.   (note by very very unworkable I mean list of hyperboles I 
 had to backspace out because that's not why I'm here).

 If a package has three flags, now there need to be  *eight source distros*?  
 Really?   On the plus side, I just used math.

 how does one even maintain this in source control?  Do I have 
 setup.py.nocext, setup.py.cext, maintain a copy of 99% the same code in each, 
 then rename them when I do python setup.py sdist (since sdist doesn't take 
 command line options either!!)  ?   The suggestion is completely 
 inappropriate.

 I don't know the metadata format in pep426 well enough to comment (as I 
 wanted to use it one day and found that it seemed to still be pretty much 
 vapor), but I'll reiterate: these are source distributions, not binaries or 
 wheels or anything like that.  A source distro has to build, and builds need 
 options.A metadata format that purports to represent metadata about a 
 source distribution and does not support flags is a broken metadata format.



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


Re: [Distutils] tourist here, with a dumb RTFM question

2014-03-06 Thread Vinay Sajip
Michael Bayer mike_mp at zzzcomputing.com writes:

 I don’t know the metadata format in pep426 well enough to comment (as I 
wanted to use it one day and found
 that it seemed to still be pretty much vapor), but I’ll reiterate: these 
are source distributions, not
 binaries or wheels or anything like that.  A source distro has to build, 
and builds need options.A metadata
 format that purports to represent metadata about a source distribution and 
does not support flags is a
 broken metadata format.

PEP 426 only covers installation metadata - its scope does not cover source 
distributions (there will be another PEP covering that).

Apart from the most recent changes being not yet implemented and some open 
issues relating to hooks, PEP 426 seems to cover installation metadata 
reasonably well. However, sdist metadata is a different kettle of fish.

Regards,

Vinay Sajip


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


Re: [Distutils] tourist here, with a dumb RTFM question

2014-03-06 Thread Michael Bayer

On Mar 6, 2014, at 2:59 PM, Vinay Sajip vinay_sa...@yahoo.co.uk wrote:

 Michael Bayer mike_mp at zzzcomputing.com writes:
 
 I don’t know the metadata format in pep426 well enough to comment (as I 
 wanted to use it one day and found
 that it seemed to still be pretty much vapor), but I’ll reiterate: these 
 are source distributions, not
 binaries or wheels or anything like that.  A source distro has to build, 
 and builds need options.A metadata
 format that purports to represent metadata about a source distribution and 
 does not support flags is a
 broken metadata format.
 
 PEP 426 only covers installation metadata - its scope does not cover source 
 distributions (there will be another PEP covering that).
 
 Apart from the most recent changes being not yet implemented and some open 
 issues relating to hooks, PEP 426 seems to cover installation metadata 
 reasonably well. However, sdist metadata is a different kettle of fish.

OK so why does PEP-426 compatibility imply removal of command line switches 
from setup.py files ?


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


Re: [Distutils] tourist here, with a dumb RTFM question

2014-03-06 Thread Marcus Smith
On Thu, Mar 6, 2014 at 10:37 AM, Michael Bayer mike...@zzzcomputing.comwrote:


 On Mar 6, 2014, at 1:07 PM, Daniel Holth dho...@gmail.com wrote:

  pje said:
 
  The Feature() facility was never completely implemented or
  supported, and even if it were, it should be deprecated now, as it
  will not be compatible with the coming packaging systems based on PEP
  426. If you need separate features, use separate distributions and
  extras instead.

 wait, ok this is that thing.  separate distributions means


 SQLAlchemy-0.9.3-nocext.tar.gz
 SQLAlchemy-0.9.3-cext.tar.gz


I'm new to understanding setuptools Feature myself, so don't crank too
much, if I get anything wrong.

afaik, it means something like:

SQLAlchemy-X.Y.tar.gz
SQLAlchemy-cext-X.Y.tar.gz

i.e. isolating the feature into a separate project.

and then instead of having the handy  --with-cext option,  it has to be
 pip install SQLAlchemy[SQLAlchemy-cext]

PJ, Jason: can you clarify what the alternative is supposed to look like?
___
Distutils-SIG maillist  -  Distutils-SIG@python.org
https://mail.python.org/mailman/listinfo/distutils-sig


Re: [Distutils] tourist here, with a dumb RTFM question

2014-03-06 Thread Vinay Sajip
Donald Stufft donald at stufft.io writes:

 2. Use older versions of setuptools

That's not really an answer, unless downgrading works. For example, a 
recently created venv would contain the latest setuptools, and perhaps it 
would be required by other distributions in the venv. How then would e.g. 
SQLAlchemy specify that an older setuptools version should be used? Would pip 
downgrade the venv's setuptools to an older version? Even if it did, might 
that not break other distributions in the venv?

Regards,

Vinay Sajip

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


Re: [Distutils] tourist here, with a dumb RTFM question

2014-03-06 Thread Donald Stufft


 On Mar 6, 2014, at 4:15 PM, Marcus Smith qwc...@gmail.com wrote:
 
 
 
 
 On Thu, Mar 6, 2014 at 10:37 AM, Michael Bayer mike...@zzzcomputing.com 
 wrote:
 
 On Mar 6, 2014, at 1:07 PM, Daniel Holth dho...@gmail.com wrote:
 
  pje said:
 
  The Feature() facility was never completely implemented or
  supported, and even if it were, it should be deprecated now, as it
  will not be compatible with the coming packaging systems based on PEP
  426. If you need separate features, use separate distributions and
  extras instead.
 
 wait, ok this is that thing.  “separate distributions” means….
 
 
 SQLAlchemy-0.9.3-nocext.tar.gz
 SQLAlchemy-0.9.3-cext.tar.gz
 
 I'm new to understanding setuptools Feature myself, so don't crank too 
 much, if I get anything wrong.
 
 afaik, it means something like:
 
 SQLAlchemy-X.Y.tar.gz
 SQLAlchemy-cext-X.Y.tar.gz
 
 i.e. isolating the feature into a separate project.
 
 and then instead of having the handy  --with-cext option,  it has to be  
 pip install SQLAlchemy[SQLAlchemy-cext]
 

This is my understanding as well except it inverses the default. SQLAlchemy 
wants the C exts installed unless they can't be if the user opts out. Extras 
would cause if to not be installed unless the user opts in. This is probably 
not a reasonable solution. 

One note if could just be SQLAlchemy[cext]

 PJ, Jason: can you clarify what the alternative is supposed to look like?
 
 
 ___
 Distutils-SIG maillist  -  Distutils-SIG@python.org
 https://mail.python.org/mailman/listinfo/distutils-sig
___
Distutils-SIG maillist  -  Distutils-SIG@python.org
https://mail.python.org/mailman/listinfo/distutils-sig


Re: [Distutils] tourist here, with a dumb RTFM question

2014-03-06 Thread Vinay Sajip


From:Michael Bayer mike...@zzzcomputing.com



 OK so why does PEP-426 compatibility imply removal of command line switches 
 from setup.py files ?

As far as I know, it doesn't. My distil tools complies with a fairly recent 
version of PEP 426 and AFAIK has no problem building / installing SQLAlchemy 
with / without extensions, but it uses an extended set of metadata which is not 
specified in any PEP - for example,

http://www.red-dove.com/pypi/projects/S/SQLAlchemy/package-0.9.3.json


This is just FYI - it's experimental metadata [which has some redundancy for 
historical reasons, to be tidied up in the future] and is extracted from what 
is passed to setup.py - it includes the PEP 426 metadata as a subset 
(index-metadata), and the extra stuff is needed for building. This is used by 
the distil tool, but there's no support for any specific command-line flags to 
exclude the building extensions. (That's not because of PEP compliance - it's 
just that I haven't needed that level of control in the tool.)

Regards,

Vinay Sajip___
Distutils-SIG maillist  -  Distutils-SIG@python.org
https://mail.python.org/mailman/listinfo/distutils-sig


Re: [Distutils] tourist here, with a dumb RTFM question

2014-03-06 Thread Marcus Smith


 This is my understanding as well except it inverses the default.
 SQLAlchemy wants the C exts installed unless they can't be if the user opts
 out. Extras would cause if to not be installed unless the user opts in.
 This is probably not a reasonable solution.


ok, that's odd, so there is no extras replacement for the --without-cext
scenario.
so even more important to understand from PJ/Jason the rationale of how
Feature could be removed



 One note if could just be SQLAlchemy[cext]


oh yea,  you just pass a label
___
Distutils-SIG maillist  -  Distutils-SIG@python.org
https://mail.python.org/mailman/listinfo/distutils-sig


Re: [Distutils] tourist here, with a dumb RTFM question

2014-03-06 Thread Michael Bayer

On Mar 6, 2014, at 4:35 PM, Marcus Smith qwc...@gmail.com wrote:

 
 This is my understanding as well except it inverses the default. SQLAlchemy 
 wants the C exts installed unless they can't be if the user opts out. Extras 
 would cause if to not be installed unless the user opts in. This is probably 
 not a reasonable solution. 
 
 ok, that's odd, so there is no extras replacement for the --without-cext 
 scenario.
 so even more important to understand from PJ/Jason the rationale of how 
 Feature could be removed
  
 
 One note if could just be SQLAlchemy[cext]
 
 oh yea,  you just pass a label

show me that


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

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


[Distutils] OS X and PEP 425 / wheels

2014-03-06 Thread MinRK
Hello,

I proposed a patch https://github.com/pypa/pip/pull/1465 to pip, with
respect to treatment of the platform tag on OS X, and Chris Barker proposed
that I bring the discussion here.

The situation:

PEP 425 describes the platform tag as:

The platform tag is simply distutils.util.get*platform() with all hyphens -
and periods . replaced with underscore *.

but the PEP makes no mention of what should be done on OS X. On OS X,
get_platform() has the form:

macosx_10_6_intel

where 10_6 indicates that the OS X deployment target (of Python) is 10.6,
and intel indicates that it is a fat binary with both x86_64 and i386.
Other values for the arch include ‘ppc’, ‘ppc64’, and ‘universal’, another
multi-arch tag indicating a fat binary with all four of 32/64bit intel and
ppc.

Where PEP 425 causes problems (or pip’s implementation thereof), is in
testing strict equality of this value, not taking into account the meaning
of its contents. I proposed two changes:

   1.

   Use = comparison for the deployment target

   From the OS X platform
documentationhttps://developer.apple.com/library/mac/documentation/DeveloperTools/Conceptual/cross_development/Configuring/configuring.html
   :

   Choose a deployment target. This identifies the earliest OS version on
   which your software can run.

   so a binary with deployment target = 10.6 should be installable on OS X
   = 10.6.

   This change restores the longstanding behavior of easy_install, where
   10.6 eggs are installable on = 10.6.
2.

   support multi-arch names (intel, universal) on their respective
   components
- intel is valid on {x86_64, i386}
  - universal is valid on {intel, x86_64, i386, ppc64, ppc}

   easy_install, like pip, also does strict comparison here, so this would
   be new behavior.

My actual use case:

I have a wheel (pyzmq), which works on any intel-based Python targeting OS
X = 10.6. To express this with pip-1.5, the filename has to be:

pyzmq-14.1.0-cp27-none-macosx_10_6_intel.macosx_10_6_x86_64.macosx_10_6_i386.macosx_10_7_intel.macosx_10_7_x86_64.macosx_10_7_i386.macosx_10_8_intel.macosx_10_8_x86_64.macosx_10_8_i386.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_9_i386.whl

and it has to grow every time there is a new OS release.

With both proposed changes, I could communicate the same information with
just one tag:

pyzmq-14.1.0-cp27-none-macosx_10_6_intel.whl

With just the first change, it would need three:

pyzmq-14.1.0-cp27-none-macosx_10_6_intel.macosx_10_6_x86_64.macosx_10_6_i386.whl

Any feedback from experts, especially if my understanding of deployment
targets or fat binaries is incorrect, would be much appreciated.

Thanks,

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


Re: [Distutils] OS X and PEP 425 / wheels

2014-03-06 Thread Ned Deily
In article 
cahnn8bw+ufqrfqsuszq81whm+xtheb-rp-d9na0tkttgjph...@mail.gmail.com,
 MinRK benjami...@gmail.com wrote:
 I proposed a patch https://github.com/pypa/pip/pull/1465 to pip, with
 respect to treatment of the platform tag on OS X, and Chris Barker proposed
 that I bring the discussion here.
 
 The situation:
 
 PEP 425 describes the platform tag as:
 
 The platform tag is simply distutils.util.get*platform() with all hyphens -
 and periods . replaced with underscore *.
 
 but the PEP makes no mention of what should be done on OS X. On OS X,
 get_platform() has the form:
 
 macosx_10_6_intel
 
 where 10_6 indicates that the OS X deployment target (of Python) is 10.6,
 and intel indicates that it is a fat binary with both x86_64 and i386.
 Other values for the arch include 'ppc', 'ppc64', and 'universal', another
 multi-arch tag indicating a fat binary with all four of 32/64bit intel and
 ppc.

As I commented in your pull request, the complete set of universal arch 
values is fat, intel, fat3, fat64, and universal besides the 
single arch values ppc, ppc64, i386, and x86_64.  It would be 
best if all of them were supported in pip.

 Where PEP 425 causes problems (or pip's implementation thereof), is in
 testing strict equality of this value, not taking into account the meaning
 of its contents. I proposed two changes:
 
1.
 
Use = comparison for the deployment target
 
From the OS X platform
 documentationhttps://developer.apple.com/library/mac/documentation/DeveloperT
 ools/Conceptual/cross_development/Configuring/configuring.html
:
 
Choose a deployment target. This identifies the earliest OS version on
which your software can run.
 
so a binary with deployment target = 10.6 should be installable on OS X
= 10.6.
 
This change restores the longstanding behavior of easy_install, where
10.6 eggs are installable on = 10.6.
 2.
 
support multi-arch names (intel, universal) on their respective
components
 - intel is valid on {x86_64, i386}
   - universal is valid on {intel, x86_64, i386, ppc64, ppc}
 
easy_install, like pip, also does strict comparison here, so this would
be new behavior.
[...]
 With both proposed changes, I could communicate the same information with
 just one tag:
 
 pyzmq-14.1.0-cp27-none-macosx_10_6_intel.whl

 Any feedback from experts, especially if my understanding of deployment
 targets or fat binaries is incorrect, would be much appreciated.

Thanks for actually proposing an implementation of this.  I think both 
changes should be implemented, with the proviso that all universal arch 
values are supported (for example, the fat universal arch is still 
used in current 32-bit-only python.org Pythons.  As I also noted in the 
comments, it is not a perfect solution since it doesn't cover all 
possible cases (like Unicode ABI).  That will have to wait for Metadata 
2.0.  But it does provide important usability gains for OS X users right 
now and covers the most common (by far) use cases.

-- 
 Ned Deily,
 n...@acm.org

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


Re: [Distutils] OS X and PEP 425 / wheels

2014-03-06 Thread Chris Barker
On Thu, Mar 6, 2014 at 4:27 PM, MinRK benjami...@gmail.com wrote:

 I proposed a patch https://github.com/pypa/pip/pull/1465 to pip, with
 respect to treatment of the platform tag on OS X, and Chris Barker proposed
 that I bring the discussion here.


Note -- there is some more discusion on that patch...

  The situation:

 PEP 425 describes the platform tag as:

 The platform tag is simply distutils.util.get*platform() with all hyphens
 - and periods . replaced with underscore *.

 but the PEP makes no mention of what should be done on OS X. On OS X,
 get_platform() has the form:

 macosx_10_6_intel


 .


1.
2.

support multi-arch names (intel, universal) on their respective
components
 - intel is valid on {x86_64, i386}
   - universal is valid on {intel, x86_64, i386, ppc64, ppc}

easy_install, like pip, also does strict comparison here, so this
would be new behavior.

 yup -- and easy_install was actually quite broken for binary eggs for a
universal build -- so this would be great.

though a note: universal:, as used by the python.org builds means
only  i386+ppc -- in theory once could do a quad build, but no on ever did.
Though ppc is pretty old now -- I don't think we need to worry about that
for anything future-looking anyway.

I have a wheel (pyzmq), which works on any intel-based Python targeting OS
 X = 10.6. To express this with pip-1.5, the filename has to be:


 pyzmq-14.1.0-cp27-none-macosx_10_6_intel.macosx_10_6_x86_64.macosx_10_6_i386.macosx_10_7_intel.macosx_10_7_x86_64.macosx_10_7_i386.macosx_10_8_intel.macosx_10_8_x86_64.macosx_10_8_i386.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_9_i386.whl

 and it has to grow every time there is a new OS release.

clearly no ideal!

Any feedback from experts, especially if my understanding of deployment
 targets or fat binaries is incorrect, would be much appreciated.

I'm no expert, but his looks good to me.

As pointed out in the comments on the patch, there may be some issues with
C++  extensions and building on 10.9 -- we'll have to see how that turns
out

-Chris





-- 

Christopher Barker, Ph.D.
Oceanographer

Emergency Response Division
NOAA/NOS/ORR(206) 526-6959   voice
7600 Sand Point Way NE   (206) 526-6329   fax
Seattle, WA  98115   (206) 526-6317   main reception

chris.bar...@noaa.gov
___
Distutils-SIG maillist  -  Distutils-SIG@python.org
https://mail.python.org/mailman/listinfo/distutils-sig


Re: [Distutils] Warehouse XMLRPC

2014-03-06 Thread Donald Stufft

On Mar 6, 2014, at 7:28 AM, Donald Stufft don...@stufft.io wrote:

 
 
 But the old PyPI codebase already had a JSON API[1].  I'm using it to keep
 track of Python 3 support status of about 800 packages maintained by the
 Zope Foundation: http://zope3.pov.lt/py3/
 
 [1] https://wiki.python.org/moin/PyPIJSON
 
 I assume at some point Warehouse will add support for the JSON API and
 you'll issue a call for testing?
 
 Richard has actually already implemented it! But in testing it just now I see 
 it
 is failing on the server but isn’t locally for me so I’ll need to see why 
 that is the
 case.

The JSON API is functional again and is available for testing!

-
Donald Stufft
PGP: 0x6E3CBCE93372DCFA // 7C6B 7C5D 5E2B 6356 A926 F04F 6E3C BCE9 3372 DCFA



signature.asc
Description: Message signed with OpenPGP using GPGMail
___
Distutils-SIG maillist  -  Distutils-SIG@python.org
https://mail.python.org/mailman/listinfo/distutils-sig