Skip to content

drop python 3.7 support for master -> upcoming 9.0.0#2194

Merged
alexsavulescu merged 1 commit into
masterfrom
bye-py37
Jan 25, 2023
Merged

drop python 3.7 support for master -> upcoming 9.0.0#2194
alexsavulescu merged 1 commit into
masterfrom
bye-py37

Conversation

@alexsavulescu

Copy link
Copy Markdown
Member

* EOL (only security fixes mode until 06-2023, no bugfixes anymore)
* reduce CI time and avoid adding more technical debt (i.e. #2123 #2193)
@azure-pipelines

Copy link
Copy Markdown

✔️ d5dcab3 -> Azure artifacts URL

@alexsavulescu alexsavulescu merged commit 7d905a3 into master Jan 25, 2023
@alexsavulescu alexsavulescu deleted the bye-py37 branch January 25, 2023 15:38
@pramodk

pramodk commented Jan 25, 2023

Copy link
Copy Markdown
Member

EOL (only security fixes mode until 06-2023, no bugfixes anymore)

Speeding up CI is good but I am not sure if that means we should also remove the possibility to provide release with Python 3.7.

  • if we do 9.0 release before June, wouldn't have been better to have wheels out there with Python 3.7?
  • if current python 3.7 users want to have Neuron-nightly used in their CIs etc, they won't be getting recent version from tomorrow.
  • Based on pypistat, Python 3.7 has 2nd most downloads.
    image

@alexsavulescu

Copy link
Copy Markdown
Member Author

We could still support python 3.7, but that implies we need to add custom code for the incoming updates that we must do (i.e. removing distutils, deal with Python API deprecations).

  • if we do 9.0 release before June, wouldn't have been better to have wheels out there with Python 3.7?
  • if current python 3.7 users want to have Neuron-nightly used in their CIs etc, they won't be getting recent version from tomorrow.

Are there any hard requirements for this? Python 3.8+ should be default on most systems

  • Based on pypistat, Python 3.7 has 2nd most downloads.

Those stats are for a specific day? I wonder how many are coming from our CIs.
For last 30 days I see:

(venv) savulesc@bbd-cjngk03:~/Workspace/nrn$ pypistats python_minor neuron-nightly -l
┌──────────┬─────────┬───────────┐
│ category │ percent │ downloads │
├──────────┼─────────┼───────────┤
│ null     │  75.60% │     3,643 │
│ 3.9      │   7.80% │       376 │
│ 3.8      │   6.68% │       322 │
│ 3.10     │   4.77% │       230 │
│ 3.7      │   2.84% │       137 │
│ 3.11     │   2.30% │       111 │
│ Total    │         │     4,819 │
└──────────┴─────────┴───────────┘

Date range: 2022-12-01 - 2022-12-31

(venv) savulesc@bbd-cjngk03:~/Workspace/nrn$ pypistats python_minor neuron -l
┌──────────┬─────────┬───────────┐
│ category │ percent │ downloads │
├──────────┼─────────┼───────────┤
│ 3.8      │  32.99% │     1,428 │
│ 3.9      │  25.90% │     1,121 │
│ null     │  18.95% │       820 │
│ 3.7      │  13.96% │       604 │
│ 3.10     │   6.91% │       299 │
│ 3.6      │   0.79% │        34 │
│ 3.11     │   0.46% │        20 │
│ 2.7      │   0.05% │         2 │
│ Total    │         │     4,328 │
└──────────┴─────────┴───────────┘

Date range: 2022-12-01 - 2022-12-31

@pramodk

pramodk commented Jan 25, 2023

Copy link
Copy Markdown
Member

Those stats are for a specific day? I wonder how many are coming from our CIs.

yeah, I selected just one day. Your stats are better!

Are there any hard requirements for this? Python 3.8+ should be default on most systems

People use python packages in complex workflows and for some reason they might have chosen 3.7.

we must do (i.e. removing distutils, deal with Python API deprecations

Is there something that is pending with 3.7 at the moment?

My reasoning is, cutting down support for python 3.7 6 months ahead of EOL is really necessary?? (CI speeding is fine).

@pramodk

pramodk commented Jan 25, 2023

Copy link
Copy Markdown
Member

By the way - if this was already decided in monthly/weekly neuron dev meetings then sorry for making noise here! (I might be absent then).

But if hasn’t discussed then, as we usually do, having such item on meetings in advanced is better to avoid surprises.

Edit: thinking bit more, we can slip in this as it is. When there will be time for next release, we can decide if it’s worth to have wheels/installers supporting 3.7.

@alexsavulescu

Copy link
Copy Markdown
Member Author

Is there something that is pending with 3.7 at the moment?

Yes, for example the two items in this PR description.

My reasoning is, cutting down support for python 3.7 6 months ahead of EOL is really necessary?? (CI speeding is fine).

Well there is no more bugfixing, only security updates and it will be EOL by the time we release 9.0.0. We can manually patch and release 3.7 wheels if required then. CI speeding is just one aspect.

People use python packages in complex workflows and for some reason they might have chosen 3.7.

Can't imagine why choosing 3.7 would be a strong requirement. Some people still use Python 2.7 and 3.5/3.6 today :)

By the way - if this was already decided in monthly/weekly neuron dev meetings then sorry for making noise here! (I might be absent then).

But if hasn’t discussed then, as we usually do, having such item on meetings in advanced is better to avoid surprises.

Nothing about Python 3.7 specifically, but last discussions we had over the years was that we would prefer less maintenance. And working today on distutils + Nico's recent attempt to fix Python API deprecations definitely qualify dropping 3.7 support.

@pramodk

pramodk commented Jan 26, 2023

Copy link
Copy Markdown
Member

only security updates and it will be EOL by the time we release 9.0.0. We can manually patch and release 3.7 wheels if required then.

I hope we will do release before June! 😅 But yeah, we can patch it and release 3.7 support if desired 👍

@alexsavulescu

Copy link
Copy Markdown
Member Author

hope we will do release before June!

Me too :D

nrnhines pushed a commit that referenced this pull request Sep 6, 2023
* EOL (only security fixes mode until 06-2023, no bugfixes anymore)
* reduce CI time and avoid adding more technical debt (i.e. #2123 #2193)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants