Policy for "Specifying Supported Versions" for Python3

2010-06-18 Thread Scott Kitterman
The version of Python Policy that was just uploaded to unstable is the first 
one that attempts to address Python3.  It is just a start and more changes are 
needed.

POX and I were just discussion this and discovered that we had been carrying 
different assumptions about how packages would be expressing what versions they 
support.

Today (since python3-defaults was also just uploaded) we have two supported 
python versions (2.5, 2.6) and one supported python3 version (3.1).

The question that we think needs some discussion is what should the output of 
`py3versions -vr '>= 2.4'` be?

As currently implemented, py3versions does not see that as including any 
python3 versions, since no python3 support is explicitly declared.  I had 
anticipated something like:

`py3versions -vr '>= 2.4 >=3.0'`

I am concerned to avoid packages implicitly picking up a claim for python3 
support that they don't actually provide.  The problem with this is that using 
something like:

XS-Python-Version: >= 2.x, >= 3.x

in debian/control is not expected by at the very least python-support and 
dh_python{2,3}.  Lintian is not at all happy with it either. First question:  
Does anyone know of other packages that this would be a problem for?

Alternatives:

XS-Python-Version: >= 2.x
XS-Python3-Version: >= 3.x

This avoids any risk of existing packages inadvertently expressing support for 
a Python3 version, but adds more fields to debian/control (this would also 
imply, I think, XB-Python3-Version).  This ends up making Packages.gz (and 
.bz2) larger and making updates slower for everyone.  


Only interpret XS-Python-Version: >= 2.x as including python3 versions if 
there is some python3 interpreter in build-depends.

This avoids making Packages.gz build and inadvertently causing packages to 
claim support for Python3, but it could get very convoluted when not all 
Python3 versions are supported.  I think you'd end up with something like:

XS-Python-Version: >= 2.7, <<3.0, >= 3.2

I don't thinks this helps in the long run as that would still break all the 
same tools my original proposal breaks and is more complex (pyversions would 
have to parse Build-depends and recognize that the python3 interpreter package 
variants).


Related points: Python policy already says "all" means all Python2 versions 
and has no meaning in a Python3 context and that "current" is deprecated and 
does not apply at all to Python3.

I'm open to other suggestions.  Comments?

Once there is some rough consensus around a concept, I'll prepare draft policy 
language for us to review.

Scott K


-- 
To UNSUBSCRIBE, email to debian-python-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/201006180837.33281.deb...@kitterman.com



Re: Policy for "Specifying Supported Versions" for Python3

2010-06-18 Thread Luca Falavigna
Il 18/06/2010 14.37, Scott Kitterman ha scritto:
> XS-Python-Version: >= 2.x
> XS-Python3-Version: >= 3.x
> 
> This avoids any risk of existing packages inadvertently expressing support 
> for 
> a Python3 version, but adds more fields to debian/control (this would also 
> imply, I think, XB-Python3-Version).  This ends up making Packages.gz (and 
> .bz2) larger and making updates slower for everyone.  

I'd prefer this method over the above, it's clear and there's less risk
to inadvertitely support python3 without proper source changes. Size is
not that important: adding 30 bytes to 3,000 packages is less than 100Kb
unzipped in total size, not a big deal after all.

> Related points: Python policy already says "all" means all Python2 versions 
> and has no meaning in a Python3 context and that "current" is deprecated and 
> does not apply at all to Python3.

Agreed. Changing "all" to include support to python3 is dangerous. I
once read that almost 90% of the code needs at least basic porting.

Regards,

-- 

  .''`.
 : :' :   Luca Falavigna 
 `. `'
   `-



signature.asc
Description: OpenPGP digital signature


Re: Policy for "Specifying Supported Versions" for Python3

2010-06-18 Thread Piotr Ożarowski
[Luca Falavigna, 2010-06-18]
> Il 18/06/2010 14.37, Scott Kitterman ha scritto:
> > XS-Python-Version: >= 2.x
> > XS-Python3-Version: >= 3.x

+1 (but with XB-Python-Version, i.e. no XB-Python3-Version)
-- 
Piotr Ożarowski Debian GNU/Linux Developer
www.ozarowski.pl  www.griffith.cc   www.debian.org
GPG Fingerprint: 1D2F A898 58DA AF62 1786 2DF7 AEF6 F1A2 A745 7645


-- 
To UNSUBSCRIBE, email to debian-python-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/20100618134522.gc18...@piotro.eu



Re: Policy for "Specifying Supported Versions" for Python3

2010-06-18 Thread Barry Warsaw
On Jun 18, 2010, at 03:45 PM, Piotr Ożarowski wrote:

>[Luca Falavigna, 2010-06-18]
>> Il 18/06/2010 14.37, Scott Kitterman ha scritto:
>> > XS-Python-Version: >= 2.x
>> > XS-Python3-Version: >= 3.x
>
>+1 (but with XB-Python-Version, i.e. no XB-Python3-Version)

Agreed.  This aligns with the decision to separate the python2 and python3
stacks by essentially treating them as different interpreters.  Maybe we
should have called Python 3 "Phyton" instead. :)

-Barry


signature.asc
Description: PGP signature


Re: Policy for "Specifying Supported Versions" for Python3

2010-06-18 Thread Jakub Wilk

* Luca Falavigna , 2010-06-18, 15:12:

XS-Python-Version: >= 2.x
XS-Python3-Version: >= 3.x

This avoids any risk of existing packages inadvertently expressing 
support for a Python3 version, but adds more fields to debian/control 
(this would also imply, I think, XB-Python3-Version).  This ends up 
making Packages.gz (and .bz2) larger and making updates slower for 
everyone.


I'd prefer this method over the above, it's clear and there's less risk 
to inadvertitely support python3 without proper source changes.


Same here.

Size is not that important: adding 30 bytes to 3,000 packages is less 
than 100Kb unzipped in total size, not a big deal after all.


Right. We currently have:

$ cat /var/lib/apt/lists/*_debian_dists_sid_*_Sources | grep-dctrl -F 
Python-Version -s Python-Version '' | wc -lc
 963   21141

--
Jakub Wilk


signature.asc
Description: Digital signature


Re: Policy for "Specifying Supported Versions" for Python3

2010-06-18 Thread Julian Andres Klode
On Fri, Jun 18, 2010 at 08:37:32AM -0400, Scott Kitterman wrote:
> The version of Python Policy that was just uploaded to unstable is the first 
> one that attempts to address Python3.  It is just a start and more changes 
> are 
> needed.
> 
> POX and I were just discussion this and discovered that we had been carrying 
> different assumptions about how packages would be expressing what versions 
> they 
> support.
> 
> Today (since python3-defaults was also just uploaded) we have two supported 
> python versions (2.5, 2.6) and one supported python3 version (3.1).
> 
> The question that we think needs some discussion is what should the output of 
> `py3versions -vr '>= 2.4'` be?
> 
> As currently implemented, py3versions does not see that as including any 
> python3 versions, since no python3 support is explicitly declared.  I had 
> anticipated something like:
> 
> `py3versions -vr '>= 2.4 >=3.0'`
> 
> I am concerned to avoid packages implicitly picking up a claim for python3 
> support that they don't actually provide.  The problem with this is that 
> using 
> something like:
> 
> XS-Python-Version: >= 2.x, >= 3.x
> 
> in debian/control is not expected by at the very least python-support and 
> dh_python{2,3}.  Lintian is not at all happy with it either. First question:  
> Does anyone know of other packages that this would be a problem for?
It worked on python-central the last time I tried it, although some 2.X
versions were duplicated.

> 
> Alternatives:
> 
> XS-Python-Version: >= 2.x
> XS-Python3-Version: >= 3.x
> 
> This avoids any risk of existing packages inadvertently expressing support 
> for 
> a Python3 version, but adds more fields to debian/control (this would also 
> imply, I think, XB-Python3-Version).  This ends up making Packages.gz (and 
> .bz2) larger and making updates slower for everyone.  
I guess this would break python-apt, since it uses the following one:
   XS-Python-Version: 2.5, 2.6, 3.1
(breaking meaning feature [3.1 modules] loss in package rebuild)

Another reason against this would be that it will look stupid once there
is no Python 2 anymore.

-- 
Julian Andres Klode  - Debian Developer, Ubuntu Member

See http://wiki.debian.org/JulianAndresKlode and http://jak-linux.org/.


pgpiLdCGhehdU.pgp
Description: PGP signature


Re: Policy for "Specifying Supported Versions" for Python3

2010-06-18 Thread Barry Warsaw
On Jun 18, 2010, at 04:30 PM, Julian Andres Klode wrote:

>Another reason against this would be that it will look stupid once there
>is no Python 2 anymore.

If it's one thing I've learned in all my years is that it's virtually
impossible not to look stupid 10 or 15 years later .  I mean, have you
*seen* those haircuts?

Seriously though, make the best decisions for today.  Python 2 will be around
for a long time.

-Barry


signature.asc
Description: PGP signature


Re: Policy for "Specifying Supported Versions" for Python3

2010-06-18 Thread Scott Kitterman


"Luca Falavigna"  wrote:

>Il 18/06/2010 14.37, Scott Kitterman ha scritto:
>> XS-Python-Version: >= 2.x
>> XS-Python3-Version: >= 3.x
>> 
>> This avoids any risk of existing packages inadvertently expressing support 
>> for 
>> a Python3 version, but adds more fields to debian/control (this would also 
>> imply, I think, XB-Python3-Version).  This ends up making Packages.gz (and 
>> .bz2) larger and making updates slower for everyone.  
>
>I'd prefer this method over the above, it's clear and there's less risk
>to inadvertitely support python3 without proper source changes. Size is
>not that important: adding 30 bytes to 3,000 packages is less than 100Kb
>unzipped in total size, not a big deal after all.
>
I take the view that it's already too big, so we should really strive to avoid 
making it any larger when there are reasonable alternatives.  So I would argue 
there's no such thing as an increase that's not a big deal.

Scott K


-- 
To UNSUBSCRIBE, email to debian-python-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: 
http://lists.debian.org/668a4549-51b5-4d2f-9611-29e1ee2e4...@email.android.com



Re: Policy for "Specifying Supported Versions" for Python3

2010-06-18 Thread Scott Kitterman


"Barry Warsaw"  wrote:

>On Jun 18, 2010, at 03:45 PM, Piotr Ożarowski wrote:
>
>>[Luca Falavigna, 2010-06-18]
>>> Il 18/06/2010 14.37, Scott Kitterman ha scritto:
>>> > XS-Python-Version: >= 2.x
>>> > XS-Python3-Version: >= 3.x
>>
>>+1 (but with XB-Python-Version, i.e. no XB-Python3-Version)
>
>Agreed.  This aligns with the decision to separate the python2 and python3
>stacks by essentially treating them as different interpreters.  Maybe we
>should have called Python 3 "Phyton" instead. :)
>
I don't think we need a new debian/control field to achieve the separation. 
pyversions (as of yesterday's upload) ignores any python3 versions it gets and 
py3versions ignores anything less than 3.

Scott K


-- 
To UNSUBSCRIBE, email to debian-python-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: 
http://lists.debian.org/692c863e-dabb-419a-b9ac-df0bc004f...@email.android.com