Skip to content

Update CI#76

Merged
orbeckst merged 20 commits into
mainfrom
update-actions
Apr 30, 2026
Merged

Update CI#76
orbeckst merged 20 commits into
mainfrom
update-actions

Conversation

@orbeckst
Copy link
Copy Markdown
Member

@orbeckst orbeckst commented Apr 24, 2026

Fixes https://github.com/MDAnalysis/mdaencore/security/dependabot/2

Changes made in this Pull Request:

  • update old/deprecated actions
  • update tested Python to 3.11 - 3.14
  • update deployment workflows
  • update RTD config

PR Checklist

  • Tests?
  • Docs?
  • CHANGELOG updated?
  • Issue raised/referenced?

@codecov
Copy link
Copy Markdown

codecov Bot commented Apr 24, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 91.19%. Comparing base (0ebcaff) to head (029ae45).
⚠️ Report is 2 commits behind head on main.

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

- updated actions to recent major versions
- updated python-version to 3.14 or 3.13
- removed deprecated macos-13 runner and replaced macos-15-intel
- removed tested Python 3.9 and 3.10 and added 3.13 and 3.14
- removed from CI
- removed from RTD
- deploy Python 3.11 - 3.14 packages
- updated macos intel images
- fixed incorrect action upload -> download
@orbeckst
Copy link
Copy Markdown
Member Author

The windows runners fail when re-installing MDAnalysis. It looks as if the mamba line just doesn't do anything:

Install line: MDAnalysis MDAnalysisTests
Run mamba install -y -c conda-forge MDAnalysis MDAnalysisTests
  mamba install -y -c conda-forge MDAnalysis MDAnalysisTests
  shell: C:\Program Files\Git\bin\bash.EXE -l {0}
  env:
    INPUT_RUN_POST: true
    CONDA: C:\Users\runneradmin\miniconda3
Microsoft Windows [Version 10.0.26100.32522]
(c) Microsoft Corporation. All rights reserved.

D:\a\mdaencore\mdaencore>

The above should install something, right?

When we then try to import

Run pyver=$(python -c 'import MDAnalysis; print(MDAnalysis.__version__)')
Traceback (most recent call last):
  File "<string>", line 1, in <module>
    import MDAnalysis; print(MDAnalysis.__version__)
    ^^^^^^^^^^^^^^^^^
ModuleNotFoundError: No module named 'MDAnalysis'
Error: Process completed with exit code 1.

then there's no MDAnalysis package.

Comment thread .github/workflows/deploy.yaml
@chr-sa chr-sa mentioned this pull request Apr 26, 2026
4 tasks
@orbeckst
Copy link
Copy Markdown
Member Author

The windows/mamba failure is fixed by setting installer: conda — this seems to work reliably across all runners. See also MDAnalysis/cookiecutter-mdakit#140

- update the license identifier
- update the supported Python versions: 3.11 - 3.14
- runs locally twin 6.2.0
- fails as part of CI (also 6.2.0)
@orbeckst
Copy link
Copy Markdown
Member Author

orbeckst commented Apr 29, 2026

Deploy testing

  • testpypi deployment and testing
  • pypi

@orbeckst
Copy link
Copy Markdown
Member Author

Currently, deployment requires explicit approval, which slows things down a bit and I am not sure if the extra security is needed. I am not a maintainer here so I am not going to change that but wanted to at least let @MDAnalysis/encore folks know.

@orbeckst orbeckst self-assigned this Apr 29, 2026
@orbeckst orbeckst requested review from enoee and yuxuanzhuang April 29, 2026 16:49
@orbeckst
Copy link
Copy Markdown
Member Author

@enoee @yuxuanzhuang this PR updates the CI so that both tests and deployments work again.

It also raises the supported Python versions to 3.11-3.14. Once this is merged, we can look at #72 and the PR #78 to see if they are still needed. Either way, we can then make a 1.0.1 release that should hopefully work again on all platforms and on all recent Pythons.

Please have a quick look. Once you're happy, I'll squash-merge.

@orbeckst orbeckst linked an issue Apr 29, 2026 that may be closed by this pull request
Copy link
Copy Markdown
Collaborator

@enoee enoee left a comment

Choose a reason for hiding this comment

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

Thanks a lot for doing this, I have no comments

We are not building macos x86_64 wheels so we should use the M1 runner
@orbeckst
Copy link
Copy Markdown
Member Author

The current deployment had an inconsistency because I had not understood how pypa/cibuildwheel was driven. In order to produce arm64 wheels we should (probably) not use macos15-intel but macos-15 (see the images for public runners).

For comparison, it was interesting to see how scikit-learn builds wheels.

uses: conda-incubator/setup-miniconda@v4
with:
python-version: 3.11
python-version: 3.14
Copy link
Copy Markdown
Member

@ojeda-e ojeda-e Apr 30, 2026

Choose a reason for hiding this comment

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

I'm shadowing your changes here.
Since I’m not very familiar with this action (or conda in general), I wanted to ask: is this python-version meant to target the latest Python version? I’m wondering whether it might be better to target the oldest supported version instead, then if it works with the min supported here -3.11-, it should also work for newer versions.

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 don't think it matters as it really only needs to build the docs. I just bumped it up so that it will be 2 years until someone has to bump it up again...

@IAlibay
Copy link
Copy Markdown
Member

IAlibay commented Apr 30, 2026

Currently, deployment requires explicit approval, which slows things down a bit and I am not sure if the extra security is needed. I am not a maintainer here so I am not going to change that but wanted to at least let @MDAnalysis/encore folks know.

Generally the recommendation is to keep the approval step - it's what we do in the core library. You don't want anyone attempting to trigger a release without maintainer approval.

@orbeckst
Copy link
Copy Markdown
Member Author

orbeckst commented Apr 30, 2026

Ok, thanks for the advice. I suppose anyone can git-tag and that triggers the test-pypi deployment, which is then stopped through the approval action (or is git-tag functionality restricted?)

@orbeckst orbeckst merged commit 410ff43 into main Apr 30, 2026
37 checks passed
@orbeckst orbeckst deleted the update-actions branch April 30, 2026 20:34
@orbeckst
Copy link
Copy Markdown
Member Author

Leave the branch alive. I used 1.0.1rc[12] tags during testing and these tags (and releases) point to commits on this branch. We should probably eventually remove all of them (including testpypi and pypi)....

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.

update license specifier [CI] Remove exclusion of MDAnalysis "latest" and Python 3.12 from test matrix

4 participants