Schedule for deprecation of Python 2 support

The schedule for the deprecation of Python 2 support set by DM management is as follows:

  • The 14.0 release that is just about to go out carries a deprecation notice linking to this post
  • The next official release (15.0, ETA early 2018) will be the last release that will be supported under Python 2
  • The next official release after that, version 16.0, will be Python 3 only

The adoption of Python 3 as the delivery standard is LSST-wide [1] and takes into consideration that Python 2 will be end-of-lifed by the start of LSST operations. Developers are keen to take advantages of powerful Python-3 only features, and consolidating on one major language version will allow SQuaRE to effectively double the number of nodes in the CI pool thus reducing developer wait times.

  • All DM code under SQuaRE’s continuous integration is being tested and has worked under Python 3 (this has been the case for more than a year now).
  • Any code written to back server-side services can be Python-3-only already [2]
  • We believe all DM code in the Github LSST org is Python-3 compatible. Please let us know if this is not the case.
  • If you have code that SQuaRE has no visibility into that is intended for LSST operations, you should be making arrangements with your T/CAM about porting it if you haven’t already. All DM Python code must work with Python 3 [3]

If you are a science user and have personal code you wish to keep compatible with the LSST stack, you might find DM’s porting guide useful: SQR-014

[1] ITRFC-8
[2] RFC-342
[3] see Developer Guide


Note that this means the code base will support solely python 3 after 15.0 is released.

Oh yes - as far as the developers are concerned once v15 is out they are working on v16. SQuaRE will maintain python 2 capability for the release manager until v16 is out in case critical maintenance fixes are required (this has been relatively rare).

My apologies for any confusion caused.