Latest diff against master. If you're happy with this, I'll merge to master, update the web page, and trim the wiki. Cheers, -Barry diff --git a/policy.rst b/policy.rst index c09f03a..123792c 100644 --- a/policy.rst +++ b/policy.rst @@ -1,39 +1,44 @@ -======================================== - Python Modules Packaging Team - Policy -======================================== +===================================== + Debian Python Modules Team - Policy +===================================== -:Author: Gustavo Franco <stratus@debian.org>, Raphaël Hertzog <hertzog@debian.org> +:Author: Gustavo Franco <stratus@debian.org>, Raphaël Hertzog <hertzog@debian.org>, Barry Warsaw <barry@debian.org> :License: GNU GPL v2 or later :Introduction: - Python Modules Packaging Team aims to improve the python modules situation - in Debian, by packaging available modules that may be useful and providing - a central location for packages maintained by a team, hence improving - responsiveness, integration and standardization. - - PMPT or just python-modules is hosted at alioth.debian.org, the Debian - GForge installation. We currently have a SVN repository and a mailing list - whose email address can be used in the Maintainer field on co-maintained + The Debian Python Modules Team (DPMT) aims to improve the Python modules + situation in Debian, by packaging available modules that may be useful and + providing a central location for packages maintained by a team, hence + improving responsiveness, integration, and standardization. + + The DPMT is hosted at alioth.debian.org, the Debian GForge installation. We + currently have a git repository and a mailing list whose email address can + be used in the ``Maintainer`` or ``Uploaders`` fields on co-maintained packages. For more information send a message to: debian-python@lists.debian.org .. contents:: ----------------- + Joining the team ----------------- +================ -The team is open to any python-related package maintainer. To be added on -the team, please send your request on debian-python@lists.debian.org -indicate why you want to join the team: maintain your current packages -within the team, help maintain some specific packages, etc. -Don't forget to indicate your Alioth login ! +The team is open to any Python-related package maintainer. To be added to +the team, please send your request to debian-python@lists.debian.org. Include +the following in your request: -Any Debian developer who wishes to integrate his packages in the team can do so -without requesting access (as the repository is writable by all DD). If one +* Why you want to join the team: e.g. maintain your current packages within + the team, help maintain some specific packages, etc. +* Your Alioth login. +* A statement that you have read + https://python-modules.alioth.debian.org/policy.html and that you accept it. + +Any Debian developer who wishes to integrate his packages in the team can do +so without requesting access (as the repository is writable by all DD). If one wants to be more involved in the team, we still recommend requesting_ access -so that he appears in the public member list displayed on Alioth's project page. +so that they appear in the public member list displayed on Alioth's project +page. The team accepts all contributors and is not restricted to Debian developers. Several Debian developers of the team will gladly sponsor packages of non-DD @@ -43,91 +48,129 @@ discussion list or on #debian-python IRC channel (OFTC network). All team members should of course follow the main discussion list: debian-python@lists.debian.org --------------- + Maintainership --------------- +============== A package maintained within the team should have the name of the team either -in the Maintainer field or in the Uploaders field. +in the ``Maintainer`` field or in the ``Uploaders`` field. Maintainer: Debian Python Modules Team <python-modules-team@lists.alioth.debian.org> This enables the team to have an overview of its packages on the DDPO_website_. -* Team in Maintainers is a strong statement that fully collaborative - maintenance is preferred. Anyone can commit to the vcs and upload as - needed. A courtesy email to Uploaders can be nice but not required. +* Team in ``Maintainers`` is a strong statement that fully collaborative + maintenance is preferred. Anyone can commit to the git repository and upload + as needed. A courtesy email to ``Uploaders`` can be nice but not required. -* Team in Uploaders is a weak statement of collaboration. Help in maintaining - the package is appreciated, commits to vcs are freely welcomed, but before - uploading, please contact the Maintainer for the green light. +* Team in ``Uploaders`` is a weak statement of collaboration. Help in + maintaining the package is appreciated, commits to the git repository are + freely welcomed, but before uploading, please contact the ``Maintainer`` for + the green light. Team members who have broad interest should subscribe to the mailing list python-modules-team@lists.alioth.debian.org whereas members who are only interested in some packages should use the Package Tracking System to follow the packages. ---------------------- -Subversion Procedures ---------------------- -We're using a Subversion repository to maintain all the packages, then if you're not -already using it you will need to install svn-buildpackage. +Git Procedures +============== + +As of October 9, 2015, the DPMT uses git as the version control system for all +packages, and git-dpm as the patch management regime. + +Git repositories live on Alioth under the url +``git+ssh://git.debian.org/git/python-modules/packages/<src-pkg-name>.git`` +To access any source package's repository, use ``gbp clone`` on the above url, +substituting *src-pkg-name* for the source package name of the package in +question. + +DPMT git repos are **source-full**, meaning they contain both the upstream +source and the ``debian/`` directory. + +DPMT requires upstream tarballs; releases cannot be made from upstream git +repositories directly. This is because PyPI contains upstream tarballs, and +tarballs are what we upload to the Debian archive. + +Deviations from this policy are strongly discouraged. When you must (not want +to) deviate, you MUST include a ``debian/README.source`` file explaining the +rationale for the deviation and the details of working with the package's git +repo. -*The repository layout:* -metainfo/ - Ignore this directory (reserved for future usage). +Tools +----- -packages/ - The source packages are here. +``gbp build-package`` is used to build the package, either as a source package +for use with ``pbuilder``, ``sbuild``, etc. or as a binary package directory. +Do *not* create ``quilt`` patches directly. Instead, use ``git-dpm +checkout-patched`` to enter a patch branch, edit the files, commit them, and +then use ``git-dpm update-patches`` to switch back to the master branch, with +the commits turned into patches. Use the pseudo header ``Patch-Name`` in the +commit message to control what the patch file will be named, e.g.:: - package-foo - branches - If you or someone wants to play with a package possible breaking the trunk, give it a name and do it here. - tags - For each release, a tag. More information below. - trunk - That's where the main development happens, it should contain only the debian/ subdirectory part of a package. + Patch-Name: fix-the-foo.patch -www/ - Documents and stuff that will be or are being published online in our website. +Use ``git-dpm tag`` to tag the repository when you upload a new release of the +package. See below for the required tag format. -Hints: -====== -* To keep your package tree clean as pointed out above, always :code:`svn-inject` your packages using :code:`-o` argument. -* If you svn-inject'ed a package without :code:`-o`, you should remove upstream sources and run :code:`svn propset mergeWithUpstream 1 debian/`. -* Since you are keeping only debian/ directory in the svn tree, you need to put the 'package-foo'_'version'.orig.tar.gz in tarballs/ a directory above the package, and svn-buildpackage will do the merge for you. More information about this in the svn-buildpackage howto at /usr/share/doc/svn-buildpackage/. -* After upload, tag the latest revision running :code:`svn-buildpackage --svn-tag-only` into 'package-foo' directory. -* You can revert the changelog changes after tagging, running :code:`svn revert debian/changelog`. -* If you're a pbuilder user, you can invoke it using :code:`svn-buildpackage --svn-builder pdebuild <args>`. +Branch names +------------ -For more information on how to maintain packages within the repository with svn-buildpackage: -`http://pkg-perl.alioth.debian.org/subversion.html <https://web.archive.org/web/20141027193341/http://pkg-perl.alioth.debian.org/subversion.html>`_ +Currently, we require the following branch names in the git repo: -Please note that python-modules URLs are different than pkg-perl ones: +* master - The Debianized upstream source directory. This contains both the + upstream source and a ``debian/`` packaging directory. +* pristine-tar - Contains the standard ``pristine-tar`` deltas. +* upstream - The un-Debianized upstream source. This is what you get when you + unpack the upstream tarball. -* svn+ssh://login@svn.debian.org/svn/python-modules/packages/ -* svn://svn.debian.org/python-modules/packages/ -* http://anonscm.debian.org/viewvc/python-modules/ +In some cases you may need to have additional branches, such as if you have +deltas for downstream distributions (e.g. Ubuntu) or need to maintain multiple +versions for security releases in previous versions of Debian. In those +cases, follow the `DEP-14 <http://dep.debian.net/deps/dep14/>`_ guidelines, +and document them in ``debian/README.source``. + + +Tag format +---------- + +Use the following ``git-dpm`` tag formats for the three branches named above. +Put these lines at the *end* of your ``debian/.git-dpm`` file:: + + debianTag="debian/%e%v" + patchedTag="patches/%e%v" + upstreamTag="upstream/%e%u" + +All packages which have been automatically converted from the old Subversion +repository should already have these lines present, but you will need to add +them for any new packages. + + +More information +---------------- + +Additional information for working with DPMT git repositories, creating new +repositories, common workflows, and helpful hints, can be found on the +`Debian wiki <https://wiki.debian.org/Python/GitPackaging>`_ +page. -Moreover, python-modules still use the default layout: don't pass :code:`-l 2` to :code:`svn-inject`. ------------------ Quality Assurance ------------------ +================= The goal of the team is to maintain all packages as best as possible. Thus every member is encouraged to do general QA work on all the packages: fix bugs, test packages, improve them to use the latest python packaging tools, etc. -------- + License -------- +======= -Copyright (c) 2005-2015 Python Modules Packaging Team. All rights reserved. +Copyright (c) 2005-2015 Debian Python Modules Team. All rights reserved. This document is free software; you may redistribute it and/or modify it under the same terms as GNU GPL v2 or later.
Attachment:
pgpZWF63SI47f.pgp
Description: OpenPGP digital signature