[Python-checkins] cpython: Issue #20812: Add a short opener to the Python 2/3 porting HOWTO.

brett.cannon python-checkins at python.org
Fri Mar 7 18:27:19 CET 2014


http://hg.python.org/cpython/rev/2a922153463e
changeset:   89497:2a922153463e
user:        Brett Cannon <brett at python.org>
date:        Fri Mar 07 12:27:10 2014 -0500
summary:
  Issue #20812: Add a short opener to the Python 2/3 porting HOWTO.

Thanks to Nick Coghlan for the suggestion.

files:
  Doc/howto/pyporting.rst |  31 ++++++++++++++++++++++++++++-
  1 files changed, 30 insertions(+), 1 deletions(-)


diff --git a/Doc/howto/pyporting.rst b/Doc/howto/pyporting.rst
--- a/Doc/howto/pyporting.rst
+++ b/Doc/howto/pyporting.rst
@@ -26,6 +26,32 @@
    For help with porting, you can email the python-porting_ mailing list with
    questions.
 
+The Short Version
+=================
+
+* Decide what's the oldest version of Python 2 you want to support (if at all)
+* Make sure you have a thorough test suite and use continuous integration
+  testing to make sure you stay compatible with the versions of Python you care
+  about
+* If you have dependencies, check their Python 3 status using caniusepython3
+  (`command-line tool <https://pypi.python.org/pypi/caniusepython3>`__,
+  `web app <https://caniusepython3.com/>`__)
+
+With that done, your options are:
+
+* If you are dropping Python 2 support, use 2to3_ to port to Python 3
+* If you are keeping Python 2 support, then start writing Python 2/3-compatible
+  code starting **TODAY**
+
+  + If you have dependencies that have not been ported, reach out to them to port
+    their project while working to make your code compatible with Python 3 so
+    you're ready when your dependencies are all ported
+  + If all your dependencies have been ported (or you have none), go ahead and
+    port to Python 3
+
+* If you are creating a new project that wants to have 2/3 compatibility,
+  code in Python 3 and then backport to Python 2
+
 
 Before You Begin
 ================
@@ -548,7 +574,10 @@
 
 If you have Python 3 code and have little interest in supporting Python 2 you
 can use 3to2_ to translate from Python 3 code to Python 2 code. This is only
-recommended if you don't plan to heavily support Python 2 users.
+recommended if you don't plan to heavily support Python 2 users. Otherwise
+write your code for Python 3 and then backport as far back as you want. This
+is typically easier than going from Python 2 to 3 as you will have worked out
+any difficulties with e.g. bytes/strings, etc.
 
 
 Other Resources

-- 
Repository URL: http://hg.python.org/cpython


More information about the Python-checkins mailing list