Skip to content

Commit e810164

Browse files
authored
Merge branch 'main' into fix-issue-72
2 parents 5b0bac4 + 410ff43 commit e810164

10 files changed

Lines changed: 161 additions & 198 deletions

File tree

.github/workflows/deploy.yaml

Lines changed: 39 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ concurrency:
1919

2020
defaults:
2121
run:
22-
shell: bash
22+
shell: bash -l {0}
2323

2424

2525
jobs:
@@ -32,18 +32,17 @@ jobs:
3232
fail-fast: false
3333
matrix:
3434
buildplat:
35-
- [ubuntu-20.04, manylinux_x86_64, x86_64]
36-
- [macos-11, macosx_*, x86_64]
37-
- [windows-2019, win_amd64, AMD64]
38-
- [macos-14, macosx_*, arm64]
39-
python: ["cp39", "cp310", "cp311", "cp312"]
35+
- [ubuntu-22.04, manylinux_x86_64, x86_64]
36+
- [windows-2022, win_amd64, AMD64]
37+
- [macos-15, macosx_*, arm64]
38+
python: ["cp311", "cp312", "cp313", "cp314"]
4039
steps:
41-
- uses: actions/checkout@v4
40+
- uses: actions/checkout@v6
4241
with:
4342
fetch-depth: 0
4443

4544
- name: Build wheels
46-
uses: pypa/cibuildwheel@v2.16.5
45+
uses: pypa/cibuildwheel@v3.4.0
4746
env:
4847
CIBW_BUILD: ${{ matrix.python }}-${{ matrix.buildplat[1] }}
4948
CIBW_ARCHS: ${{ matrix.buildplat[2] }}
@@ -53,8 +52,9 @@ jobs:
5352
if: |
5453
(github.event_name == 'push' && startsWith(github.ref, 'refs/tags/')) ||
5554
(github.event_name == 'release' && github.event.action == 'published')
56-
uses: actions/upload-artifact@v3
55+
uses: actions/upload-artifact@v7
5756
with:
57+
name: wheel-${{ matrix.buildplat[0] }}-${{ matrix.python }}
5858
path: wheelhouse/*.whl
5959
retention-days: 7
6060

@@ -63,20 +63,32 @@ jobs:
6363
name: build package source distribution
6464
runs-on: ubuntu-latest
6565
timeout-minutes: 10
66+
outputs:
67+
version: ${{ steps.extract-version.outputs.version }}
6668
steps:
67-
- uses: actions/checkout@v4
69+
- uses: actions/checkout@v6
6870
with:
6971
fetch-depth: 0
7072

7173
- name: Build sdist
7274
run: pipx run build --sdist
7375

76+
- name: Extract package version
77+
id: extract-version
78+
run: |
79+
SDIST_FILE=$(ls dist/*.tar.gz)
80+
# Extract version from sdist archive (format: mdaencore-1.0.1rc1.tar.gz)
81+
VERSION=$(tar xf ${SDIST_FILE} -O --wildcards '*/*.egg-info/PKG-INFO' | awk '/^Version:/ {print $2}')
82+
echo "version=$VERSION" >> $GITHUB_OUTPUT
83+
echo "Extracted version: $VERSION"
84+
7485
- name: upload artifacts
7586
if: |
7687
(github.event_name == 'push' && startsWith(github.ref, 'refs/tags/')) ||
7788
(github.event_name == 'release' && github.event.action == 'published')
78-
uses: actions/upload-artifact@v3
89+
uses: actions/upload-artifact@v7
7990
with:
91+
name: dist-files
8092
path: dist/*.tar.gz
8193
retention-days: 7
8294

@@ -93,16 +105,16 @@ jobs:
93105
runs-on: ubuntu-latest
94106
needs: [build_wheels, build_sdist]
95107
steps:
96-
- uses: actions/download-artifact@v3
108+
- uses: actions/download-artifact@v8
97109
with:
98-
name: artifact
99110
path: dist
111+
merge-multiple: true
100112

101113
- name: upload_source_and_wheels
102-
uses: pypa/gh-action-pypi-publish@v1.8.10
114+
uses: pypa/gh-action-pypi-publish@v1.14.0
103115
with:
104-
skip_existing: true
105-
repository_url: https://test.pypi.org/legacy/
116+
skip-existing: true
117+
repository-url: https://test.pypi.org/legacy/
106118

107119
upload_pypi:
108120
if: |
@@ -117,13 +129,13 @@ jobs:
117129
runs-on: ubuntu-latest
118130
needs: [build_wheels, build_sdist]
119131
steps:
120-
- uses: actions/download-artifact@v3
132+
- uses: actions/download-artifact@v8
121133
with:
122-
name: artifact
123134
path: dist
135+
merge-multiple: true
124136

125137
- name: upload_source_and_wheels
126-
uses: pypa/gh-action-pypi-publish@v1.8.10
138+
uses: pypa/gh-action-pypi-publish@v1.14.0
127139

128140
check_testpypi:
129141
if: |
@@ -132,22 +144,25 @@ jobs:
132144
name: testpypi check
133145
runs-on: ${{ matrix.os }}
134146
timeout-minutes: 60
135-
needs: upload_testpypi
147+
needs: [upload_testpypi, build_sdist]
136148
strategy:
137149
fail-fast: false
138150
matrix:
139151
os: [ubuntu-latest, macos-latest, windows-latest]
140-
python-version: ["3.9", "3.10", "3.11", "3.12"]
152+
python-version: ["3.11", "3.12", "3.13", "3.14"]
141153

142154
steps:
143155
- name: setup python
144-
uses: actions/setup-python@v4
156+
uses: actions/setup-python@v6
145157
with:
146158
python-version: ${{ matrix.python-version }}
147159

148-
- name: pip install
160+
- name: Wait for version to be available on TestPyPI (30 seconds)
161+
run: sleep 30
162+
163+
- name: pip install mdaencore from testpypi (${{ needs.build_sdist.outputs.version }})
149164
run: |
150-
pip install --index-url https://test.pypi.org/simple/ --extra-index-url https://pypi.org/simple mdaencore
165+
pip install --index-url https://test.pypi.org/simple/ --extra-index-url https://pypi.org/simple "mdaencore==${{ needs.build_sdist.outputs.version }}"
151166
152167
- name: install test deps
153168
run: |

.github/workflows/docs.yaml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,19 +21,19 @@ jobs:
2121
runs-on: ubuntu-latest
2222

2323
steps:
24-
- uses: actions/checkout@v3
24+
- uses: actions/checkout@v6
2525
with:
2626
fetch-depth: 0
2727

2828
- name: setup_miniconda
29-
uses: conda-incubator/setup-miniconda@v2
29+
uses: conda-incubator/setup-miniconda@v4
3030
with:
31-
python-version: 3.11
31+
python-version: 3.14
3232
environment-file: docs/requirements.yaml
3333
auto-update-conda: true
3434
channel-priority: flexible
3535
channels: conda-forge
36-
miniforge-variant: Mambaforge
36+
miniforge-version: latest
3737
use-mamba: true
3838

3939
- name: Build and install package
@@ -55,7 +55,7 @@ jobs:
5555
user_name: 'github-actions'
5656
user_email: 'github-action@users.noreply.github.com'
5757

58-
- uses: actions/upload-artifact@v3
58+
- uses: actions/upload-artifact@v7
5959
if: github.event_name == 'pull_request'
6060
with:
6161
name: pr_docs

.github/workflows/gh-ci.yaml

Lines changed: 21 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ concurrency:
2020

2121
defaults:
2222
run:
23-
shell: bash -l {0}
23+
shell: bash -el {0}
2424

2525
jobs:
2626
main-tests:
@@ -29,19 +29,17 @@ jobs:
2929
strategy:
3030
fail-fast: false
3131
matrix:
32-
# macos-13 is x86_64 and macos-14 is arm64
33-
os: [ubuntu-latest, windows-latest, macos-14, macos-13]
34-
python-version: ["3.10", "3.11", "3.12"]
32+
# macos-latest = arm64, macos-15-intel = x86_64
33+
os: [ubuntu-latest, windows-latest, macos-latest, macos-15-intel]
34+
python-version: ["3.11", "3.12", "3.13", "3.14"]
3535
mdanalysis-version: ["latest", "develop"]
3636
# Manually exclude any combinations of the test matrix that can't be run
37-
exclude:
38-
# The latest release of MDAnalysis only supports up to Python 3.11
39-
# so we exclude 3.12 from the test matrix (issue #68)
40-
- python-version: "3.12"
41-
mdanalysis-version: "latest"
37+
#exclude:
38+
# - python-version: "3.12"
39+
# mdanalysis-version: "latest"
4240

4341
steps:
44-
- uses: actions/checkout@v4
42+
- uses: actions/checkout@v6
4543
with:
4644
fetch-depth: 0
4745

@@ -53,15 +51,15 @@ jobs:
5351
5452
# More info on options: https://github.com/conda-incubator/setup-miniconda
5553
- name: Install conda dependencies
56-
uses: conda-incubator/setup-miniconda@v3
54+
uses: conda-incubator/setup-miniconda@v4
5755
with:
5856
python-version: ${{ matrix.python-version }}
5957
environment-file: devtools/conda-envs/test_env.yaml
6058
add-pip-as-python-dependency: true
6159

62-
miniforge-variant: Mambaforge
60+
miniforge-version: latest
6361
use-mamba: true
64-
channels: conda-forge, defaults
62+
channels: conda-forge
6563

6664
activate-environment: mdaencore-test
6765
auto-update-conda: true
@@ -74,8 +72,8 @@ jobs:
7472
with:
7573
version: ${{ matrix.mdanalysis-version }}
7674
install-tests: true
77-
installer: mamba
78-
shell: bash -l {0}
75+
installer: conda
76+
shell: bash -el {0}
7977

8078
- name: Install package
8179
run: |
@@ -101,9 +99,9 @@ jobs:
10199
102100
- name: codecov
103101
if: github.repository == 'MDAnalysis/mdaencore' && github.event_name != 'schedule'
104-
uses: codecov/codecov-action@v4
102+
uses: codecov/codecov-action@v6
105103
with:
106-
file: coverage.xml
104+
files: coverage.xml
107105
name: codecov-${{ matrix.os }}-py${{ matrix.python-version }}
108106
token: ${{ secrets.CODECOV_TOKEN }}
109107
verbose: True
@@ -115,12 +113,12 @@ jobs:
115113
runs-on: ubuntu-latest
116114

117115
steps:
118-
- uses: actions/checkout@v4
116+
- uses: actions/checkout@v6
119117

120118
- name: Set up Python
121-
uses: actions/setup-python@v4
119+
uses: actions/setup-python@v6
122120
with:
123-
python-version: "3.11"
121+
python-version: "3.14"
124122

125123
- name: Install Pylint
126124
run: |
@@ -140,12 +138,12 @@ jobs:
140138
runs-on: ubuntu-latest
141139

142140
steps:
143-
- uses: actions/checkout@v4
141+
- uses: actions/checkout@v6
144142

145143
- name: Set up Python
146-
uses: actions/setup-python@v4
144+
uses: actions/setup-python@v6
147145
with:
148-
python-version: "3.11"
146+
python-version: "3.14"
149147

150148
- name: Install dependencies
151149
run: |

CHANGELOG.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,18 +22,20 @@ The rules for this file:
2222
- ianmkenney
2323
- tylerjereddy
2424
- IAlibay
25+
- orbeckst
2526
- chr-sa
2627

2728
### Added
2829
<!-- Added functionality -->
2930

3031
### Fixed
32+
- Fix "NameError" for "long" in mdaencore/clustering/affinityprop.pyx (#72, PR #78)
3133
- All dependencies added to pyproject.toml, setup.py, and conda envs (#57)
32-
- Temporary fix for Windows integer size default change in NumPy 2.0.0
34+
- Temporary fix for Windows integer size default change in NumPy 2.0.0 (PR #60)
3335

3436
### Changed
3537
- Update CI and wheel deployment to include macos-arm64 and py3.12 (PR #63)
36-
- Minimum Python version has been raised to 3.10 (PR #66)
38+
- Minimum Python version has been raised to 3.11 (PR #66, PR #76)
3739
- Minimum MDAnalysis version has been raised to 2.1.0 (PR #66)
3840

3941
### Deprecated

0 commit comments

Comments
 (0)