Re: Wiki: Debian Python Policy docu not on team site

2021-10-08 Thread Emmanuel Arias
Hi,

I added in the Wiki [0], the link to the python3-defaults
docs and policy [1].

Please review it.

[0] https://wiki.debian.org/Teams/PythonTeam#preview
[1] https://www.debian.org/doc/packaging-manuals/python-policy/

Cheers
Emmanuel


Re: Wiki: Debian Python Policy docu not on team site

2021-10-04 Thread Emmanuel Arias
Hi!

On Fri, Oct 1, 2021 at 7:43 AM  wrote:

> Hello,
>
> this is about the wiki page of that team.
> https://wiki.debian.org/Teams/PythonTeam
>
> I accidentally found the "Debian Python Policy documentation".
> https://www.debian.org/doc/packaging-manuals/python-policy/


Also we have this Policy [0]. But the python-policy that you mention
seems to be part of the docs of python3-defaults package.

Should we add it in the DPT wiki?

Cheers,
Emmanuel

[0]
https://salsa.debian.org/python-team/tools/python-modules/blob/master/policy.rst


>
> Looks nice and very important for new team members.
>
> Maybe it would help if it is linked on the team wiki page.
>
> Kind
> Christian Buhtz
>
>


Wiki: Debian Python Policy docu not on team site

2021-10-01 Thread c . buhtz

Hello,

this is about the wiki page of that team.
https://wiki.debian.org/Teams/PythonTeam

I accidentally found the "Debian Python Policy documentation".
https://www.debian.org/doc/packaging-manuals/python-policy/

Looks nice and very important for new team members.

Maybe it would help if it is linked on the team wiki page.

Kind
Christian Buhtz



Re: Work on a current Debian Python policy (was: Lintian warnings for Python packaging?)

2009-11-03 Thread Josselin Mouette
Le lundi 02 novembre 2009 à 21:22 +1100, Ben Finney a écrit : 
 Is there a silent Debian Python policy drafter out there who would like
 to step forward? Or is this work now moribund?

Bug reports concerning the Python policy have been silently ignored. I’m
afraid this will last as long as the reference version is in the
python-defaults package.

Cheers, 
-- 
 .''`.  Josselin Mouette
: :' :
`. `'   “I recommend you to learn English in hope that you in
  `- future understand things”  -- Jörg Schilling


signature.asc
Description: Ceci est une partie de message numériquement signée


Re: Work on a current Debian Python policy

2009-11-03 Thread Ben Finney
Josselin Mouette j...@debian.org writes:

 Le lundi 02 novembre 2009 à 21:22 +1100, Ben Finney a écrit : 
  Is there a silent Debian Python policy drafter out there who would
  like to step forward? Or is this work now moribund?

 Bug reports concerning the Python policy have been silently ignored.
 I’m afraid this will last as long as the reference version is in the
 python-defaults package.

(I am reading this to mean “the reference version of the Debian Python
policy is in the python-defaults package”.)

Okay. Clearly one way for this to improve would be for some of those bug
reports to be responded to by the maintainer.

In the absence of that, though, what other way forward is there? What
would need to change for the reference version of the Python policy to
be somewhere else? Just start referring to a different document, or
something more?

-- 
 \  “The most merciful thing in the world… is the inability of the |
  `\human mind to correlate all its contents.” —Howard Philips |
_o__)Lovecraft |
Ben Finney


pgpCAdS01pveA.pgp
Description: PGP signature


Re: Work on a current Debian Python policy (was: Lintian warnings for Python packaging?)

2009-11-03 Thread Scott Kitterman
On Tue, 03 Nov 2009 19:02:21 +0100 Josselin Mouette j...@debian.org wrote:
Le lundi 02 novembre 2009 à 21:22 +1100, Ben Finney a écrit : 
 Is there a silent Debian Python policy drafter out there who would like
 to step forward? Or is this work now moribund?

Bug reports concerning the Python policy have been silently ignored. I m
afraid this will last as long as the reference version is in the
python-defaults package.

I'm inclined to agree.  How would you suggest such a document be managed?

Scott K


--
To UNSUBSCRIBE, email to debian-python-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Re: Work on a current Debian Python policy

2009-11-03 Thread Ben Finney
Josselin Mouette j...@debian.org writes:

 Le lundi 02 novembre 2009 à 21:22 +1100, Ben Finney a écrit : 
  Is there a silent Debian Python policy drafter out there who would
  like to step forward? Or is this work now moribund?

 Bug reports concerning the Python policy have been silently ignored.
 I’m afraid this will last as long as the reference version is in the
 python-defaults package.

(I am reading this to mean “the reference version of the Debian Python
policy is in the python-defaults package”.)

Okay. Clearly one way for this to improve would be for some of those bug
reports to be responded to by the maintainer.

In the absence of that, though, what other way forward is there? What
would need to change for the reference version of the Python policy to
be somewhere else? Just start referring to a different document, or
something more?

-- 
 \  “The most merciful thing in the world… is the inability of the |
  `\human mind to correlate all its contents.” —Howard Philips |
_o__)Lovecraft |
Ben Finney


pgpMiLC3LSQGH.pgp
Description: PGP signature


Re: Work on a current Debian Python policy

2009-11-03 Thread anatoly techtonik
On Wed, Nov 4, 2009 at 2:29 AM, Ben Finney ben+deb...@benfinney.id.au wrote:
 (I am reading this to mean “the reference version of the Debian Python
 policy is in the python-defaults package”.)

 Okay. Clearly one way for this to improve would be for some of those bug
 reports to be responded to by the maintainer.

 In the absence of that, though, what other way forward is there?

Here.

 What
 would need to change for the reference version of the Python policy to
 be somewhere else?

Remove it from http://www.debian.org/doc/packaging-manuals/python-policy/

Remove this page http://python-modules.alioth.debian.org/ (wiki is
more up to date)

Replace this one with wiki too and remove links.
http://python-apps.alioth.debian.org/policy.html

 Just start referring to a different document, or
 something more?

Point everything to wiki.
Update MoinMoin to remove bugs and enable latest features that can
become useful for collaboration. In particular:

 * Add subscription by default feature to policy pages so that
everybody who edited page automatically receives updates. This will
increase collaboration rate. You may forward these edits here as well.

 * Upgrade also fixes
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=546905 so that
inserting table of content will not be a compromise between layout and
technical limitations

-- 
anatoly t.


--
To UNSUBSCRIBE, email to debian-python-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Work on a current Debian Python policy (was: Lintian warnings for Python packaging?)

2009-11-02 Thread Ben Finney
Luca Falavigna dktrkr...@debian.org writes:

 Scott Kitterman ha scritto:
  Since we currently lack anything like a maintained Python policy, I
  think this is putting the cart before the horse. […]

 […] we could wait for the new policy to be drafted, I'm not sure when
 this will happen, though.

I don't know if anyone has even taken the reins for this recently.

The last time I knew someone was actually developing a Debian Python
policy was when Manoj Srivastava was drafting a document to help record
some of the ad hoc practices he observed, and that work appears to have
ceased sometime in 2006.

The Debian wiki page on the topic, though no doubt useful to some
extent, seems more a collection of tips than an attempt at a policy.

Is there a silent Debian Python policy drafter out there who would like
to step forward? Or is this work now moribund?

-- 
 \ “The greater the artist, the greater the doubt; perfect |
  `\   confidence is granted to the less talented as a consolation |
_o__)   prize.” —Robert Hughes |
Ben Finney


pgpm1ff8b8vjj.pgp
Description: PGP signature


Re: Work on a current Debian Python policy (was: Lintian warnings for Python packaging?)

2009-11-02 Thread anatoly techtonik
On Mon, Nov 2, 2009 at 2:27 PM, Scott Kitterman deb...@kitterman.com wrote:

 I'm not aware of any ongoing work.  I would be willing to help work on such
 a thing, but we currently lack a good mechanism for developing/approving
 such a policy.

With clear policy and precise goal you won't need approving mechanism
to see if they work for defined set of cases or not.

While everybody want policy just to know how to do thing properly,
there are in fact very few people who really understand how
complicated is the task of maintaining python code, modules and
applications. When there is precise goal, next action is to collect
scenarios for the whole install/update/remove lifecycle of Python code
in Debian. Only after this step is complete it is possible to start
drafting self-explanatory architecture that will be capable to support
all these scenarios.


There is no need in mechanism for developing a policy - in wiki
everybody can start contributing immediately with a full history of
changes. There can be a sprint though to force the progress and keep
work focused. To make it easier to contribute scenarios a template can
come handy.


I've edited http://wiki.debian.org/DebianPython to be concise
introduction into the problems with Python code packaging, summarized
issues with the current policy, but still can't provide vision for a
new policy. That's why I'd like to see
http://wiki.debian.org/DebianPython/Tutorial with step-by-step
instructions and explanations of the reasons why things should be done
in some particular way, what problems arise if they won't done as
requested, and how it makes maintenance easier. There can be a series
of tutorials starting with most basic packaging scenario (one module)
and gradually move to most complicated (application with several
C-modules installed in virtualenv).

There is a difference in Scenario and Tutorial in that Tutorial is
based on some policy draft while Scenario concentrates on a very-very
source of the problem. I.e. scenario is As a user, I want some stable
version of that Python module to be present for my scripts in my
Debian installation or As an admin, I want to install Trac in
isolated environment and upgrade it separately as security fixes are
coming out.


-- 
anatoly t.


--
To UNSUBSCRIBE, email to debian-python-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Re: Work on a current Debian Python policy (was: Lintian warnings for Python packaging?)

2009-11-02 Thread Scott Kitterman
On Mon, 2 Nov 2009 16:50:00 +0300 anatoly techtonik techto...@gmail.com wrote:
On Mon, Nov 2, 2009 at 2:27 PM, Scott Kitterman deb...@kitterman.com wrote:

 I'm not aware of any ongoing work.  I would be willing to help work on such
 a thing, but we currently lack a good mechanism for developing/approving
 such a policy.

With clear policy and precise goal you won't need approving mechanism
to see if they work for defined set of cases or not.


...

Yes and we have neither right now.  Writing stuff on a wiki won't change that.

Until we have a legitimate Python policy, all we have to base decisions on is 
running code.  All the code doesn't agree.

Scott K

P.S.  I am subscribed to the list, so no need to cc me.


--
To UNSUBSCRIBE, email to debian-python-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Re: Questions about the Debian Python Policy

2005-10-25 Thread Donovan Baarda
On Tue, 2005-10-25 at 08:40, Josselin Mouette wrote:
 Le lundi 24 octobre 2005 à 11:30 -0400, James A. Treacy a écrit :
  Thanks for the replies to my questions.
  
  I hope that a way to ensure automatic recompiling of python modules is
  implemented sometime in the future.
 
 If you want to automate the process on the packaging side, using
 dh_python will do all the work for you; you will only need a rebuild
 when the major python version changes. Support for rebuilding these
 modules automatically without rebuilding the package has been underway
 for quite some time, but still isn't usable.

Do you mean;

Rebuild = new source package upload + new generated binary packages +
distribute to mirrors + download for install on systems?

rebuild these modules automatically without rebuilding the package =
only recompile *.py's installed on systems?

major python version changes = python (2.3) upgrades to python (2.4)?

I still don't see how anything is in place to recompile py's reliably
when the default python upgrades.

For example; package python-foo has Depends: python (=2.1), puts
private pure python modules in /usr/share/lib/python-foo, and compiles
them with #!/usr/bin/python. How will these *.py files be re-compiled
when python (2.3) is upgraded to python (2.4)?

-- 
Donovan Baarda [EMAIL PROTECTED]


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: Questions about the Debian Python Policy

2005-10-25 Thread Josselin Mouette
Le mardi 25 octobre 2005 à 12:24 +0100, Donovan Baarda a écrit :
  If you want to automate the process on the packaging side, using
  dh_python will do all the work for you; you will only need a rebuild
  when the major python version changes. Support for rebuilding these
  modules automatically without rebuilding the package has been underway
  for quite some time, but still isn't usable.
 
 Do you mean;
 
 Rebuild = new source package upload + new generated binary packages +
 distribute to mirrors + download for install on systems?
 
 rebuild these modules automatically without rebuilding the package =
 only recompile *.py's installed on systems?
 
 major python version changes = python (2.3) upgrades to python (2.4)?

Yes.

 I still don't see how anything is in place to recompile py's reliably
 when the default python upgrades.

That's why I'm saying it is underway. It's not currently possible by
any means.

Regards,
-- 
 .''`.   Josselin Mouette/\./\
: :' :   [EMAIL PROTECTED]
`. `'[EMAIL PROTECTED]
   `-  Debian GNU/Linux -- The power of freedom



Re: Questions about the Debian Python Policy

2005-10-24 Thread Donovan Baarda
On Sat, 2005-10-22 at 22:27, James A. Treacy wrote:
 I have some questions relating to python packages and the python
 policy.
 
 I maintain a pure python program (gramps) that relies heavily on other
 python packages: python-gnome2, python-glade2, python-reportlab and
 python-gnome2-extras.
 
 Section 3.1 of the python policy states that programs which can use
 any version of python which depend on python module Foo should depend
 on python-foo, not pythonX.Y-foo. This can be problematic for the
 following reason.

Actually, they should have Depends: python (=X.Y), python (X.Y+1)
where X.Y is the current default version of python.

 Let's use gramps(*) as an example and that the default python switches
 to 2.4. A user upgrades python (leaving 2.3 on the system), gramps and
 python-glade2 to python 2.4 versions but does not ugrade python-gnome2
 (this works since python 2.3 is still installed). All the dependencies
 will be met but gramps will not work as it will not find all the
 required (2.4 based) dependencies.

This should not work because the old version of python-gnome2 should
have Depends: python (=2.3), python (2.4). This means it cannot be
installed alongside python (2.4). When you install python (2.4) you will
be forced to upgrade python-gnome2 to use the new version that has
Depends: python (=2.4), python (2.5).

 How do you propose avoiding this situation without having programs
 depend on pythonX.Y-foo packages explicitly?

With the versioned dependency on python...

 Second question. Gramps installs its private modules in
 /usr/share/gramps instead of /usr/lib/site-python/gramps as specified
 in the policy. Is this ok? If not, why?

It is OK, provided you address the following issues;

1) how does gramps applications find these private modules?

2) how do you ensure that these private modules are re-compiled when
python (X.Y) upgrades to python (X.Y+1)?

 Third question. The examples for compiling python modules in
 the postinst use a specific version of python. Since gramps is
 compiled against the default verson of python, is it ok to just use
 PYTHON=python?

Yes, but you need to make sure that a re-compile is triggered when
python itself gets upgraded. 

The brute-force way, as described in the current policy, is to have
Depends: python (=X.Y), python (X.Y+1), which will force you to
release a new version of your package with new dependencies when python
upgrades... installing a new version of the package will re-compile the
py's. 

Using tight version constraints to force package upgrades just to
trigger re-compiles is very ugly though. Sure, if you had binary
extensions that needed to be re-built anyway, it is no extra work, but
for a pure python package it feels wrong.

The other alternative is to have the python package trigger the compiles
for you when it is installed. Currently, the python package does no
postinst compiles at all. The pythonX.Y packages will only compile
everything in /usr/lib/python2.3. So you can't do it.

I've been advocating the brute force solution of having python's
post-inst trigger the postinst scripts of every package that depends on
python. This way packages that depend on python can re-compile their own
*.py's when python is upgraded. So far, no-one has responded...

Some packages (python-roman, pychecker, python-epydoc, apt-listchanges,
python-docutils) have taken to putting version independant pure-python
modules in /usr/lib/site-python. This is on every python versions path,
so this makes the modules available to every python version. However, it
has several problems;

1) the *.pyc's can only be compiled for one version of python. When you
use a different version of python, the pyc's will be re-compiled. If the
user has write access to /usr/lib/site-python, the old pyc's will be
overwritten.

2) which version of python do you use? You should use the version of
python that corresponds with your package's dependencies (usually
python).

3) if you compile using /usr/bin/python, how do you recompile when
python upgrades? Right now you can't.

It seems all of the packages using /usr/lib/site-python have a different
approach, and usually get it wrong in some way.

For example, pychecker has Depends: python2.3 | python2.2 | python2.1 |
python and it's postinst uses the first found in python python2.3
python2.4 python2.2 python2.1. Its dependencies and what it actually
uses are different, and hence wrong. The package maintainer is at least
aware of the issues, and has a big comment in his postinst about it.

python-epydoc is similar to pychecker, but has Depends: python2.3 |
python2.2-xmlbase | python2.1-xmlbase, so it relies on indirect
dependencies for python2.2 and python2.1. However, it too will attempt
to compile with the first found in python python2.3 python2.4 python2.2
python2.1.

python-roman has Depends: python (= 2.1), but its postinst is
hardcoded to use python2.3. This package will break if you try to
install it without python2.3 installed, but 

Re: Where is the Debian Python Policy?

2002-02-10 Thread Donovan Baarda
On Sun, Feb 10, 2002 at 10:26:26AM +0100, Matthias Klose wrote:
 Donovan Baarda writes:
  G'day,
  
  just thought I'd have another look at the current policy and I couldn't find
  it. Where is it again?
 
 /usr/share/doc/python, anybody actually reading the docs?

Ahh, it's included in the python package now. I was actually refering to the
online copy that was put up during the discussion that developed it.
 
  Can we get a link to it put on the Debian devel page?
  
  http://www.debian.org/devel/
 
 IMO that makes no sense as long as it is not part of the Debian policy
 (which will not happen for woody)

Huh? If it's included in the python package that is included in woody with a
title python-policy.txt, doesn't that sorta make it part of the Debian
policy for woody?

-- 
--
ABO: finger [EMAIL PROTECTED] for more info, including pgp key
--




Where is the Debian Python Policy?

2002-02-09 Thread Donovan Baarda
G'day,

just thought I'd have another look at the current policy and I couldn't find
it. Where is it again?

Can we get a link to it put on the Debian devel page?

http://www.debian.org/devel/


-- 
--
ABO: finger [EMAIL PROTECTED] for more info, including pgp key
--




Re: Debian Python policy Upgrade Path (draft/proposal) [0.3.3]

2001-10-23 Thread Anthony Towns
On Tue, Oct 23, 2001 at 01:33:29AM +0200, Matthias Klose wrote:
 3.1. Version Independant Programs
 -
  Programs that can run with any version of Python must start with
  `#!/usr/bin/env python'.  They must also specify a dependency on
  `python-base'.

Using #!/usr/bin/python also seems entirely legitimate, and a few
/usr/bin scripts on my system do that.

They should also Depend: on python-foo for any modules they require,
presumably.

They may also want to Depends: python-base (= X.Y) if they use some
features that were only introduced in python X.Y.

 3.2. Version Dependant Programs
 ---
  Programs which require a specific version of Python must start with
  `#!/usr/bin/env pythonX.Y'.  They must also specify a dependency
  on `pythonX.Y'.

Likewise /usr/bin/pythonX.Y doesn't seem unreasonable.

 4. Programs Embedding Python
 
  Programs which embed a Python interpreter must declare a
  `Build-Depends' on `pythonX.Y-dev'.

Any particular reason why they should B-D on pythonX.Y-dev instead of
python-dev? If they break in the future, they'll just stop building
correctly and obviously need source changes anyway, no? Much like the
various problems we have when gcc stops supporting some random way of
coding that used to work.

I presume the Depends: for this are already covered in the module
packaging rules.

Cheers,
aj

-- 
Anthony Towns [EMAIL PROTECTED] http://azure.humbug.org.au/~aj/
I don't speak for anyone save myself. GPG signed mail preferred.

 Security here. Yes, maam. Yes. Groucho glasses. Yes, we're on it.
   C'mon, guys. Somebody gave an aardvark a nose-cut: somebody who
can't deal with deconstructionist humor. Code Blue.
-- Mike Hoye,
  see http://azure.humbug.org.au/~aj/armadillos.txt




Re: Debian Python policy Upgrade Path (draft/proposal) [0.3.3]

2001-10-22 Thread Neil Schemenauer
Matthias Klose wrote:
 - Recommend /usr/bin/env python over /usr/bin/python

Again I must express my opposition to this idea.  Using /usr/bin/env
totally breaks dependencies.  There's no way that I'm going to let
Debian policy dictate what I can have in my path.

  Neil




Re: Debian Python policy Upgrade Path (draft/proposal)

2001-10-21 Thread Donovan Baarda
On Sun, Oct 21, 2001 at 10:27:54AM +1300, Carey Evans wrote:
 Matthias Klose [EMAIL PROTECTED] writes:
 
 [...]
 
  exactly. But you see that these packages will break when you try to
  upgrade. We can't make 2.1 the default right now, because we will
  _silently_ break packages. Before python can point to python2.1, we
  will have to fix all packages which depend on python-base, to depend
  on python-base ( 1.6).
 
 But if we get Python 2.1 into Debian 3.0, people will be upgrading
 from the old Python 1.5 packages in Debian 2.2 directly to the new
 packages, and unless they use apt-get dist-upgrade to upgrade to
 the newest versions of everything, packages will still be broken.
 
 For that matter, just getting everyone using testing to transition
 over to the new versions properly will be nearly impossible unless
 there are appropriate conflicts and dependencies to make sure that
 only working combinations of packages can be installed.

Good point... I'd forgotten about that. This means we might as well go
strait to python2.1 as the default, but make sure that the python2.1-xxx
packages have versioned conflicts with all the packages that depend on just
python or python-base and install into /usr/lib/python1.5/. Perhaps the best
way to do this is have python-base (2.1xxx) have all the conflicts, allowing
the other packages to be relatively clean.

-- 
--
ABO: finger [EMAIL PROTECTED] for more info, including pgp key
--




Re: Debian Python policy Upgrade Path (draft/proposal)

2001-10-21 Thread Carey Evans
Donovan Baarda [EMAIL PROTECTED] writes:

 Good point... I'd forgotten about that. This means we might as well go
 strait to python2.1 as the default, but make sure that the python2.1-xxx
 packages have versioned conflicts with all the packages that depend on just
 python or python-base and install into /usr/lib/python1.5/. Perhaps the best
 way to do this is have python-base (2.1xxx) have all the conflicts, allowing
 the other packages to be relatively clean.

Another possibility is for python-base to go away, and for a new
package that conflicts with it, and has a different name, to take its
place.  In stable, it seems that only bg5ps, grmonitor, pythondoc and
sketch depend on python, compared to 59 which depend on python-base,
so this would make the Conflicts field just a little bit shorter.

(Actually 60, but gimp-python also depends on python-base ( 1.6.0)).

Packages that depend on python:
   grep-dctrl -FDepends -e 'python([ ,]|$)' Packages

Packages that depend on python-base:
   grep-dctrl -FDepends python-base Packages

It seems things have gotten worse... I count 22 packages in unstable
that depend on python, and around 101 that depend on python-base
only once.

-- 
 Carey Evans  http://home.clear.net.nz/pages/c.evans/

  Ha ha!  Puny receptacle!




Re: Debian Python policy Upgrade Path (draft/proposal)

2001-10-21 Thread Matthias Klose
Carey Evans writes:
 Matthias Klose [EMAIL PROTECTED] writes:
 
 [...]
 
  2.4. Dependencies
  -
  
   Packaged modules must depend on `python-base ( X.Y)' and
   `python-base ( X2.Y2)'.
 
 (= X.Y), right?
 
 Shouldn't this explain just what X2.Y2 is?  I assume it's actually
 X.Y+1, i.e. =1.5 and 1.6, =2.1 and 2.2, =2.9 and 2.10, etc.

Thanks. Updated in 0.3.2:

http://ftp-master.debian.org/~doko/python/




Re: Debian Python policy Upgrade Path (draft/proposal)

2001-10-21 Thread Matthias Klose
Donovan Baarda writes:
 On Sun, Oct 21, 2001 at 10:27:54AM +1300, Carey Evans wrote:
  Matthias Klose [EMAIL PROTECTED] writes:
  
  [...]
  
   exactly. But you see that these packages will break when you try to
   upgrade. We can't make 2.1 the default right now, because we will
   _silently_ break packages. Before python can point to python2.1, we
   will have to fix all packages which depend on python-base, to depend
   on python-base ( 1.6).
  
  But if we get Python 2.1 into Debian 3.0, people will be upgrading
  from the old Python 1.5 packages in Debian 2.2 directly to the new
  packages, and unless they use apt-get dist-upgrade to upgrade to
  the newest versions of everything, packages will still be broken.

The only reason not to go to 2.1 directly is not breaking the packages
in unstable.




Re: Debian Python policy Upgrade Path (draft/proposal)

2001-10-21 Thread Matthias Klose
Carey Evans writes:
 Donovan Baarda [EMAIL PROTECTED] writes:
 
  Good point... I'd forgotten about that. This means we might as well go
  strait to python2.1 as the default, but make sure that the python2.1-xxx
  packages have versioned conflicts with all the packages that depend on just
  python or python-base and install into /usr/lib/python1.5/. Perhaps the best
  way to do this is have python-base (2.1xxx) have all the conflicts, allowing
  the other packages to be relatively clean.

It is probably better. Currently a package maintainer cannot make 
a final version of his package, depending on python-base, if he 
wants to use python2.1. 

 Another possibility is for python-base to go away, and for a new
 package that conflicts with it, and has a different name, to take its
 place.

basically that is Neil's proposal of a python-api package.

 In stable, it seems that only bg5ps, grmonitor, pythondoc and
 sketch depend on python, compared to 59 which depend on python-base,
 so this would make the Conflicts field just a little bit shorter.
 
 It seems things have gotten worse... I count 22 packages in unstable
 that depend on python, and around 101 that depend on python-base
 only once.

well, I count 121 ... we could get this down to 63 for the woody
release. So if we do this, we should inform the package maintainers ...

- either depend on python-base (= 2.1), python-base ( 2.2)

- or depend directly on python2.1-base (python2 is going to be
  dropped), or if not possible on python1.5-base, and call the
  versioned interpreter explicitely (python1.5, python2.1).

appended is a Conflicts: line for a new python-base (2.1) and a list
of maintainers/packages which are affected.

python-base (2.1) Conflicts:
bg5ps (= 1.3.0-1), cfv (= 1.9-2), cooledit (= 3.17.1-2.2), cplay (= 
1.43-1), dcoppython (= 2.2.1-1.2), doc-central (= 1.3), dput (= 0.8.9.1), 
entity-python (= 0.7.2-1), fetchmailconf (= 5.9.3-1), forg (= 0.03-1), fsh 
(= 1.1), gadfly (= 1.0-6), garchiver (= 0.5-1), getmail (= 2.1.3-1), 
gif2png (= 2.4.0-2), glimmer (= 1.0.8-4), gnats2w (= 0.15.2), gnumeric (= 
0.72-0.1), gramps (= 0.5.1-1), grc (= 1.0.1), grmonitor (= 0.81-2), guppi 
(= 0.35.5-4), htmlgen (= 2.2.2-4), iceme (= 1.0.0-2), icepref (= 1.1-7), 
ilu-base (= 2.0.0.91-3), imgsizer (= 2.1-1), ipcheck (= 0.132-1), jack (= 
2.99.6-2), jaxml (= 2.22-1), junior-programming (= 1.1), kdelibs3 (= 
4:2.2.1-12), kdesdk-scripts (= 2.2.1-3), kivio (= 1:1.1.0-final-6), 
knewsticker-scripts (= 2.2.1-2), libguppi11 (= 0.35.5-4), libwxgtk2.2-python 
(= 2.2.6.1), lilypond (= 1.4.8-1), linbot (= 1.0.0-2), lincredits (= 0.2), 
luci (= 0.1.1-1.1), lyx (= 1.1.6fix3-2), lyx-cjk (= 1.1.6fix3-1), mailman 
(= 2.0.6-1), muttzilla (= 0.40-9), omniorb (= 1:3.0.4-2.1), plucker (= 
1.1.13-1), plwm (= 2.3-1), pms (= 0.2.17-1), poxml (= 2.2.1-3), 
pybliographer (= 1.0.9-5), pyching (= 1.0.4-2), pycmail (= 0.1), pydb (= 
1.01-2), pydf (= 0.9.5), pydict (= 0.2.5.1-1), pyftpd (= 0.7), pyg (= 
0.9.4-7), pyrite-publisher (= 1.99.2-1), pysol (= 4.60-1), python-4suite (= 
0.11.1-2), python-bobo (= 2.1.4-5), python-bobodtml (= 2.2.1-5), 
python-bobopos (= 2.1-4), python-cddb (= 1.3-3), python-distutils (= 
1.0.2-1), python-extclass (= 1.2-4), python-gdk-imlib (= 0.6.8-8), 
python-gendoc (= 0.73-5), python-glade (= 0.6.8-8), python-gtk (= 0.6.8-8), 
python-gtkglarea (= 0.6.8-8), python-happydoc (= 1.5-1), python-id3 (= 
1.0-1), python-imaging (= 1.1.2-3), python-kjbuckets (= 2.2-6), 
python-mxdatetime (= 1.3.0-5), python-mxstack (= 0.3.0-4), python-mxtexttools 
(= 1.1.1-3), python-mxtools (= 1.0.0-4), python-mysqldb (= 0.9.0-1), 
python-newt (= 0.50.17-7), python-numeric (= 17.1.2-6), 
python-numeric-tutorial (= 17.1.2-6), python-orbit (= 0.3.0-2), 
python-orbit-dev (= 0.3.0-2), python-pam (= 0.4.2-3), python-pcgi (= 
1.999a5-2), python-pygresql (= 7.1.3-4), python-pyqt (= 2.5-1), 
python-reportlab (= 1.08-1), python-slang (= 0.2.0-1), python-soap (= 
0.8-1), python-stats (= 0.5-1), python-unit (= 1.4.1-1), python-utmp (= 
0.4), python-vtk (= 3.1.2-1), python-xlib (= 0.8-1), python-xml (= 0.6.6-2), 
python-xmlrpc (= 0.8.6-3), pythondoc (= 0.6-2), quantlib-python (= 0.2.0-1), 
reportbug (= 1.31), routeplanner (= 0.11), routeplanner-gnome (= 0.11), 
scanerrlog (= 2.00-1), scigraphica (= 0.7.1-5), scigraphica-gnome (= 
0.7.1-5), sgmltools-lite (= 3.0.3.0.cvs.20010909-3), sip (= 2.5-2), snappea 
(= 3.0d3-8), subterfugue (= 0.2-1), sulfur (= 0.1.3), syslog-summary (= 
1.10.1), twisted (= 0.10.2-1), viewcvs (= 0.7-3), woody (= 0.1.6-2), 
xanim-modules (= 2.80.1.12), xbel-utils (= 0.6.6-2), xracer-tools (= 
0.96.9-10), zope-bytecodehacks (= 0.1.7-2)

The package list sorted by maintainer:

JP Sugarbroad taral at taral.net ['scanerrlog', 'jaxml']
Dr. Guenter Bechly gbechly at debian.org ['iceme']
Ron Lee ron at debian.org ['libwxgtk2.2-python']
Danie Roux droux at tuks.co.za ['garchiver']
Matthias Klose doko at debian.org ['python-numeric', 
'python-numeric-tutorial', 'python-distutils']

Re: Debian Python policy Upgrade Path (draft/proposal)

2001-10-21 Thread Matthias Klose
Donovan Baarda writes:
 Good point... I'd forgotten about that. This means we might as well go
 strait to python2.1 as the default, but make sure that the python2.1-xxx
 packages have versioned conflicts with all the packages that depend on just
 python or python-base and install into /usr/lib/python1.5/. Perhaps the best
 way to do this is have python-base (2.1xxx) have all the conflicts, allowing
 the other packages to be relatively clean.

I've made python packages defaulting to 2.1 (not in incoming) and have
put them on ftp-master.

deb http://ftp-master.debian.org/~doko/python ./

There is a second (currently empty) directory writable for Debian,
which could serve as a place to collect NMUs for the new schema.

deb http://ftp-master.debian.org/~doko/python-nmus ./

Comments are welcome.




Re: Debian Python policy Upgrade Path (draft/proposal)

2001-10-20 Thread Carey Evans
Matthias Klose [EMAIL PROTECTED] writes:

[...]

 exactly. But you see that these packages will break when you try to
 upgrade. We can't make 2.1 the default right now, because we will
 _silently_ break packages. Before python can point to python2.1, we
 will have to fix all packages which depend on python-base, to depend
 on python-base ( 1.6).

But if we get Python 2.1 into Debian 3.0, people will be upgrading
from the old Python 1.5 packages in Debian 2.2 directly to the new
packages, and unless they use apt-get dist-upgrade to upgrade to
the newest versions of everything, packages will still be broken.

For that matter, just getting everyone using testing to transition
over to the new versions properly will be nearly impossible unless
there are appropriate conflicts and dependencies to make sure that
only working combinations of packages can be installed.

-- 
 Carey Evans  http://home.clear.net.nz/pages/c.evans/

  Ha ha!  Puny receptacle!




Re: Debian Python policy Upgrade Path (draft/proposal)

2001-10-19 Thread Carey Evans
Matthias Klose [EMAIL PROTECTED] writes:

[...]

 2.4. Dependencies
 -
 
  Packaged modules must depend on `python-base ( X.Y)' and
  `python-base ( X2.Y2)'.

(= X.Y), right?

Shouldn't this explain just what X2.Y2 is?  I assume it's actually
X.Y+1, i.e. =1.5 and 1.6, =2.1 and 2.2, =2.9 and 2.10, etc.

-- 
 Carey Evans  http://home.clear.net.nz/pages/c.evans/

  Ha ha!  Puny receptacle!




Debian Python policy Upgrade Path (draft/proposal)

2001-10-18 Thread Matthias Klose
[Please CC me on replies]

I made a new version of the Debian Python Policy, based on Neil's
Python Policy (0.1), the new Python packages in unstable and Donovan's
comments on the upgrade procedure.

It's appended and available from http://ftp-master.debian.org/~doko/
(including the sgml source). Comments (and patches against the sgml
source) are appreciated.

Matthias

PS: Install the build-dependencies of debian-policy and run
nsgmls -gues python-policy.sgml
debiandoc2text python-policy.sgml
to check and build the sgml file.



   Debian Python Policy
   

 Neil Schemenauer [EMAIL PROTECTED]

 Matthias Klose [EMAIL PROTECTED]

version 0.3


---


Abstract


 This document describes the packaging of Python within the Debian
 GNU/Linux distribution and the policy requirements for packaged Python
 programs and modules.


Copyright Notice


 Copyright (C) 1999, 2001 Software in the Public Interest

 This manual is free software; you can redistribute it and/or modify it
 under the terms of the GNU General Public License as published by the
 Free Software Foundation; either version 2 of the License, or (at your
 option) any later version.

 This is distributed in the hope that it will be useful, but WITHOUT
 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 for more details.

 A copy of the GNU General Public License is available as
 `/usr/share/common-licences/GPL' in the Debian GNU/Linux distribution
 or on the World Wide Web at The GNU Public Licence
 (http://www.gnu.org/copyleft/gpl.html).

 You can also obtain it by writing to the Free Software Foundation,
 Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.


---


Contents


 1.Python Packaging
 1.1.  Stable and Legacy Versions
 1.2.  Base Package
 1.3.  Module Path
 1.4.  Documentation

 2.Packaged Modules
 2.1.  Support Only The Default Version
 2.2.  Support a Particular Version(s)
 2.3.  Support All/Most Versions (Including Default)
 2.4.  Dependencies
 2.5.  Module Package Names

 3.Python Programs
 3.1.  Version Independant Programs
 3.2.  Version Dependant Programs

 4.Programs Embedding Python
 4.1.  Building Embedded Programs
 4.2.  Embedded Python Dependencies

 A.Upgrade Procedure


---


1. Python Packaging
---


1.1. Stable and Legacy Versions
---

 At any given time, the package `python-base' should represent the
 current stable upstream version of Python.  XXX: Should we have an
 exception for the case, when a new upstream version is released during
 a Debian freeze?

 Only one package may contain the `/usr/bin/python' binary and that
 package must either be `python' or a dependency of that package.

 The `python' package must provide `pythonX.Y'; where X and Y
 represent the major and minor versions of the Python, respectively.

 There can be any number of legacy Python packages available.  These
 must be named `python-X.Y' and include the file
 `/usr/bin/pythonX.Y'.


1.2. Base Package
-

 In order to provide a minimal installation of Python for use by
 applications without requiring the whole of Perl to be installed, the
 `python-base' package contains the binary and a basic set of modules.


1.3. Module Path


 Python searches three different locations for modules.  The module
 search path for Debian has been ordered to include these locations at
 the beginning of the path in the following order:

  /usr/local/lib/site-python
  /usr/local/lib/pythonX.Y/site-packages
  /usr/lib/pythonX.Y/site-packages


1.4. Documentation
--

 Python documentation is split out in separate packages
 `pythonX.Y-doc'.  The package `python-doc' depends on the
 `pythonX.Y-doc' (the documentation of the current stable upstream
 version of Python.

 TODO: Policy for documentation of third party packages.


---


2. Packaged Modules
---

 There is more than one way to package a Python module:

 1.   Support only the default version.

 2.   Support a particular version, or some but not all versions

Re: Debian Python policy Upgrade Path (draft/proposal)

2001-10-18 Thread Neil Schemenauer
Matthias Klose wrote:
  At any given time, the package `python-base' should represent the
  current stable upstream version of Python.  XXX: Should we have an
  exception for the case, when a new upstream version is released during
  a Debian freeze?

It should probably be reworded so that it means the latest version we
are able to get into the release.

  Only one package may contain the `/usr/bin/python' binary and that
  package must either be `python' or a dependency of that package.

If you call the main package python-base then there is no python
package.

  There can be any number of legacy Python packages available.  These
  must be named `python-X.Y' and include the file
  `/usr/bin/pythonX.Y'.

Here you have python-X.Y and elsewhere you have pythonX.Y.

 1.2. Base Package
 -
 
  In order to provide a minimal installation of Python for use by
  applications without requiring the whole of Perl to be installed, the
  `python-base' package contains the binary and a basic set of modules.

Perl?  Why the -base?  There is not a stripped down version of Python
and a full version.  Calling the package python is clearer, IMHO.

  Python searches three different locations for modules.  The module
  search path for Debian has been ordered to include these locations at
  the beginning of the path in the following order:
 
   /usr/local/lib/site-python
   /usr/local/lib/pythonX.Y/site-packages
   /usr/lib/pythonX.Y/site-packages

That should be:

   /usr/local/lib/pythonX.Y/site-packages
   /usr/local/lib/site-python
   /usr/lib/pythonX.Y/site-packages

  3.   Support all/most versions of python, including the default.
   Works only for architecture independant python modules.  NOT YET
   SUPPORTED!!!

I assume you are refering to scheme where modules would get installed
into the search path of multiple Python interpreters.  I'm not sure
that's a good idea.

  2.   You have version independant Python scripts/programs.  Create a
   single package that depends on `python-base'.  Any name can be
   used, but `python-module' is recommended for a library.  It
   should install modules somewhere inside `/usr/lib/python/' and
   use `#!/usr/bin/python' for programs.  The `postinst' script
   should create symlinks in all `/usr/lib/pythonX.Y/' directories
   that point to its `/usr/lib/python/' files and compile them.

If we going to do this, it's stupid for each package's pre/post scripts
to do the work.  I had implemented scripts so that packages could do:

#!/bin/sh
# postinst script
PACKAGE=`basename $0 .postinst`
/usr/lib/python/install-package $PACKAGE

#!/bin/sh
# prerm script
PACKAGE=`basename $0 .prerm`
/usr/lib/python/remove-package $PACKAGE

Much cleaner and harder to screw up, IMO.

 4.1. Building Embedded Programs
 ---
 
  Programs which embed a Python interpreter must declare a
  `Build-Depends' on `pythonX.Y-dev'.

Extension modules should do this as well.

 A. Upgrade Procedure
 
 
  This section describe the procedure for the upgrade from the current
  `python-XXX (1.5)' packages to the `python1.5-XXX' packages, the
  removal of the `python2-XXX' packages and the upgrade to the recent
  `python2.1-XXX' upstream packages:
 
  1.   File bugs against any packages that do not meet the above
   alternatives for packages.

I have almost all the packages fixed already (for my proposed policy,
but it would be easy to change for your proposed policy).  I was going
to email the maintainers diffs.

I'm about ready to give up trying to improve the Debian/Python
situation.  I assumed the Python maintainers were busy and that's why
they didn't respond to any of my posts.  Now, new packages have been
installed into woody.  Hmm.

  Neil




Re: [Draft] Debian Python Policy 0.2

2001-10-12 Thread Anthony Towns
On Wed, Oct 10, 2001 at 10:28:58AM -0700, Neil Schemenauer wrote:
 Anthony Towns wrote:
  Hrm. That doesn't seem to make sense. For example, Python 2.1 supports
  the Python 2.0 API completely, and Python 2.2 supports the Python 2.1
  API completely too, doesn't it?
 API in this context means binary API.  Only Python 2.1.X supports the
 2.1 API.
 The point is probably moot anyhow since I've almost finished creating
 packages using the scheme proposed by Donavon and others.  I need to
 update the policy and doing some more testing yet though.

Which scheme was that?

Cheers,
aj

-- 
Anthony Towns [EMAIL PROTECTED] http://azure.humbug.org.au/~aj/
I don't speak for anyone save myself. GPG signed mail preferred.

 Security here. Yes, maam. Yes. Groucho glasses. Yes, we're on it.
   C'mon, guys. Somebody gave an aardvark a nose-cut: somebody who
can't deal with deconstructionist humor. Code Blue.
-- Mike Hoye,
  see http://azure.humbug.org.au/~aj/armadillos.txt



pgpJ19LhlTsFQ.pgp
Description: PGP signature


Re: [Draft] Debian Python Policy 0.2

2001-10-10 Thread Anthony Towns
On Sun, Sep 30, 2001 at 01:52:00PM -0700, Neil Schemenauer wrote:
 Donovan Baarda wrote:
  Hmmm, but if only python can provide python-api-*, then any packages that
  depend on python-api-X.Y will be broken when a new version of python
  providing python-api-X.Z comes out, and no python-X.Y package can be
  compatible with it.

Hrm. That doesn't seem to make sense. For example, Python 2.1 supports
the Python 2.0 API completely, and Python 2.2 supports the Python 2.1
API completely too, doesn't it? Or something almost to that effect,
if you consider the 2.1 API to be the set of non-deprecated functions
supported by python 2.1, or similar.

Having Python 2.1 look in /usr/lib/python2.[01] and Provide:
python-api-2.0, python-api-2.1 might adequately express this, and ease
upgrade problems.

 That's right.  Packaged modules must be updated when a new version of
 Python is installed.

It would be a shame if the packaging system declared some combinations
of packages broken, even though in actual fact they would/could work fine.

It'll be more of a shame is python is a continual source of problems as
far as porting (oh no! everything python related must be rebuilt right
now!) or the unstable-testing process is concerned.

Cheers,
aj

-- 
Anthony Towns [EMAIL PROTECTED] http://azure.humbug.org.au/~aj/
I don't speak for anyone save myself. GPG signed mail preferred.

 ``Freedom itself was attacked this morning by faceless cowards.
 And freedom will be defended.''   Condolences to all involved.


pgpupj2aUkgOZ.pgp
Description: PGP signature


Re: [Draft] Debian Python Policy 0.2

2001-10-10 Thread Gordon Tyler
 The point is probably moot anyhow since I've almost finished creating
 packages using the scheme proposed by Donavon and others.  I need to
 update the policy and doing some more testing yet though.

That's good news. I'm itching to try out some of the new features. Would I
be able to assist in testing your packages?

Ciao,
Gordon





Re: Debian Python policy.

2001-10-03 Thread David Maslen
Donovan Baarda [EMAIL PROTECTED] writes:

[...]

 IMHO, the best solution given what you have described above is to make each
 new release of python as a python-X.Y package that installs
 /usr/bin/pythonX.Y, and have another small python package which depends
 on the latest python-X.Y and installs a /usr/bin/python link to
 /usr/bin/pythonX.Y.

[...]

 I'm sorry for bringing this all up now, when it sounds like the policy and
 packages are basicly done... I was late into this and thought I'd throw in
 my 2c.

You said that very well. Pretty much exactly what I have been
thinking.  Better late than never, but at the end of the day I suppose
the maintainer, of python (and perhaps all the packages which depend on
it, should decide, because they are doing the work, and I'm, not!




Re: Debian Python Policy [draft]

2001-10-02 Thread Neil Schemenauer
Carey Evans wrote:
 In my original example, spam embeds libpython2.1.so.  It would make
 sense for this to mean it depends on python-api-2.1, though this isn't
 what the current shlibs file says.

Only python can provide python-api-*.

  Neil




Re: Debian Python Policy [draft]

2001-10-02 Thread Jim Penny
On Tue, Oct 02, 2001 at 06:53:39AM -0700, Neil Schemenauer wrote:
 Carey Evans wrote:
  In my original example, spam embeds libpython2.1.so.  It would make
  sense for this to mean it depends on python-api-2.1, though this isn't
  what the current shlibs file says.
 
 Only python can provide python-api-*.
 

Why?  Could you better explain your reasoning here?  
On the face of it, it certainly seems that python-1.5 ought to be
able to provide python-api-1.5.

Jim Penny

   Neil
 
 
 -- 
 To UNSUBSCRIBE, email to [EMAIL PROTECTED]
 with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]
 




Re: Debian Python Policy [draft]

2001-10-02 Thread Donovan Baarda
Quoting Neil Schemenauer [EMAIL PROTECTED]:

 Jim Penny wrote:
[...]
 The python is a small package to create a link from /usr/bin/python2.2
 to /usr/bin/python.  python-eggs is a dummy package for dependencies
 (similar to what is done for GCC).  When we upgrade Python to 2.2 we
 have:
 
 /- python ---
 python-2.2
 spam  --   
 \--- python-eggs --- python-eggs-2.1 ---
 python-2.1
 
 The dependencies are still broken.  We could have:
 
 /\
 spam  --  
 python-2.1
 \ python-eggs-2.1 --/  
 
 That makes spam dependent on the version of Python installed.  Perhaps
 I'm missing some detail of Donovan's plan.

The trick is the wrapper packages python-eggs version dependancy tied to the 
python wrapper package (look familiar?). The python-eggs package is used to 
pull in the latest python-eggs version package for the latest python, so it is 
tied to a particular version of the python wrapper package.

 /-- python (2.1) \ 
 spam  --  /\ 
 \  (=2.1,2.2)  python-2.1
  \  /  /
   \-- python-eggs /-- python-2.1-eggs --/
 
when we upgrade to python 2.2

 /- python (2.2)- python-2.2
 spam  -- 
 \  (=2.1,2.2)  
  \  /   
   \-- python-eggs /--- python-eggs-2.1  python-2.1
 
spam is broken because python-eggs is broken, but the dependancy system tells 
us it is broken because the python-eggs wrapper depends on a particular version 
of python that has been upgraded.

The thing to remember is spam depends on the latest python and python-eggs. 
When python has been upgraded and python-eggs has not, the latest python + eggs 
combo is broken. There is nothing we can do about this... python (2.2) needs 
python-2.2-eggs for python + eggs to work. So we upgrade python-eggs;

 /-- python (2.2)-\
 spam  --  /\  
 \  (=2.2,2.3)  python-2.2
  \  /  /
   \-- python-eggs /--- python-2.2-eggs -/

  python-2.1-eggs --- python-2.1

Now everything is working again. We have upgraded python and python-eggs, and 
created python-2.2 and python-2.2-eggs. Note that at no stage did python-2.1 
and and python-2.1-eggs break, so any packages that depended directly on them 
(ie, tied to the particular 2.1 version packages) never broke. The latest 
version of python + eggs briefly broke as the packages were upgraded. 

This clearly shows the benefits and drawbacks of versioned vs unversioned 
dependancies. spam could have a versioned dependancy against python-2.1 and it 
would never break as python-2.2 was introduced (provided python-2.1 packages 
continued to exist), however, it would have to be upgraded every time python 
upgraded to use the latest python. By not depending on a particular version of 
python, it doesn't need to be upgraded to use the latest python, but requires 
that the latest python + eggs combo is not broken.

In my above diagrams the (=2.1,2.2) dependancy could be replaced with a 
python-api-2.1 provided by python (as suggested by Neil), but I think this 
actually introduces confusion rather than convenience. The problem is that it 
doesn't really represent a particular version of the api, just a particular 
version range of the latest python package.

Note that my proposal actually has a lot in common with Neil's. We are both 
using (=2.1,2.2) dependancies to ensure the latest python + modules breaks 
when not all of them are of the same version, though in his case he has 
introduced the confusing python-api as a shorthand for this. Perhaps 
using python-base-2.1 or python-latest-2.1 would be less confusing, but I 
still think the version range is clearer.

The only real difference is I'm proposing the latest packages be small wrappers 
around python-2.1 versioned packages. This means old versioned packages get 
created as you go, rather than after python upgrades, and they don't break as 
python upgrades. It also allows other packages to choose whether they depend on 
python, or python-2.1, even when python 2.1 is the latest version.

--
ABO: finger [EMAIL PROTECTED] for more information.




Re: Debian Python Policy [draft]

2001-10-02 Thread Neil Schemenauer
Donovan Baarda wrote:
 In my above diagrams the (=2.1,2.2) dependancy could be replaced with a 
 python-api-2.1 provided by python (as suggested by Neil), but I think this 
 actually introduces confusion rather than convenience. The problem is that it 
 doesn't really represent a particular version of the api, just a particular 
 version range of the latest python package.

It does represent the version of the API (for bytecode and the extension
module binary interface).  I suppose I am abusing it in the sense that
only the python can provide it.  If we go with your plan we drop -api
bit and use python-X.Y instead.

  Neil




Re: Debian Python policy.

2001-10-01 Thread Donovan Baarda

Quoting Neil Schemenauer [EMAIL PROTECTED]:

 Donovan Baarda wrote:
  Packages like extension modules _are_ tied to a particular version and
 hence 
  should be in a python-X.Y-foo package that installs into
 /usr/lib/pythonX.Y. 
  There would also be an empty package python-foo that simply depends on
 the 
  latest python-X.Y-foo and python packages.
 
 I known this can be made to work.  I think it's ugly and not worth the
 effort however.  Perhaps we need to have a vote.

Before I stir you guys into voting, perhaps I should clarify my postition. I 
don't (currently) mantain any python packages. I am an end user of python 
packages. 

I proposed the above because it is a way that Python packages could be smoothly 
and gradually upgraded when Python upgrades. I am concerned that the policy you 
are proposing will effectively break Python untill _all_ Python packages are 
upgraded. Things like Zope that cannot be upgraded as rapidly as the rest of 
Python will be broken until they are upgraded to use additional python-X.Y 
packages produced especially to support them.

However, as I said, I am not a Python packager. Dispite the fact that I believe 
the above will reduce your workload in the long term, you guys are are the ones 
making the packages, and he who does it, gets to decide how it gets done :-)

--
ABO: finger [EMAIL PROTECTED] for more information.




Re: Debian Python Policy [draft]

2001-10-01 Thread Carey Evans
Neil Schemenauer [EMAIL PROTECTED] writes:

 spam should depend on python not python-2.1.  

In my original example, spam embeds libpython2.1.so.  It would make
sense for this to mean it depends on python-api-2.1, though this isn't
what the current shlibs file says.

-- 
 Carey Evans  http://home.clear.net.nz/pages/c.evans/

You think you know... what's to come... what you are.




Re: Debian Python Policy [draft]

2001-09-30 Thread Donovan Baarda
On Sat, Sep 29, 2001 at 11:10:43PM -0700, Neil Schemenauer wrote:
 Carey Evans wrote:
  By way of example, suppose I have a package spam that embeds Python
  2.1, and therefore depends on python-2.1.  spam also uses the eggs
  module, and therefore depends on python-eggs, which depends on
  python-2.1 itself.
  
  Now Python 2.2 is released, and eggs is recompiled for it.  The spam
  maintainer is on holiday, so it doesn't get recompiled for a while.
  If I then install lumberjack, which depends on python-2.2 and on
  eggs, apt will upgrade python and eggs to satisfy the dependencies,
  and hopefully install python-2.1 to keep spam happy.
  
  Still with me?  All the dependencies are satisfied, but spam doesn't
  work any more - the eggs module has disappeared out from under it.
 
 Excellent point.  I've updated the policy document to prevent this.  The
 python package should provide python-api-X.Y.  Module packages should
 depend on python-api-X.Y.  If someone packages an older version of
 Python they should call it python-X.Y.  Packaged modules for that Python
 should depend on python-X.Y.  Older versions of Python should never
 provide python-api-X.Y.

This fixes the dependancies, but requires new packages for old versions.
Every new version of python will cause cascading updates of everything...
updates of existing packages for the new python, and _new_ packages for the
old version. Before all these packages are updated/created, everything is
busted... even the new old python-X.Y is busted untill all the new
python-X.Y-foo packages are created. Your only option is don't apt-update
anything untill all the packages are done. 

Actually, the case of spam and eggs demonstrates how this busts things.
No-one with spam installed will be able to install any of the new python
packages untill spam is updated. Your only option is to remove spam if you
want any new python packages. Installing a python-X.Y package won't fix it,
since it doesn't provide python-api-X.Y.

-- 
--
ABO: finger [EMAIL PROTECTED] for more info, including pgp key
--




Re: [Draft] Debian Python Policy 0.2

2001-09-30 Thread Neil Schemenauer
Donovan Baarda wrote:
 Hmmm, but if only python can provide python-api-*, then any packages that
 depend on python-api-X.Y will be broken when a new version of python
 providing python-api-X.Z comes out, and no python-X.Y package can be
 compatible with it.

That's right.  Packaged modules must be updated when a new version of
Python is installed.

  Neil




Debian Python policy.

2001-09-27 Thread Donovan Baarda
G'day debian-python,

Just read the DWN, saw mention of the Python policy, read it, and subscribed to 
this list to throw in some comments. I note that the policy was posted some 
time ago, so these comments might be too late.

First off, you need to clarify what you are attempting to achieve. There are 
three possibile aims as I see it;

1) single official version of Python in archive/distro.
2) multiple alternative versions of Python in archive/distro, only one 
installed at a time.
3) multiple alternatives versions of Python installed at a time.

Option 1 means every time Python upgrades, all packages dependant on that 
version of Python are broken and have to be upgraded, with old versions removed 
from the distro.

Option 2 means every time Python upgrades, new versions of all version 
dependant python packages are added to the archive/distro at the mantainers 
lesure. Different versions of packages do not need to co-exist and must 
conflict with each other.

Option 3 is similar to option 2, but different versions must be able to co-
exist and shouldn't conflict with each other. Mechanisms need to be in place to 
ensure the correct version is used as needed.

Why would you want multiple versions available/installed? One reason is new 
releases that are not backwards compatible, requiring old versions to run old 
software. Another reason is new versions being experimental, so you'd rather 
default to the old version but experiment with the new one.

Your policy seems to be aiming for Option 3... the hardest, but is that really 
what we want? Option 2 looks viable to me, and is easier to achieve. Option 3 
is highly suggestive of using the alternatives mechanism, which your policy 
doesn't mention.

The policy says there should be a single python package of the latest version. 
Only a single package can provide /usr/bin/python. This suggests that when 
python upgrades, the old python package needs to be re-released as python-X.Y, 
and a new python package released. This is ugly... better way is to always 
release Python-X.Y packages, and use some mechanism to select which one 
is python. This can be done by all python-X.Y packages providing python. The 
python-X.Y packages can then either all conflict with each other, or use 
alternatives to select which is /usr/bin/python. Note that if it is desireable 
to have a python package for some reason (apt-get funnies, version dependancies 
etc), then have the python-X.Y packages provide python-base, and have the 
python package depend on python-base.

The policy says that modules should be named python-foo and depend on python-
X.Y. This breaks Option 2 and option 3 because it only allows for a single 
version of python-foo, which will be tied to a particular version of python. In 
reality there are some modules that are tied to a particular version of python 
(compiled against them), and some that are forwards compatible with some base 
version (=1.5). It would be nice if both types of packages could be handled 
with a minimum of upgrading required.

I suggest modules that depend on python-X.Y should be named python-X.Y-foo, 
allowing for multiple versions of version dependant modules. Other modules 
should be named python-foo and depend on python (=X.Y). 

The lack of versioned provides makes things a little tricky... it would be nice 
if python-X.Y could provide python (X.Y), so python-foo could depend on python 
(=X.Y) (though even this introduces new problems). Without versioned provides, 
the best we can do is have installing python version X.Y depend on python-X.Y 
(ie installing latest python always installs the latest python-X.Y). Note that 
the same trick would need to be done with python-X.Y-foo packages... have a 
python-foo version X.Y package that depends on python-X.Y-foo so that other 
packages can depend on python-foo (=X.Y).  

There are heaps of fine details to nut out. I've got some more thoughts on 
this, but this email is getting long enough, so I'll shut up now :-)

--
ABO: finger [EMAIL PROTECTED] for more information.