[Python-checkins] r63107 - peps/trunk/pep-3108.txt
brett.cannon
python-checkins at python.org
Mon May 12 01:24:03 CEST 2008
Author: brett.cannon
Date: Mon May 12 01:24:02 2008
New Revision: 63107
Log:
Try to outline the steps necessary to rename a module.
Modified:
peps/trunk/pep-3108.txt
Modified: peps/trunk/pep-3108.txt
==============================================================================
--- peps/trunk/pep-3108.txt (original)
+++ peps/trunk/pep-3108.txt Mon May 12 01:24:02 2008
@@ -935,7 +935,7 @@
``test.test_support.import_module(name, deprecated=True)``.
#. Check in the change w/ appropriate ``Misc/NEWS`` entry (**block**
- the checkin in ``py3k``!).
+ this checkin in ``py3k``!).
#. Update this PEP noting that the 2.6 step is done.
@@ -943,23 +943,8 @@
Renaming of modules
-------------------
-Stub modules will be created which have the original names. They
-will reside in a stdlib directory similar to the defunct ``lib-old``
-directory. This facility prevents naming conflicts on
-case-insensitive filesystems where only the case of a module's name
-changed.
-
-The stub modules will import the module code based on the new names::
-
- from sys import modules
- import new_name
- modules[__name__] = new_name
-
-As with modules to be removed in 3.0 but not in 2.x,
-``DeprecationWarning`` will be raised using the ``warnings.warn3k()``
-function.
-
-Support in the 2to3 refactoring tool for renames will also be used
+Support in the 2to3 refactoring tool for renames will be used to help
+people transition to new module names
[#2to3]_. Import statements will be rewritten so that only the import
statement and none of the rest of the code needs to be touched. This
will be accomplished by using the ``as`` keyword in import statements
@@ -970,6 +955,53 @@
example of how to approach this.
+Python 2.6
+//////////
+
+#. Use ``svn move`` to rename the module.
+
+#. Create a stub module in ``Lib/lib-old``::
+
+ from warnings import warnpy3k
+ warnpy3k("The XXX module has been renamed to XXX in Python 3.0",
+ stacklevel=2)
+
+ from sys import modules
+ import XXX
+ modules[__name__] = XXX
+
+#. Add a test to ``test_py3kwarn``.
+
+#. Add a ``warning`` directive to the module's documentation.
+
+#. Add an entry in ``Misc/NEWS``.
+
+#. Commit the changes (**block** in py3k).
+
+#. Update all import statements in the stdlib to use the new name.
+
+#. Rename the module in the documentation (both its own and all
+ references).
+
+#. Commit the changes (this checkin should be allowed to propagate to py3k).
+
+#. Add stub entries in the documentation for the old names which
+ lists the module as deprecated under that name and points to the
+ new name (see the module removal steps on the required steps).
+
+
+Python 3.0
+//////////
+
+#. Use ``svn move`` to rename the module.
+
+#. Merge appropriate checkins from 2.6.
+
+#. Add an entry in ``Misc/NEWS``.
+
+#. Commit the changes.
+
+
Open Issues
===========
More information about the Python-checkins
mailing list