> On Dec 16, 2014, at 2:24 AM, anatoly techtonik <[email protected]> wrote:
> 
> On Tue, Dec 16, 2014 at 9:45 AM, Donald Stufft <[email protected]> wrote:
>>> On Dec 16, 2014, at 1:42 AM, anatoly techtonik <[email protected]> wrote:
>>> 
>>> On Tue, Dec 16, 2014 at 2:48 AM, Donald Stufft <[email protected]> wrote:
>>>>> On Dec 15, 2014, at 6:46 PM, Maurits van Rees 
>>>>> <[email protected]> wrote:
>>>>> 
>>>>> Maurits van Rees schreef op 15-12-14 23:50:
>>>>>> TMP2/setuptools-8.0.4-py2.7.egg/pkg_resources.py:2425: RuntimeWarning:
>>>>>> 'zc.buildout-2.3.0 ()' is being parsed as a legacy, non PEP 440,
>>>>>> version. You may find odd behavior and sort order. In particular it will
>>>>>> be sorted as less than 0.0. It is recommend to migrate to PEP 440
>>>>>> compatible versions.
>>>>> 
>>>>> Actually, I have configured zc.buildout to use a download-cache directory 
>>>>> where it saves downloaded zips/tarballs/eggs from PyPI. Buildout then 
>>>>> adds this directory as a find-link and setuptools calls 
>>>>> package_index.scan_url on it.  This prints the warnings, because it sees 
>>>>> for example a file
>>>>> '/Users/mauritsvanrees/cached-downloads/dist/Acquisition-2.13.8.zip'
>>>>> This gets parsed as a Distribution with project_name 'Acquisition-2.13.8' 
>>>>> and an empty version.
>>>>> 
>>>>> Ah, a demo with plain setuptools 0.8.4 is easy to setup:
>>>>> 
>>>>> $ mkdir bar
>>>>> $ touch bar/project-1.0.zip
>>>>> $ . bin/activate
>>>>> (venv) $ python
>>>>> Python 2.7.8 (default, Jul 28 2014, 10:41:45)
>>>>> [GCC 4.2.1 Compatible Apple LLVM 5.1 (clang-503.0.40)] on darwin
>>>>> Type "help", "copyright", "credits" or "license" for more information.
>>>>>>>> from setuptools import package_index
>>>>>>>> pi = package_index.PackageIndex()
>>>>>>>> pi.add_find_links(['bar'])
>>>>> /Users/mauritsvanrees/tmp/venv/lib/python2.7/site-packages/pkg_resources.py:2425:
>>>>>  RuntimeWarning: 'project-1.0 ()' is being parsed as a legacy, non PEP 
>>>>> 440, version. You may find odd behavior and sort order. In particular it 
>>>>> will be sorted as less than 0.0. It is recommend to migrate to PEP 440 
>>>>> compatible versions.
>>>>> RuntimeWarning,
>>>>>>>> 
>>>> 
>>>> Ah, this is probably an issue with how I detected a legacy version and how 
>>>> setuptools parses a filename. I can probably get rid of the warning spam.
>>> 
>>> 
>>> I'd like to opt-out from PEP440 and use semantic versioning (that is
>>> incompatible with PEP440) for my Python packages. I think
>>> pip/setuptools/whatever should not stay in the way and give authors
>>> ability to choose versioning strategy that is most suitable for their
>>> workflow.
>>> 
>>> To achieve this:
>>> 1. pip/setuptools needs to be aware of different versioning strategies
>>> 2. package needs to convey which versioning strategy it uses
>>> 3. pip/setuptools needs a documented requirement for versions semantic
>>> (what it understands about versions and how it uses them)
>>> 
>>> For example of the above - pip could document that it doesn't install
>>> development and alpha versions unless explicitly requested with
>>> command line switch, and instead of taking users to read gory details
>>> of PEP440 just mention how package may tell pip that it is alpha or
>>> development.
>>> 
>>> Previous vague attempt to request the same thing
>>> https://github.com/pypa/pip/issues/1557 (just for the history)
>>> --
>>> anatoly t.
>> 
>> It’s not going to happen, it can’t happen reasonably. Luckily though it’s
>> quite trivial for an author to adapt semver to work with PEP 440 syntax.
> 
> Or move to other distribution method than PyPI FWIW. If OpenStack
> ecosystem could be able to provide an alternative, I'd gladly switch.
> There are already too many packaging bicycles out there for dynamic
> languages - Ruby, npm, PyPI - but in fact the only difference that
> people need for server side of this stuff is distinctive design and
> URL/subdomain.

Openstack won’t be providing one, they are adapting server to PEP 440
syntax.

If you want to go elsewhere be my guest.

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

_______________________________________________
Distutils-SIG maillist  -  [email protected]
https://mail.python.org/mailman/listinfo/distutils-sig

Reply via email to