Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Python version support policy #463

Open
jmuhlich opened this issue Sep 23, 2019 · 2 comments

Comments

@jmuhlich
Copy link
Member

commented Sep 23, 2019

As a follow-on to #414, we should establish an official policy on what versions of Python we will support. @alubbock suggested "three most recent minor versions" which today would mean 3.5, 3.6 and 3.7. That's fine with me. We should also decide how we'll handle Python major versions, e.g. if Python 4 ever happens. :) Maybe a LTS (long-term support) model, such as:

Upon release of a new major release of Python, the PySB major version will be incremented and its support for the previous Python major version will cease immediately. The previous PySB release will go into Long-Term Support (LTS) mode, receiving only critical bugfixes while retaining support for the previous Python release. LTS releases will be maintained for N years.

@alubbock

This comment has been minimized.

Copy link
Member

commented Sep 23, 2019

Python 4 doesn't seem to be on the horizon yet, and it might turn out to be a relatively minor increment (they don't follow semantic versioning). The Python team also seem to've learned from the 2->3 debacle; a new major release isn't likely to be on the same scale as that.

All that said, it's useful for PySB users to have some certainty. I'd suggest N=2 years is reasonable. If Python 4 turns out to require only minor changes, we could choose to keep Python 3 support in the master branch as well, but I don't think that's something we can commit to until more details are known.

@alubbock

This comment has been minimized.

Copy link
Member

commented Sep 25, 2019

Our Python version support policy is up on our website, and reproduced below:

PySB will support Python 2.7 until January 1, 2020. After that date, PySB's major version number will be incremented (PySB 2.x). From PySB 2.x onward, our policy will be to support the three most recent minor versions of Python (most likely Python 3.6, 3.7, and 3.8 at time of PySB 2.x release).

Upon a new major release of Python, the PySB major version will be incremented and its support for the previous Python major version will cease immediately. The previous PySB release will go into Long-Term Support (LTS) mode, receiving only critical bug fixes while retaining support for the previous Python release. LTS releases will be maintained for 2 years.

Background

Python 2.7 will itself become unsupported from January 1, 2020, as per PEP 373, therefore our decision to end Python 2.7 support is in line with this.

We want a Python version support policy that strikes a balance between taking advantage of new Python features and providing stability. On the current Python release cycle, support for new versions would last around five years, which we feel is a reasonable length of time.

We hope this policy helps to provide clarity to PySB users. If you have comments or questions regarding this policy, please raise them on the relevant GitHub issue. Support is also available on our Gitter chat room.

-- The PySB Development Team

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
2 participants
You can’t perform that action at this time.