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

Practice around supported Python and Sphinx versions #513

Closed
2 tasks
choldgraf opened this issue Oct 13, 2021 · 5 comments · Fixed by executablebooks/.github#20
Closed
2 tasks

Practice around supported Python and Sphinx versions #513

choldgraf opened this issue Oct 13, 2021 · 5 comments · Fixed by executablebooks/.github#20

Comments

@choldgraf
Copy link
Member

Description

Two of the big dependencies for our stack are Python and Sphinx. We should decide on a policy to follow for "officially" supporting Python and Sphinx versions in our test suites.

Python

In #306 @chrisjsewell suggested that we use the Python end-of-life dates to decide which versions of Python to support.

I suggest that we do the following:

  • Use the EOL dates to drop support for Python versions
  • Test against the last 3 minor Python releases (so from today, it'd be 3.10, 3.9, 3.8)
  • Document this practice

Sphinx

IN #306 we had some discussion and this seemed to land on officially supporting the last 2 major versions of Sphinx.

Tasks

  • Any objections / edits to the practice described above?
  • Document this in the contributing guide
@choldgraf choldgraf changed the title Document practices around supported Python and Sphinx versions Practice around supported Python and Sphinx versions Oct 13, 2021
@choldgraf choldgraf moved this to Next Up 👍 in Activity Board Oct 13, 2021
@choldgraf choldgraf assigned choldgraf and unassigned choldgraf Oct 13, 2021
@chrisjsewell
Copy link
Member

Test against the last 3 minor Python releases (so from today, it'd be 3.10, 3.9, 3.8)

If you don't test against 3.7, then you are not supporting it: it'll be most likely that new code changes would break support for the oldest version of python than any other (using newer syntax features that are not supported or require a back port package).
At a minimum we should test against the oldest version supported and newest, i.e. from the end of the year 3.7 and 3.10

@choldgraf
Copy link
Member Author

I guess the main concern is having tons of jobs in our CI/CD as new versions are released.

Questions

  • What if we tested the oldest supported version, and the latest two released versions?
  • What about Sphinx and major versions of Python? Do we test all supported versions of sphinx each Python version that we also test? It wouldn't surprise me if there are some versions of Sphinx that don't work with some versions of python, but I don't have data to back that up

@choldgraf
Copy link
Member Author

choldgraf commented Oct 13, 2021

(I also don't feel that strongly that we need to only test 3 python versions, if others don't think it's a big deal...it just seemed like a reasonable number to balance n_jobs and coverage)

@chrisjsewell
Copy link
Member

Another thing I would suggest is that the (documented) aim should be for the the support to come within maybe 6 months of the release of new versions, e.g. as soon as sphinx v4 came out there were people asking for its support, which is understandable, but obviously depending on the number of breaking changes it's unlikely going to be feasible to roll out support for all JB dependencies within days

@mmcky
Copy link
Member

mmcky commented Oct 27, 2021

I tend to agree we should test against all supported python versions.

@choldgraf perhaps we should force the tests to pass for python=3.7,3.8, and 3.9 and then add python=3.10 as a separate individual test on a single platform until python=3.10 is more mainstream (i.e. adopted in anaconda etc.).

Repository owner moved this from Next Up 👍 to Done 🎉 in Activity Board Nov 9, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: Done 🎉
Development

Successfully merging a pull request may close this issue.

3 participants