[Python-checkins] devguide: Update the devguide to reflect workflow changes as a result of
ned.deily
python-checkins at python.org
Sat Mar 30 20:12:11 CET 2013
http://hg.python.org/devguide/rev/e125591a5f12
changeset: 615:e125591a5f12
user: Ned Deily <nad at acm.org>
date: Sat Mar 30 12:11:37 2013 -0700
summary:
Update the devguide to reflect workflow changes as a result of
the 3.2 branch changing to security-fix-only mode.
files:
committing.rst | 21 ++++++++-------------
devcycle.rst | 17 +++++++++--------
faq.rst | 14 +++++++-------
3 files changed, 24 insertions(+), 28 deletions(-)
diff --git a/committing.rst b/committing.rst
--- a/committing.rst
+++ b/committing.rst
@@ -320,15 +320,10 @@
$ hg import --no-c http://bugs.python.org/url/to/the/patch.diff
$ # review, run tests, run `make patchcheck`
$ hg ci -m '#12345: fix some issue.'
- $ # switch to 3.2 and port the changeset using `hg graft`
- $ cd ../3.2
+ $ # switch to 3.3 and port the changeset using `hg graft`
+ $ cd ../3.3
$ hg up
$ hg graft 2.7
- $ # switch to 3.3, merge, and commit
- $ cd ../3.3
- $ hg up
- $ hg merge 3.2
- $ hg ci -m '#12345: merge with 3.2.'
$ # switch to 3.x, merge, commit, and push everything
$ cd ../3.x
$ hg up
@@ -404,13 +399,13 @@
Porting changesets between the two major Python versions (2.x and 3.x)
----------------------------------------------------------------------
-Assume you just committed something on ``2.7``, and want to port it to ``3.2``.
+Assume you just committed something on ``2.7``, and want to port it to ``3.3``.
You can use ``hg graft`` as follow::
- cd ../3.2
+ cd ../3.3
hg graft 2.7
-This will port the latest changeset committed in the 2.7 clone to the 3.2 clone.
+This will port the latest changeset committed in the 2.7 clone to the 3.3 clone.
``hg graft`` always commits automatically, except in case of conflicts, when
you have to resolve them and run ``hg graft --continue`` afterwards.
Instead of the branch name you can also specify a changeset id, and you can
@@ -418,15 +413,15 @@
On older version of Mercurial where ``hg graft`` is not available, you can use::
- cd ../3.2
+ cd ../3.3
hg export 2.7 | hg import -
The result will be the same, but in case of conflict this will create ``.rej``
files rather than using Mercurial merge capabilities.
-A third option is to apply manually the patch on ``3.2``. This is convenient
+A third option is to apply manually the patch on ``3.3``. This is convenient
when there are too many differences with ``2.7`` or when there is already a
-specific patch for ``3.2``.
+specific patch for ``3.3``.
.. warning::
Never use ``hg merge`` to port changes between 2.x and 3.x (or vice versa).
diff --git a/devcycle.rst b/devcycle.rst
--- a/devcycle.rst
+++ b/devcycle.rst
@@ -31,12 +31,12 @@
''''''''
There is a branch for each *feature version*, whether released or not (e.g.
-2.7, 3.2, 3.3). Development is handled separately for Python 2 and Python 3:
+2.7, 3.3). Development is handled separately for Python 2 and Python 3:
no merging happens between 2.x and 3.x branches.
In each of the 2.x and 3.x realms, the branch for a feature version is always a
-descendant of the previous feature version: for example, the ``3.2`` branch is a
-descendant of the ``3.1`` branch.
+descendant of the previous feature version: for example, the ``3.3`` branch is a
+descendant of the ``3.2`` branch.
Therefore, each change should be made **first** in the oldest branch to which it
applies and forward-ported as appropriate: if a bug must be fixed in both Python
@@ -77,10 +77,12 @@
discussed first.
Sometime after a new maintenance branch is created (after a new *minor version*
-is released), the old maintenance branch on that major version (e.g. 3.2.x
-after 3.3 gets released) will go into :ref:`security mode <secbranch>`,
+is released), the old maintenance branch on that major version will go into
+:ref:`security mode <secbranch>`,
usually after one last maintenance release at the discretion of the
-release manager.
+release manager. For example, the 3.2 maintenance branch was put into
+:ref:`security mode <secbranch>` after the 3.2.4 final maintenance release
+following the release of 3.3.0.
.. _secbranch:
@@ -107,8 +109,7 @@
- the ``default`` branch holds the future 3.4 version and descends from ``3.3``
- the ``3.3`` branch holds bug fixes for future 3.3.x maintenance releases
and descends from ``3.2``
-- the ``3.2`` branch holds bug fixes for an upcoming final 3.2.4 maintenance
- release and then for future 3.2.x security releases
+- the ``3.2`` branch holds security fixes for future 3.2.x security releases
- the ``3.1`` branch holds security fixes for future 3.1.x security releases
- the ``2.7`` branch holds bug fixes for future 2.7.x maintenance releases and
descends from ``2.6``
diff --git a/faq.rst b/faq.rst
--- a/faq.rst
+++ b/faq.rst
@@ -174,7 +174,7 @@
git clone git://github.com/akheron/cpython
The mirror's master branch tracks the main repository's default branch,
-while the maintenance branch names (``2.7``, ``3.2``, etc) are mapped
+while the maintenance branch names (``2.7``, ``3.3``, etc) are mapped
directly.
.. _git mirror: http://github.com/akheron/cpython
@@ -796,14 +796,14 @@
How do I make a null merge?
'''''''''''''''''''''''''''
-If you committed something (e.g. on 3.2) that shouldn't be ported on newer
-branches (e.g. on 3.3), you have to do a *null merge*::
+If you committed something (e.g. on 3.3) that shouldn't be ported on newer
+branches (e.g. on default), you have to do a *null merge*::
- cd 3.3
- hg merge 3.2
- hg revert -ar 3.3
+ cd 3.x
+ hg merge 3.3
+ hg revert -ar default
hg resolve -am # needed only if the merge created conflicts
- hg ci -m '#12345: null merge with 3.2.'
+ hg ci -m '#12345: null merge with 3.3.'
Before committing, ``hg status`` should list all the merged files as ``M``,
but ``hg diff`` should produce no output. This will record the merge without
--
Repository URL: http://hg.python.org/devguide
More information about the Python-checkins
mailing list