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

BEP 9: Minimum downstream versions #10558

Closed
bryevdv opened this issue Oct 8, 2020 · 9 comments
Closed

BEP 9: Minimum downstream versions #10558

bryevdv opened this issue Oct 8, 2020 · 9 comments

Comments

@bryevdv
Copy link
Member

bryevdv commented Oct 8, 2020

Following on from #9295 I'd like to codify our policy for tracking Python versions. I'd to propose that we reduce the burden on ourselves by adopting a policy that is either very simple, reactive to existing precedent, or both, e.g.:

  • We will guarantee to support the three latest minor versions of Python, measured from 6 months after the latest minor release (to allow the later release some time for adoption), or
  • We will follow NEP 29

Thoughs @bokeh/dev

@mattpap
Copy link
Contributor

mattpap commented Oct 8, 2020

Given the new annual release cycle for Python, both almost equivalent (starting with 3.9). Though I would proceed with the first one, as it gives immediate indication how many versions are supported.

@bryevdv
Copy link
Member Author

bryevdv commented Oct 16, 2020

FYI NEP 29 suggests this for projects:

We suggest that all projects adopt the following language into their development guidelines:

This project supports:

  • All minor versions of Python released 42 months prior to the project, and at minimum the two latest minor versions.
  • All minor versions of numpy released in the 24 months prior to the project, and at minimum the last three minor versions.

However, since NEP 29 was adopted, Python has moved from an 18 month cadence to a 12 month cadence, so adopting NEP as-is is more like 4 Python versions. So I agree that "number of versions" is simpler and clearer, and propose:

Bokeh commits to supporting at least the three latest minor versions of Python.

To allow time for the most recent Python version to gain adoption, the clock starts three months after a new Python minor version is release.

Example: Suppose Bokeh currently supports Python versions 3.9.x, 3.10.x, and 3.11.x. Python releases 3.12.0. Bokeh support for 3.9.x may not be dropped immediately, but only after three months have passed since the 3.12.0 release.

Do we want also to make statements about Numpy? Two observations:

  • We have this far been extremely conservative in supporting previous Numpy versions. Much more than NEP 29 suggests.

  • We don't actually currently test with the min numpy version in CI (but we probably should)

@bryevdv
Copy link
Member Author

bryevdv commented Oct 16, 2020

I've gone ahead and started the draft here:

https://github.com/bokeh/bokeh/wiki/BEP-9:-Downstream-Version-Support

@bryevdv bryevdv changed the title BEP: Python version tracking BEP 9: Minimum downstream versions Dec 1, 2021
@bryevdv bryevdv added this to the 3.0 milestone Dec 1, 2021
@bryevdv
Copy link
Member Author

bryevdv commented Dec 1, 2021

cc @bokeh/core I have fleshed out the draft of the BEP a the link above. I think it is ready for review/adoption. Please take a look and register any comments, or 👍 / 👎 here in a comment

👍 from me

@ianthomas23
Copy link
Member

According to https://pypi.org/project/numpy/1.11.3/#files numpy 1.11.3 only supports up to python 3.6. So maybe we should look at a later version of numpy as our minimum.

@bryevdv
Copy link
Member Author

bryevdv commented Dec 1, 2021

@ianthomas23 well, the table there currently is just a record of what has historically been in setup.py at the time a release was tagged regardless of any other considerations. As you can see updating the listed versions have never really been given any consideration (part of the reason for the BEP!)

For 3.0 I am proposing Numpy 1.18 as the min version, are you suggesting the table should be updated to "more realistic" historical minimum versions, even if that disagrees with what was in the setup.py spec?

@ianthomas23
Copy link
Member

@bryevdv My apologies, that was only a half-considered comment before I moved on to a meeting. I've actually read and understand it all now!

No, don't modify the historic information in the table, and numpy 1.18 seems a sensible choice for bokeh 3.0. So 👍 from me.

@bryevdv
Copy link
Member Author

bryevdv commented Dec 1, 2021

OK I think we already have enough agreement, but I will leave this open for another day in case anyone else wants to chime in. Otherwise I will plan to mark accepted and update the wiki tomorrow

@bryevdv
Copy link
Member Author

bryevdv commented Dec 2, 2021

Screen Shot 2021-12-02 at 09 53 37

and also from @ianthomas23 above.

I will mark as accepted now.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants