Python BoF at DebConf10 - summary
Summary of discussions in the Python BoF meet at DebConf10
The Python BoF meet was held in the afternoon of Friday, 6th August
2010 at Debconf10 in New York City. Several participants in the Python
community in Debian were present at the discussion, and many issues
were discussed and a way forward for several missing aspects were
considered. For further discussion of these aspects, a summary of the
discussions follows.
Python in Squeeze
=================
Squeeze will ship with Python 2.5, 2.6 (as default) and 3.1.
Discussions:
* Destiny of 3.x in Squeeze, freeze exceptions for new binary
python3-* packages built from existing sources: To provide
for a semblance of completeness, Python 3.x should ship with
at least certain important modules in a working state for Squeeze.
* Replace the use of python-central/dh_pycentral with dh_python2 for
all packages. This also led to the question as to how this would
affect efforts to backport a package to Lenny. The proposed
solution for this was to backport dh_python2 to Lenny and use an
updated python-defaults for Lenny, as this would be much easier
than other methods to allow dh_python2 based packages to be
backported. Some further questions which remain are: how to handle
this case in CDBS and how to handle python2.5 in this case (these
weren't obvious during the discussions).
* Currently the debug information for .so files (not _d.so) cannot be
accessed by gdb in python-support based packages (as gdb expects them
in a different location). This issue affects several packages.
* Testing modules/extensions at build time.
Recommendations:
* As testing is frozen, there will be no new Python versions uploaded
for Squeeze. The versions which will ship with Squeeze will be
based on the current versions which are already present.
* Piotr Ożarowski has volunteered to approach the release team to
request freeze exceptions for the python3.x-* binary packages. We
hope that we can convince them to provide the exceptions, since
these are binary packages built out of the same sources as packages
existing in Squeeze, which means that we are not introducing
totally new source packages.
* It is necessary that we prioritize the binary packages in a way
such that the important reverse dependencies are in first, for the
Python 3.x modules.
* Source packages building an additional python3-* binary package
should be uploaded into experimental first for testing them out.
Once the python3-* binary is tested it may be uploaded to unstable
provided that is has a freeze exception, since it has already
cleared NEW. The python-all and python3-all* packages will not
include python2.7 and python3.2 as supported Python versions to not
disrupt the building of these python3-* binary packages.
* dh_python{2,3} support needs to be added into CDBS.
* Further discussion about moving extensions by dh_pysupport to the
location recognized by gdb.
* It's too late to remove python-central in Squeeze.
Testing
-------
* It was recommended that the use of unit tests during build time be
promoted, against all 'install'-ed (supported versions according to
pyversions). Use of distutils' --no-compile should be avoided.
This provides for much better build time checking of
packages, and catches lots of errors in packages before they
actually hit the archive.
Some interesting aspects in this regard which were discussed are:
+ It would be necessary to disable all tests which require network
access or extremely lengthy (in time) or memory hungry. How this
is achieved may differ from package to package; and it was decided
that it would be best if upstream code was not patched heavily in
order to achieve this.
+ Only the subset of tests which succeed on the buildds
should be enabled by default. DEB_BUILD_OPTIONS currently supports
nocheck, so should we recommend something like check-all, no
nocheck-{net,x} to provide for a better classification of sets of
tests?
Squeeze + 1 plans
=================
Discussions:
* List of supported Python versions in Squeeze + 1.
* A single installation location for public Python 3 modules.
Some concerns are:
+ What if the package doesn't work with default Python version? How
do we handle this case, and how many such packages exist?
+ If a module is not compatible with all supported, multiple
versions of the module are needed. How many packages fall in this
category?
* Dropping python-central. In most cases dropping the Build-Dependency
on python-central and replacing the dh_pycentral call with dh_python2
should suffice when using a sufficiently new python-defaults
(2.6.5-13 or later)
Recommendations:
* We want to support Python 2.7 and 3.2 in Squeeze + 1.
* It was recommended that we DO NOT generate any files or symbolic
links during package installation; all files belonging to a package
after install should be shipped within the respective .deb
files. In other words, install-time file generation (other than
.pyc files) should be strictly avoided.
* It was recommended that dh_python3 be proposed as the default
packaging helper for debhelper and cdbs.
* Consider dropping python-central and python-support helpers for
Python 2.X
Participants:
=============
* Bastian Venthur <venthur@debian.org> (only 1st of the two hours)
* Gaudenz Steinlin <gaudenz@debian.org>
* Kumar Appaiah <akumar@debian.org>
* Matthias Klose <doko@debian.org>
* Piotr Ożarowski <piotr@debian.org>
* Tiziano Zito <tiziano.zito@bccn-berlin.de>
* Varun Hiremath <varun@debian.org>
* Yaroslav Halchenko <yoh@debian.org>
--
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
Reply to: