[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Python Policy



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


Reply to: