Skip to content

Commit

Permalink
Merge pull request #388 from glotzerlab/test-python-3.13
Browse files Browse the repository at this point in the history
Support Python 3.13
  • Loading branch information
joaander authored Sep 6, 2024
2 parents 2d1e71f + 1b4ff6d commit 26b6bfb
Show file tree
Hide file tree
Showing 16 changed files with 110 additions and 139 deletions.
4 changes: 3 additions & 1 deletion .clang-tidy
Original file line number Diff line number Diff line change
Expand Up @@ -14,4 +14,6 @@ Checks: 'bugprone-*,
-readability-function-cognitive-complexity,
-cert-dcl37-c,
-cert-dcl51-cpp,
-bugprone-narrowing-conversions'
-bugprone-narrowing-conversions,
-misc-include-cleaner,
'
6 changes: 3 additions & 3 deletions .github/requirements-test.in
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
cython == 3.0.8
numpy == 1.26.4
pytest == 8.2.0
cython == 3.0.11
numpy == 2.1.1
pytest == 8.3.2
20 changes: 10 additions & 10 deletions .github/requirements-test.txt
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
#
# This file is autogenerated by pip-compile with Python 3.12
# by the following command:
#
# pip-compile requirements-test.in
#
cython==3.0.8
# This file was autogenerated by uv via the following command:
# uv pip compile -p 3.10.1 requirements-test.in
cython==3.0.11
# via -r requirements-test.in
exceptiongroup==1.2.2
# via pytest
iniconfig==2.0.0
# via pytest
numpy==1.26.4
numpy==2.1.1
# via -r requirements-test.in
packaging==24.0
packaging==24.1
# via pytest
pluggy==1.5.0
# via pytest
pytest==8.2.0
pytest==8.3.2
# via -r requirements-test.in
tomli==2.0.1
# via pytest
39 changes: 17 additions & 22 deletions .github/workflows/build_wheels.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,6 @@ on:

workflow_dispatch:

env:
UV_VERSION: 0.2.2

jobs:
build_wheels:
name: Build wheels [${{ matrix.python.version }}, ${{ matrix.os.base }}-${{ matrix.os.arch }}]
Expand All @@ -40,25 +37,25 @@ jobs:
arch: 'x86_64'

python:
- version: 'cp39'
oldest_numpy: '1.21.6'
- version: 'cp310'
oldest_numpy: '1.21.6'
- version: 'cp311'
oldest_numpy: '1.23.2'
- version: 'cp312'
oldest_numpy: '1.26.2'
- version: 'cp313'
oldest_numpy: '2.1.1'

steps:
- uses: actions/[email protected]
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7

- name: Build wheels
uses: pypa/[email protected]
uses: pypa/cibuildwheel@bd033a44476646b606efccdd5eed92d5ea1d77ad # v2.20.0
env:
CIBW_BUILD: "${{ matrix.python.version }}-*"
CIBW_TEST_REQUIRES: pytest==8.2.1 numpy==${{ matrix.python.oldest_numpy }}

- uses: actions/[email protected]
- uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874 # v4.4.0
with:
name: dist-python-${{ matrix.python.version }}-${{ matrix.os.base }}-${{ matrix.os.arch }}
path: ./wheelhouse/*.whl
Expand All @@ -67,23 +64,21 @@ jobs:
name: Build source distribution
runs-on: ubuntu-latest
steps:
- uses: actions/[email protected]
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7

- uses: actions/[email protected]
name: Install Python
- name: Set up Python
uses: actions/setup-python@f677139bbe7f9c59b41e40162b753c062f5d49a3 # v5.2.0
with:
python-version: '3.12'

- name: Install uv
run: curl --proto '=https' --tlsv1.2 -LsSf https://github.com/astral-sh/uv/releases/download/${{ env.UV_VERSION }}/uv-installer.sh | bash

- name: Install build
run: 'uv pip install -r .github/requirements-build-sdist.txt --only-binary :all: --system --reinstall'
python-version: 3.12
- name: Set up Python environment
uses: glotzerlab/workflows/setup-uv@ae7e7c6931098a313ef8069ef04b88a55c3a40f6 # 0.3.0
with:
lockfile: ".github/requirements-build-sdist.txt"

- name: Build sdist
run: python -m build --sdist --outdir dist/ .

- uses: actions/[email protected]
- uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874 # v4.4.0
with:
name: dist-sdist
path: dist/*.tar.gz
Expand All @@ -95,7 +90,7 @@ jobs:

steps:
- name: Download artifacts
uses: actions/[email protected]
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8
with:
merge-multiple: 'true'
pattern: dist-*
Expand All @@ -107,15 +102,15 @@ jobs:
- name: Upload to PyPI
# upload to PyPI on every tag starting with 'v'
if: startsWith(github.ref, 'refs/tags/v')
uses: pypa/[email protected].0
uses: pypa/gh-action-pypi-publish@0ab0b79471669eb3a4d647e625009c62f9f3b241 # v1.10.1
with:
user: __token__
password: ${{ secrets.PYPI_API_TOKEN }}

- name: Upload to TestPyPI
# otherwise, upload to TestPyPi
if: ${{ !startsWith(github.ref, 'refs/tags/v') && (github.event_name != 'pull_request' || (github.event.pull_request.head.repo.full_name == github.repository && github.actor != 'dependabot[bot]')) }}
uses: pypa/[email protected].0
uses: pypa/gh-action-pypi-publish@0ab0b79471669eb3a4d647e625009c62f9f3b241 # v1.10.1
with:
user: __token__
password: ${{ secrets.TEST_PYPI_API_TOKEN }}
Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/release.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ jobs:
runs-on: ubuntu-latest

steps:
- uses: actions/[email protected]
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
with:
fetch-depth: 0
submodules: true
Expand Down Expand Up @@ -63,7 +63,7 @@ jobs:
- name: Tar source
run: tar -cvJf "${name}-${tag:1}.tar.xz" "${name}-${tag:1}"

- uses: actions/[email protected]
- uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874 # v4.4.0
with:
name: release
path: |
Expand All @@ -77,12 +77,12 @@ jobs:

steps:
- name: Download artifacts
uses: actions/[email protected]
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8
with:
name: release

- name: Create release
uses: softprops/action-gh-release@v2
uses: softprops/action-gh-release@c062e08bd532815e2082a85e87e3ef29c3e6d191 # v2.0.8
if: startsWith(github.ref, 'refs/tags/v')
with:
files: "*.tar.*"
Expand Down
26 changes: 1 addition & 25 deletions .github/workflows/stale.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,28 +8,4 @@ on:

jobs:
stale:
runs-on: ubuntu-latest
steps:
- uses: actions/[email protected]
with:
days-before-close: 10
stale-issue-label: stale
stale-pr-label: stale
exempt-issue-labels: essential
exempt-pr-labels: essential

days-before-issue-stale: 170
stale-issue-message: >
This issue has been automatically marked as stale because it has not had
recent activity. It will be closed if no further activity occurs.
close-issue-message: >
This issue has been automatically closed because it has not had
recent activity.
days-before-pr-stale: 20
stale-pr-message: >
This pull request has been automatically marked as stale because it has not had
recent activity. It will be closed if no further activity occurs.
close-pr-message: >
This pull request has been automatically closed because it has not had
recent activity.
uses: glotzerlab/workflows/.github/workflows/stale.yaml@ae7e7c6931098a313ef8069ef04b88a55c3a40f6 # 0.3.0
19 changes: 8 additions & 11 deletions .github/workflows/style_check.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -13,27 +13,24 @@ on:

workflow_dispatch:

env:
UV_VERSION: 0.2.2

jobs:
clang-tidy:
name: Run clang-tidy
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
steps:
- uses: actions/[email protected]
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
- name: Set up Python
uses: actions/[email protected]
uses: actions/setup-python@f677139bbe7f9c59b41e40162b753c062f5d49a3 # v5.2.0
with:
python-version: 3.12
- name: Install uv
run: curl --proto '=https' --tlsv1.2 -LsSf https://github.com/astral-sh/uv/releases/download/${{ env.UV_VERSION }}/uv-installer.sh | bash
- name: Install prereqs
run: 'uv pip install -r .github/requirements-test.txt --only-binary :all: --system --reinstall'
- name: Set up Python environment
uses: glotzerlab/workflows/setup-uv@ae7e7c6931098a313ef8069ef04b88a55c3a40f6 # 0.3.0
with:
lockfile: ".github/requirements-test.txt"
- name: Configure
run: cmake -B build
- name: Execute clang-tidy
run: clang-tidy-14 -p=build gsd/*.c gsd/*.h scripts/*.cc --quiet --warnings-as-errors="*"
run: clang-tidy-18 -p=build gsd/*.c gsd/*.h scripts/*.cc --quiet --warnings-as-errors="*"

# This job is used to provide a single requirement for branch merge conditions.
checks_complete:
Expand Down
36 changes: 13 additions & 23 deletions .github/workflows/unit_test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -17,36 +17,30 @@ defaults:
run:
shell: bash

env:
UV_VERSION: 0.2.2

jobs:
unit_test:
name: Unit test [py${{ matrix.python }} ${{ matrix.c_compiler }} ${{ matrix.os }}]
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
include:
##############
# Windows
- os: windows-2019
python: '3.12'
- os: windows-2022
python: '3.12'
python: '3.13.0-rc.1'
##############
# Mac
# macos-x86_64
- os: macos-13
python: '3.12'
# macos-arm64
- os: macos-14
python: '3.12'
python: '3.13.0-rc.1'
##############
# Ubuntu 24.04
- os: ubuntu-24.04
python: '3.9'
c_compiler: gcc-13
cxx_compiler: g++-14
- os: ubuntu-24.04
python: '3.10'
c_compiler: gcc-14
Expand All @@ -63,12 +57,12 @@ jobs:
python: '3.12'
c_compiler: clang-18
cxx_compiler: clang++-18
- os: ubuntu-24.04
python: '3.13.0-rc.1'
c_compiler: clang-18
cxx_compiler: clang++-18
##############
# Ubuntu 22.04
- os: ubuntu-22.04
python: '3.9'
c_compiler: gcc-11
cxx_compiler: g++-11
- os: ubuntu-22.04
python: '3.10'
c_compiler: gcc-12
Expand All @@ -87,10 +81,6 @@ jobs:
cxx_compiler: clang++-15
##############
# Ubuntu 20.04
- os: ubuntu-20.04
python: '3.9'
c_compiler: gcc-10
cxx_compiler: g++-10
- os: ubuntu-20.04
python: '3.10'
c_compiler: clang-10
Expand All @@ -105,17 +95,17 @@ jobs:
cxx_compiler: clang++-12

steps:
- uses: actions/[email protected]
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
with:
path: code
- name: Set up Python
uses: actions/[email protected]
uses: actions/setup-python@f677139bbe7f9c59b41e40162b753c062f5d49a3 # v5.2.0
with:
python-version: ${{ matrix.python }}
- name: Install uv
run: curl --proto '=https' --tlsv1.2 -LsSf https://github.com/astral-sh/uv/releases/download/${{ env.UV_VERSION }}/uv-installer.sh | bash
- name: Install prereqs
run: 'uv pip install -r code/.github/requirements-test.txt --only-binary :all: --system --reinstall'
- name: Set up Python environment
uses: glotzerlab/workflows/setup-uv@ae7e7c6931098a313ef8069ef04b88a55c3a40f6 # 0.3.0
with:
lockfile: "code/.github/requirements-test.txt"
- name: Set Linux compiler
if: ${{ startsWith(matrix.os, 'ubuntu') }}
run: |
Expand Down
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,10 @@ __pycache__
*.pyc
*.pyo
*.so
.cache
fl.c
build
compile_commands.json
devdoc
dist
gsd.egg-info
Expand Down
Loading

0 comments on commit 26b6bfb

Please sign in to comment.