Skip to content

prepare 1.2.1 release#34

Merged
orbeckst merged 3 commits into
mainfrom
prep-121-release
Jul 23, 2026
Merged

prepare 1.2.1 release#34
orbeckst merged 3 commits into
mainfrom
prep-121-release

Conversation

@orbeckst

@orbeckst orbeckst commented Jul 23, 2026

Copy link
Copy Markdown
Member

Prepare a patch level release

Changes made in this Pull Request:

  • update metadata
  • ensure supported Python range is correct (3.11 - 3.14)
  • update pypi deployment workflow

PR Checklist

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

- updated license identification using SPDX identfier
- harmonized MDAnalysis and MDAnalysisTests minimal versions
- use mdanalysis_rtd_theme for docs as a dependency
@codecov

codecov Bot commented Jul 23, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 91.82%. Comparing base (56d68da) to head (977b316).
⚠️ Report is 5 commits behind head on main.

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

orbeckst added 2 commits July 23, 2026 07:52
- ensure proper version is installed for testing
- wait for release to appear on PyPi
- source: https://github.com/Becksteinlab/multibind
Comment on lines +21 to +69
name: Build package
if: github.repository == 'MDAnalysis/PathSimAnalysis'
runs-on: ubuntu-latest
outputs:
version: ${{ steps.extract-version.outputs.version }}
steps:
- name: Checkout
uses: actions/checkout@v7
with:
fetch-depth: 0
fetch-tags: true

- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: "3.11"

- name: Install build dependencies
run: |
python -m pip install --upgrade pip
pip install "setuptools>=61.2,<81" build twine

- name: Build package (wheel and sdist)
run: python -m build

- name: Check package
run: twine check dist/*

- name: Extract package version
id: extract-version
run: |
WHEEL_FILE=$(ls dist/*.whl)
VERSION=$(basename "$WHEEL_FILE" | sed -n 's/pathsimanalysis-\([^-]*\)-.*/\1/p')
if [ -z "$VERSION" ]; then
pip install "$WHEEL_FILE" --quiet
VERSION=$(python -c "import pathsimanalysis; print(pathsimanalysis.__version__)")
pip uninstall -y pathsimanalysis --quiet
fi
echo "version=$VERSION" >> "$GITHUB_OUTPUT"
echo "Extracted version: $VERSION"

- name: Upload dist files
uses: actions/upload-artifact@v7
with:
name: dist-files
path: dist/
retention-days: 1

test-pytest:
Comment on lines +70 to +99
name: Run tests
if: github.repository == 'MDAnalysis/PathSimAnalysis'
runs-on: ubuntu-latest
needs: build
steps:
- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: "3.11"

- name: Download dist files
uses: actions/download-artifact@v8
with:
name: dist-files
path: dist/

- name: Install wheel with test extras
run: |
python -m pip install --upgrade pip
WHEEL_FILE=$(ls dist/*.whl)
pip install "${WHEEL_FILE}[test]"

- name: Test import
run: |
python -c "import pathsimanalysis; print(f'Package {pathsimanalysis.__version__} imported successfully')"

- name: Run tests
run: pytest -v --pyargs pathsimanalysis.tests

deploy-testpypi:
Comment on lines +148 to +182
name: Test deployed package (TestPyPI)
if: |
github.repository == 'MDAnalysis/PathSimAnalysis' &&
(github.event_name == 'release' && github.event.action == 'published')
name: Build, upload and test pure Python wheels to PyPi
(github.event_name == 'push' && startsWith(github.ref, 'refs/tags/'))
runs-on: ubuntu-latest
needs: [build, deploy-testpypi]
steps:
- name: Checkout repository for actions
uses: actions/checkout@v7

- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: "3.11"

- name: Wait for version to be available on TestPyPI
uses: ./.github/actions/wait-for-pypi-version
with:
repository: testpypi
package: pathsimanalysis
version: ${{ needs.build.outputs.version }}

- name: Install from TestPyPI
run: |
python -m pip install --upgrade pip
pip install --index-url https://test.pypi.org/simple/ --extra-index-url https://pypi.org/simple/ "pathsimanalysis[test]==${{ needs.build.outputs.version }}"

- name: Test import
run: |
python -c "import pathsimanalysis; print(f'Package {pathsimanalysis.__version__} imported successfully from TestPyPI')"

- name: Run tests
run: pytest -v --pyargs pathsimanalysis.tests

test-deployed-pypi:
Comment on lines +183 to +215
name: Test deployed package (PyPI)
if: |
github.repository == 'MDAnalysis/PathSimAnalysis' &&
(github.event_name == 'release' && github.event.action == 'published')
runs-on: ubuntu-latest
needs: [build, deploy-pypi]
steps:
- uses: actions/checkout@v7
- name: Checkout repository for actions
uses: actions/checkout@v7

- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: "3.11"

- name: pypi_deploy
uses: MDAnalysis/pypi-deployment@main
- name: Wait for version to be available on PyPI
uses: ./.github/actions/wait-for-pypi-version
with:
package_name: 'pathsimanalysis'
tests: false
repository: pypi
package: pathsimanalysis
version: ${{ needs.build.outputs.version }}

- name: Install from PyPI
run: |
python -m pip install --upgrade pip
pip install "pathsimanalysis[test]==${{ needs.build.outputs.version }}"

- name: Test import
run: |
python -c "import pathsimanalysis; print(f'Package {pathsimanalysis.__version__} imported successfully from PyPI')"

- name: Run tests
run: pytest -v --pyargs pathsimanalysis.tests

@orbeckst orbeckst left a comment

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.

Deployment to testpypi and pypi works.

I don't have time to look at the CodeQL suggestions, will have to worry about them another day.

Will merge as is and then make a release #35

@orbeckst
orbeckst merged commit 12d961c into main Jul 23, 2026
44 checks passed
@orbeckst
orbeckst deleted the prep-121-release branch July 23, 2026 15:24
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