=== BITS FROM THE DEBIAN PYCON HANGOUT ===
Agenda: - Discuss how we might support multiple interpreters with Python 3 packages, for cpython + pypy C extensions. - Set up a plan for the svn => git migration - Python 2 "deprecation" - /usr/bin/python - what do? CPYTHON + PYPY EXTENSIONS ------------------------- [APP] <-- pypy Application \ [python-foobar] <-- Python extension \ [python-barbaz] <-- C extension The issue is, how do we provide a module [python-barbaz], such that this extension will work for application [APP], when [APP] is running under PyPy. Since [APP] only (really) depends on [python-foobar], dragging the dependency of something like [pypy-barbaz] to [APP]'s control is sub-optimal. The first pass solution is to ship *both* cpython and pypy extensions in [python-barbaz], but don't add a Dependency on `pypy`. Another solution was to create a helper that crawls the depdencies of [APP], and pull in Depends, on a package like [pypy-barbaz], and use those. Consensus seems to be "give it a shot" and try to see what works. There are no pypy apps, so this isn't an issue yet. SVN => GIT ---------- "We should just do it!" We've settled on a deadline of Jessie release (yes, like 2 weeks!) to convert the majority of packages *or* have a *very* clear plan. We need to also make a patch system choice, and the deadline is the same. The current primary patch systems for git are git-dpm and patch-queue. We'd likely have to pick one of the two. All present felt strongly that we should always use pristine upstream tarballs as released by upstreams, with pristine-tar. PYTHON 2 "DEPRECATION" ---------------------- Python 2 is EOL in 2020. Realistically, this means we have 2 cycles left to get our packages off Python 2. This means we need to start planning *now* to gut as much Python 2 from the archive as we can. The end-goal is to get Python 2 off the default install ASAP, and make it so hard to drag Python 2 in as a Dependency that you have to explicitly apt-get install python 2. - Extend lintian to raise warnings if a package only supports Python 2. !! We need a contributor for this. - Research all packages whose upstream supports Python 3, but we only build Python 2 modules. File higher priority bugs to enable Python 3. - File wishlist bugs on things that only use Python 2. We'll use usertags to track progress. - Find applications which work in Python 3, and aggresively move them to Python 3, ensure Dependency chains are complete. - Look at Python 2 modules which contain no r-deps, mark them as canidates for removal. In 2 cycles time. - Look at packages that are Python 2 only and are dead upstream or have no support for Python 3 upstream. Patch packages to support alternatives, and remove the upstream dead Python 2 stuff before stretch. - Require new uploads supporting Python 3 upstream, to provide Python 3 packages. Next, we'll need to research what Debian infra currently uses Python 2. This is going to be huge. We need to start to get the Debian Infra off Python 2 and onto Python 3. There are some massive projects here, so this one might be sticky. /usr/bin/python =============== "This will be contentious" Upstream Python's direction for Python paths is in favor of explicitly numbered /usr/bin/python2 and /usr/bin/python3. In support of this, rough consensus in the room is that /usr/bin/python should likely be removed *entirely* from shebangs (though not from the distro). /usr/bin/python2 exists as far back as wheezy, so there's no need to try to fiddle around, even for oldoldstable backports. Plans: - Explicitly define the shebang as being one of {python2,python3} - Add a lintian warning for files shipping /usr/bin/python. geofft's suggestion was considered, consensus was to do such work upstream, and formalize it as a PEP (or update an existing PEP). Many thanks to Allison Randal, Asheesh Laroia, Barry Warsaw, Geoffrey Thomas, Matthias Klose, and Stefano Rivera (I think that's everyone? Sorry if I missed anyone!) With love, Paul -- .''`. Paul Tagliamonte <paul...@debian.org> | Proud Debian Developer : :' : 4096R / 8F04 9AD8 2C92 066C 7352 D28A 7B58 5B30 807C 2A87 `. `'` http://people.debian.org/~paultag `- http://people.debian.org/~paultag/conduct-statement.txt
signature.asc
Description: Digital signature