Skip to content

release/8.2 can use Python 3.13#3317

Closed
nrnhines wants to merge 8 commits into
release/8.2from
hines/8.2-py13
Closed

release/8.2 can use Python 3.13#3317
nrnhines wants to merge 8 commits into
release/8.2from
hines/8.2-py13

Conversation

@nrnhines

Copy link
Copy Markdown
Member

Closes #3316

Comment thread .circleci/config.yml Outdated
matrix:
parameters:
NRN_PYTHON_VERSION: ["37", "38", "39", "310", "311"]
NRN_PYTHON_VERSION_MINOR: ["9", "10", "11", "12", "13"]

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What's our policy on supporting deprecated Python versions? I think we shouldn't drop support for a patch release, maybe for a minor one it'd be justified, but for a patch it seems a bit much since one could argue dropping support for a Python version is a breaking change.

On the other hand, I don't know if any of the CI providers we are currently using actually have support for 3.7 and 3.8; if they don't, we would kind of be forced to either 1) drop support for them as well, or 2) build any missing releases manually. Here's to hoping that they are still supported in all relevant CIs so we can avoid either of the options above 😅

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I probably have taken the wrong path to adding python3.13 to 8.2. I.e. attempting a complete switch to master way of dealing with github actions and ci. The 3.13 build problems with respect to NEURON source files are pretty well in hand. Perhaps on top of that, minimal additions to existing 8.2 ci,etc. are in order which merely add 313 to the list of additional pythons (surprise that 312 is missing above!). I was just perplexed by the cython/numpy version issue.

@sonarqubecloud

Copy link
Copy Markdown

@JCGoran

JCGoran commented Jan 26, 2025

Copy link
Copy Markdown
Collaborator

From my testing in #3319, I think we must backport at least these changes to make things work:

The CI is still broken on #3319, with a weird error on the code coverage one (missing symbols for some reason), and Numpy complaints on the Windows one (since we're using dynamic Python, and 3.8 and below don't support numpy 2).

…euron import h, gui. (#3243)

* nrnpython_finalize can only cleanup and Py_Finalize from MainThread

* save stdin terminal settings on import hoc and restore on h.quit()
…d. (#3259)


* Print tcgetatt/tcsetattr error messages only if STDIN is a tty.
@sonarqubecloud

Copy link
Copy Markdown

nrnhines added a commit that referenced this pull request Mar 24, 2025
At starting point, jelic/8.2-py313 #3319 had only two CI failures.

Almost the entirety of this PR is to get 8.2 to pass CI.
In addition it supports Python3.13.
Bug fixes adopted from the master are
#3239 Launching nrniv -python with Python 3.13.0 does not allow use of gui.
#3259 On h.quit() terminal settings are same as when neuron.hoc was imported.
#3243 save stdin terminal settings on import hoc and restore on h.quit()
#3276 Python 3.13.1 broke [s for s in sl] where sl is a SectionList. Manual partial cherry-pick.

Other PR attempts at fixing CI failures that can be closed when this PR is merged, are #3329 #3325 #3319 #3317

Many of the CI fixes are backports from #3028 #3040 #3303 #3105 #3278

bldnrnmacpkgcmake.sh was updated. It isolates a change (avoid breaking CI) with -DNRN_MAC_PKG=ON
---------

Co-authored-by: Goran Jelic-Cizmek <goran.jelic-cizmek@epfl.ch>
@nrnhines

Copy link
Copy Markdown
Member Author

Obsoleted by #3352

@nrnhines nrnhines closed this Mar 24, 2025
@nrnhines nrnhines deleted the hines/8.2-py13 branch March 24, 2025 15:23
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.

2 participants