Skip to content

CI, MAINT: start testing with 3.15.0rc2 - #5477

Open
tylerjereddy wants to merge 1 commit into
MDAnalysis:developfrom
tylerjereddy:treddy_py_315
Open

tylerjereddy wants to merge 1 commit into
MDAnalysis:developfrom
tylerjereddy:treddy_py_315

Conversation

@tylerjereddy

Copy link
Copy Markdown
Member
  • CPython 3.15.0 "final" is scheduled to be released next Thursday, October 1, based on
    PEP 790. Many upstream packages have already released their ABI-compatible binaries for 3.15.x on PyPI.

  • Local testing on x86_64 Linux with Python 3.15.0rc2 didn't show any problems via the pip install .. routes for the main package and testsuite on this branch.

  • As a result, this branch attemps to update our CI config to include Python 3.15 pre-release testing in CI, but I'm almost certain this is going to fail because of all the "mamba" shenanigans happening in our CI setup/abstractions. It seems like this could be a bit simpler, but for now I think someone needs to push on getting this tested in CI so let's see where it fails and I'll switch to iterating on my fork if it becomes a mess here (a simple PyPI-based CI job would make this trivial, but I'll try to work within the constraints of the current framework... conda packages may be slower to roll out though...).

  • As far as I can tell, there isn't a single issue or pull request about 3.15 yet.

LLM / AI generated code disclosure

LLMs or other AI-powered tools (beyond simple IDE use cases) were used in this contribution: no

PR Checklist

  • Issue raised/referenced?
  • Tests updated/added?
  • Documentation updated/added?
  • package/CHANGELOG file updated?
  • Is your name in package/AUTHORS? (If it is not, add it!)
  • I have read and understand the current AI Policy
  • LLM/AI disclosure was updated.

Developers Certificate of Origin

I certify that I can submit this code contribution as described in the Developer Certificate of Origin, under the MDAnalysis LICENSE.

Comment thread .github/workflows/gh-ci.yaml Outdated
# is not fixed
- name: python_315_nocov
os: ubuntu-latest
python-version: "3.15-dev"

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 suspect this string isn't going to work, even though it works in some other projects.. I think it gets fed to some convoluted mamba-related stuff. We'll see where it errors out...

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.

  error    libmamba Could not solve for environment specs
      The following package could not be installed
      └─ python =3.15.dev * does not exist (perhaps a typo or a missing channel).

I suspect we may need something like https://stackoverflow.com/a/78951636 in our conda/mamba incantation to handle pre-releases. This is usually easier with typical GitHub actions ways to pull in Python or with uv or similar.

Maybe can mess with channels allowed in setup_micromamba..

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.

Ok, the relevant job in CI now does show pytest using the correct version of CPython after some mimicry of the stack overflow conda response:

============================= test session starts ==============================
platform linux -- Python 3.15.0rc2, pytest-9.1.1, pluggy-1.6.0
<snip>

let's see how that lands... local testing suggests it should be just fine.

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.

Yep, looks like the new 3.15.0rc2 testsuite run succeeded in CI.

Comment thread package/pyproject.toml
'Programming Language :: Python :: 3.12',
'Programming Language :: Python :: 3.13',
'Programming Language :: Python :: 3.14',
'Programming Language :: Python :: 3.15',

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.

If Irfan wants to do a release before we claim to fully support 3.15, we should hold off on the trove classifier update since that will advertise metadata for support on PyPI.

Usually there's some stuff on Windows with our deps that lags behind on new CPython releases, and I've only checked x86_64 Linux so far.

@read-the-docs-community

read-the-docs-community Bot commented Sep 25, 2026 •

Copy link
Copy Markdown

Documentation build overview

📚 MDAnalysis | 🛠️ Build #34768416 | 📁 Comparing edc4854 against latest (8b8875c)

  🔍 Preview build  

2 files changed
± index.html
± documentation_pages/analysis/wbridge_analysis.html

* CPython `3.15.0` "final" is scheduled to be
released next Thursday, October 1, based on
PEP 790. Many upstream packages have already released
their ABI-compatible binaries for `3.15.x` on PyPI.

* Local testing on x86_64 Linux with Python `3.15.0rc2`
didn't show any problems via the `pip install ..` routes
for the main package and testsuite on this branch.

* As a result, this branch attemps to update our CI config
to include Python 3.15 pre-release testing in CI, but I'm
almost certain this is going to fail because of all the "mamba"
shenanigans happening in our CI setup/abstractions. It seems
like this could be a bit simpler, but for now I think someone
needs to push on getting this tested in CI so let's see where
it fails and I'll switch to iterating on my fork if it becomes
a mess here (a simple PyPI-based CI job would make this trivial,
but I'll try to work within the constraints of the current framework...
conda packages may be slower to roll out though...).
@codecov

codecov Bot commented Sep 25, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 93.87%. Comparing base (8b8875c) to head (edc4854).

Additional details and impacted files
@@           Coverage Diff            @@
##           develop    #5477   +/-   ##
========================================
  Coverage    93.87%   93.87%           
========================================
  Files          182      182           
  Lines        22522    22522           
  Branches      3206     3206           
========================================
  Hits         21143    21143           
  Misses         917      917           
  Partials       462      462           

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@tylerjereddy

Copy link
Copy Markdown
Member Author

Perhaps also worth mentioning that CPython 3.15 includes something of particular interest to us as developers: https://docs.python.org/3.15/library/profiling.sampling.html

Tachyon (the new native/standard library sampling profiler) has effectively no overhead and requires no function decoration, so it makes it easier for us to identify performance bottlenecks in real/messy workflows, without needing to decorate stuff all over the stack.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant