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

Drop support for Python 3.7 #16394

Closed
nsoranzo opened this issue Jul 12, 2023 · 10 comments · Fixed by #16954
Closed

Drop support for Python 3.7 #16394

nsoranzo opened this issue Jul 12, 2023 · 10 comments · Fixed by #16954
Milestone

Comments

@nsoranzo
Copy link
Member

nsoranzo commented Jul 12, 2023

Describe the bug
Python 3.7 reached end of life on 2023-06-27. A number of our dependencies have already dropped support for 3.7 (e.g. numpy since April 2022; black) and more will do in the upcoming months.
With Python 3.12 coming out in October, supporting 5 major Python releases in Galaxy 23.2 seems enough to me, and this will also allow some code cleanup.

xref. https://devguide.python.org/versions/

@nsoranzo nsoranzo added this to the 23.2 milestone Jul 12, 2023
@jmchilton
Copy link
Member

We don't use any of those numpy features I assume.

Is there room to compromise on this - dropping support in the app but maintaining it in the library code - at least below the webapps level?

@nsoranzo
Copy link
Member Author

It's not about any specific dependency feature.

When the ecosystem starts moving, you need to pin package versions (e.g. #16390 ) or introduce hacks (e.g. commit 4ca163b ). And Poetry will find even more difficult to resolve our over 120 dependencies.

@jmchilton
Copy link
Member

For a decade we valued keeping things stable for deployers over improving the experience of developers - this is unfortunate and a misalignment of priorities IMO. If there isn't going to be compromise on this for the library packages than I'm against dropping Python 3.7 in the main app.

@mvdbeek
Copy link
Member

mvdbeek commented Jul 24, 2023

Deployers are not supposed to run python projects beyond their EOL, it's just that python 2s EOL was extremely (and I think unplanned-ly) long. Also the ecosystem has made giant leaps in terms of how easy it is to update the python version (conda, brew, source are all valid options even on the most outdated of systems). If you use our playbooks -> that's managed. If you use run.sh we use conda to install a compatible python version. If you use docker/kubernetes ... you don't care. If we care about the ease of install in such an extraordinary way (which I think supporting beyond EOL is) we (or the library consumers that create apps with similar long-term policies) should start bundling the python interpreter.

@natefoo
Copy link
Member

natefoo commented Jul 24, 2023

3.6 was EOL’d and dropped before folks were even switching to EL8, where it was the default python. I think this is unfortunately just the way of things. People who need an easy experience will be using Ubuntu, which provides a new enough python. People doing fancy stuff on EL know how to get a newer one. I’m ok with this.

@jmchilton
Copy link
Member

The lack of compromise here is obviously disheartening.

@mvdbeek
Copy link
Member

mvdbeek commented Aug 10, 2023

I'm sad to hear this. How would you feel about dropping 3.7 in 24.0 as a compromise ? I do think that supporting EOL python is going to be an increasingly difficult effort, and split support level across packages (do you have util and tool-util in mind, or more ?) would also require non-trivial investment in configuring our tooling.

@nsoranzo
Copy link
Member Author

nsoranzo commented Sep 5, 2023

Our linters/checkers are dropping support for Python 3.7:

@nsoranzo
Copy link
Member Author

nsoranzo commented Sep 5, 2023

Discussed this at the 2023-09-05 Backend WG meeting, the plan is to add a new CI workflow which is a subset of test_galaxy_packages.yaml running unit tests for the Galaxy packages needed by pulsar (currently galaxy-job-metrics, galaxy-objectstore, galaxy-tool-util and galaxy-util) under Python 3.7.

@nsoranzo
Copy link
Member Author

nsoranzo commented Sep 6, 2023

Added deprecation notice of Python 3.7, with plan to drop it in v24.0, in commit 6d35812.

@mvdbeek mvdbeek moved this from Triage/Discuss to In Progress in Backend Working Group - weeklies Sep 12, 2023
mr-c added a commit to common-workflow-lab/galaxy that referenced this issue Nov 1, 2023
@mr-c mr-c mentioned this issue Nov 1, 2023
5 tasks
mr-c added a commit to common-workflow-lab/galaxy that referenced this issue Nov 1, 2023
mr-c added a commit to mr-c/galaxy that referenced this issue Nov 2, 2023
mr-c added a commit to mr-c/galaxy that referenced this issue Nov 2, 2023
mr-c added a commit to common-workflow-lab/galaxy that referenced this issue Nov 6, 2023
mr-c added a commit to common-workflow-lab/galaxy that referenced this issue Nov 14, 2023
nsoranzo pushed a commit to common-workflow-lab/galaxy that referenced this issue Nov 15, 2023
nsoranzo pushed a commit to common-workflow-lab/galaxy that referenced this issue Nov 22, 2023
Fixes: galaxyproject#16394

Also upgrade code to Python 3.8 syntax with:

```
ack --type=python -f | grep -v '^lib/galaxy/schema/bco/\|^lib/galaxy/schema/drs/\|lib/tool_shed_client/schema/trs.*.py\|^tools/\|^.venv/\|^.tox/' | grep -v '^lib/galaxy/files/sources/\|^lib/galaxy/job_metrics/\|^lib/galaxy/objectstore/\|^lib/galaxy/tool_util/\|^lib/galaxy/util/' | xargs pyupgrade --py38-plus
```
nsoranzo pushed a commit to common-workflow-lab/galaxy that referenced this issue Nov 23, 2023
Fixes: galaxyproject#16394

Also upgrade code to Python 3.8 syntax with:

```
ack --type=python -f | grep -v '^lib/galaxy/schema/bco/\|^lib/galaxy/schema/drs/\|lib/tool_shed_client/schema/trs.*.py\|^tools/\|^.venv/\|^.tox/' | grep -v '^lib/galaxy/files/sources/\|^lib/galaxy/job_metrics/\|^lib/galaxy/objectstore/\|^lib/galaxy/tool_util/\|^lib/galaxy/util/' | xargs pyupgrade --py38-plus
```
mr-c added a commit to common-workflow-lab/galaxy that referenced this issue Nov 24, 2023
Fixes: galaxyproject#16394

Also upgrade code to Python 3.8 syntax with:

```
ack --type=python -f | grep -v '^lib/galaxy/schema/bco/\|^lib/galaxy/schema/drs/\|lib/tool_shed_client/schema/trs.*.py\|^tools/\|^.venv/\|^.tox/' | grep -v '^lib/galaxy/files/sources/\|^lib/galaxy/job_metrics/\|^lib/galaxy/objectstore/\|^lib/galaxy/tool_util/\|^lib/galaxy/util/' | xargs pyupgrade --py38-plus
```
nsoranzo pushed a commit to common-workflow-lab/galaxy that referenced this issue Nov 27, 2023
Fixes: galaxyproject#16394

Also upgrade code to Python 3.8 syntax with:

```
ack --type=python -f | grep -v '^lib/galaxy/schema/bco/\|^lib/galaxy/schema/drs/\|lib/tool_shed_client/schema/trs.*.py\|^tools/\|^.venv/\|^.tox/' | grep -v '^lib/galaxy/files/sources/\|^lib/galaxy/job_metrics/\|^lib/galaxy/objectstore/\|^lib/galaxy/tool_util/\|^lib/galaxy/util/' | xargs pyupgrade --py38-plus
```
@github-project-automation github-project-automation bot moved this from In Progress to Done in Backend Working Group - weeklies Nov 29, 2023
assuntad23 pushed a commit to assuntad23/galaxy that referenced this issue Dec 8, 2023
Fixes: galaxyproject#16394

Also upgrade code to Python 3.8 syntax with:

```
ack --type=python -f | grep -v '^lib/galaxy/schema/bco/\|^lib/galaxy/schema/drs/\|lib/tool_shed_client/schema/trs.*.py\|^tools/\|^.venv/\|^.tox/' | grep -v '^lib/galaxy/files/sources/\|^lib/galaxy/job_metrics/\|^lib/galaxy/objectstore/\|^lib/galaxy/tool_util/\|^lib/galaxy/util/' | xargs pyupgrade --py38-plus
```
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging a pull request may close this issue.

4 participants