PythonModulesTeam

Getting a package into Debian through the Python Modules Team

General

If you have a Python package that you would like to push upstream to Debian, you can do it easily through the Debian Python Modules Team. Note that this team only deals with Python Modules, not Python applications. You can (as detailed below) upload your Python application packages to mentors and look for a sponsor on the team's IRC channel, or you can use the Python Applications Packaging Team.

In Debian, you can only upload to their repositories if you are a "Debian Developer" (DD). This requirement is analogous to requiring an MOTU (for Ubuntu Universe) or a core-dev (for Ubuntu Main) to upload to Ubuntu's repositories. You will have to work through a DD to get your packages uploaded to Debian. For Python packages, this is easily done through the Python Modules Team, which is open to contributions from Ubuntu and to participation by people who are not experts. The team web page can be found here:

http://python-modules.alioth.debian.org/

The team has two primary communication media:

The first step is create an alioth account (Gforge) at http://alioth.debian.org. Your account will be username-guest. Then ask to be added to the Debian Python Modules Team. You can do this via either the mailing list or the IRC channel. You will be able to help the team with more than 50 packaged modules into the svn repository and of course add new ones. The team maintains the debian subdirectories of their source packages in the svn repository.

The team has a policy document that describes how to use the svn repository and other packaging policies:

http://python-modules.alioth.debian.org/python-modules-policy.html

To bring your new package into Debian, you will first need to file an Intent To Package (ITP) bug against the wnpp package. The process for this is described here:

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

There is a good (but lengthy) FAQ about packaging for non-DDs here:

http://people.debian.org/~mpalmer/debian-mentors_FAQ.html

You will also want to make an account on mentors.debian.net so that you have a place to upload your packages for your sponsor to review (this site provides a function for Debian very similar to that provided by REVU for Ubuntu). When you have a package ready for review, add it to:

http://wiki.debian.org/Teams/PythonModulesTeam/TODO

The general process is to develop the debian subdirectory for your package and then commit it to the packagename/trunk directory in the team svn repository. Then, if you want, you can ask on IRC for an experienced member of the team to review it. Once you are confident of your package, you build a signed source package and upload it (to either mentors or sponsors). Then you can ask on IRC for a DD to review it. Once it's been blessed by your sponsor and uploaded, you then tag the final debian subdirectory in svn at packagename/tags/version-number/ (use svn-buildpackage for this - see below). Your work is done. You will be notified via e-mail that your package has been uploaded.

Note: If you are updating an existing package, and an invdividual (not the team), is listed in the Maintainer field make sure to work through that individual, unless he/she tells you otherwise.

Next (much like Ubuntu), your new package will go to the Debian NEW queue for review before it is added to the Debian repositories. You can follow the status of the NEW queue here (the page is uploaded roughly once an hour, so don't sit there and click refresh on your browser):

http://ftp-master.debian.org/new.html

You will also have a single page you can monitor the status of all of your packages at:

http://qa.debian.org/developer.php?login=email@address

Tools

Many of the tools used to package for Debian will be the same as you use in Ubuntu.

Subversion

If you haven't used svn before, you will want to study the documentation and basic commands a bit. To check out the team svn package repository, the command is:

svn co svn+ssh://login@svn.debian.org/svn/python-modules/packages/

If you don't have your ssh pass phrase cached locally, you will be asked for your alioth password multiple (three) times when you do this. The method for setting up svn+ssh is described here:

http://wiki.debian.org/Alioth/Svn#SettingupSSHthefirsttime

You can also browse the repository via the web:

http://svn.debian.org/wsvn/python-modules/
http://svn.debian.org/viewsvn/python-modules/

Sid chroot

Unless you have also installed Debian, you will want a Debian chroot. The process for setting up a chroot on an Ubuntu system (including a Debian Sid chroot) is here:

https://wiki.ubuntu.com/DebootstrapChroot

pbuilder

You should also use pbuilder to ensure that your packages will build in a clean build environment. General Ubuntu pbuilder information is here:

https://wiki.ubuntu.com/PbuilderHowto

You can find a pbuilder script for Sid here:

http://revu.tauware.de/~laserjock/pbuilder-sid

svn-inject and svn-buildpackage

You will need these two tools to add your packages to the repository and tag the different versions uploaded to the Debian archive.

If it is your initial upload to the repository, svn-inject will help you create the appropriate directory structure:

svn-inject -o your-package_0.1-1.dsc svn+ssh://login@svn.debian.org/svn/python-modules/packages/

Note: Do not forget the /packages/ suffix.

Each time a new version of the package is uploaded to the Debian archive, you should tag it in the repository running the following command in the 'your-package' directory:

svn-buildpackage --svn-tag-only

Debian differences

Ubuntu is derived from Debian and packaging for the two distributions is very similar.

Release naming

In virtually all cases, you will be uploading your package to unstable. Debian releases have names (from the characters in the movie Toy Story), but the initial point of upload is almost always unstable (always known as Sid).

Patching

In Ubuntu, small changes are often allowed to the source files directly, but the Debian approach as a whole is 'always use a patch system' for such changes. There are exceptions and errors, but a package entering Debian isn't one of the exceptions. dpatch, quilt or CDBS's simple-patchsys is recommended. Information on how to set up and use patching systems is here:

Maintainer/Uploaders control fields

Are you working on a new python-modules package ? - List your name and email address as maintainer, you're the primary maintainer and responsible. - List Python Modules Team in the Uploaders field, it will give the group a clue about the package and carte blanche for uploads; there are no NMUs (Non-Maintainer Uploads) here.

Are you working on a existing python-modules package ? - Add your name in the Uploaders field. - Don't touch the Maintainers field or the existing entries in the Uploaders field; make sure that Python Modules Team is present.

Note: If lintian complains about a lack of NMU versioning when you build the source package, you've made a mistake in your control file.

Debian/PythonModulesTeam (last edited 2010-01-12 22:53:16 by stefanor)