Skip to content

Commit

Permalink
Add python 3.13 support (#59)
Browse files Browse the repository at this point in the history
* Add python 3.13 to CI

* remove codecoverage

* reorganize the CI so that it supports different python versions via lockfiles

* fix path for CI testing

* fix CI variable

* fix publishpypi

* Address PR review comments.

* Add script to automatically update lockfiles.

* Automatically update lockfiles.

* Update GitHub Actions with dependabot.

* Remove unused links from README.

* Remove extra spaces between badges.

* Update change log.

* Remove overspecified version constraint.

---------

Co-authored-by: Joshua A. Anderson <joaander@umich.edu>
  • Loading branch information
DomFijan and joaander authored Oct 28, 2024
1 parent 1d24f6d commit 9e4afeb
Show file tree
Hide file tree
Showing 22 changed files with 166 additions and 86 deletions.
10 changes: 0 additions & 10 deletions .coveragerc

This file was deleted.

23 changes: 23 additions & 0 deletions .github/workflows/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
version: 2
updates:
- package-ecosystem: "github-actions"
directory: "/"
target-branch: trunk
schedule:
interval: "monthly"
time: "07:00"
timezone: "EST5EDT"
pull-request-branch-name:
separator: "-"
open-pull-requests-limit: 2
reviewers:
- joaander
groups:
actions-version:
applies-to: version-updates
patterns:
- '*'
actions-security:
applies-to: security-updates
patterns:
- '*'
1 change: 1 addition & 0 deletions .github/workflows/environments/requirements-build.in
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
build
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
# This file was autogenerated by uv via the following command:
# uv pip compile requirements-build.in
build==1.1.1
# uv pip compile --python-version 3.13 --python-platform linux requirements-build.in
build==1.2.2.post1
# via -r requirements-build.in
packaging==24.1
# via build
pyproject-hooks==1.1.0
pyproject-hooks==1.2.0
# via build
20 changes: 20 additions & 0 deletions .github/workflows/environments/requirements-test-3.10.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# This file was autogenerated by uv via the following command:
# uv pip compile --python-version 3.10 --python-platform linux requirements-test.in
exceptiongroup==1.2.2
# via pytest
iniconfig==2.0.0
# via pytest
numpy==2.1.2
# via
# -r requirements-test.in
# scipy
packaging==24.1
# via pytest
pluggy==1.5.0
# via pytest
pytest==8.3.3
# via -r requirements-test.in
scipy==1.14.1
# via -r requirements-test.in
tomli==2.0.2
# via pytest
16 changes: 16 additions & 0 deletions .github/workflows/environments/requirements-test-3.11.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# This file was autogenerated by uv via the following command:
# uv pip compile --python-version 3.11 --python-platform linux requirements-test.in
iniconfig==2.0.0
# via pytest
numpy==2.1.2
# via
# -r requirements-test.in
# scipy
packaging==24.1
# via pytest
pluggy==1.5.0
# via pytest
pytest==8.3.3
# via -r requirements-test.in
scipy==1.14.1
# via -r requirements-test.in
16 changes: 16 additions & 0 deletions .github/workflows/environments/requirements-test-3.12.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# This file was autogenerated by uv via the following command:
# uv pip compile --python-version 3.12 --python-platform linux requirements-test.in
iniconfig==2.0.0
# via pytest
numpy==2.1.2
# via
# -r requirements-test.in
# scipy
packaging==24.1
# via pytest
pluggy==1.5.0
# via pytest
pytest==8.3.3
# via -r requirements-test.in
scipy==1.14.1
# via -r requirements-test.in
16 changes: 16 additions & 0 deletions .github/workflows/environments/requirements-test-3.13.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# This file was autogenerated by uv via the following command:
# uv pip compile --python-version 3.13 --python-platform linux requirements-test.in
iniconfig==2.0.0
# via pytest
numpy==2.1.2
# via
# -r requirements-test.in
# scipy
packaging==24.1
# via pytest
pluggy==1.5.0
# via pytest
pytest==8.3.3
# via -r requirements-test.in
scipy==1.14.1
# via -r requirements-test.in
20 changes: 20 additions & 0 deletions .github/workflows/environments/requirements-test-3.9.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# This file was autogenerated by uv via the following command:
# uv pip compile --python-version 3.9 --python-platform linux requirements-test.in
exceptiongroup==1.2.2
# via pytest
iniconfig==2.0.0
# via pytest
numpy==2.0.2
# via
# -r requirements-test.in
# scipy
packaging==24.1
# via pytest
pluggy==1.5.0
# via pytest
pytest==8.3.3
# via -r requirements-test.in
scipy==1.13.1
# via -r requirements-test.in
tomli==2.0.2
# via pytest
3 changes: 3 additions & 0 deletions .github/workflows/environments/requirements-test.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
numpy
pytest
scipy
12 changes: 12 additions & 0 deletions .github/workflows/environments/update-lockfiles.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
#!/bin/bash

# Execute this script to update all lock files to the latest versions of dependencies.

rm requirements*.txt

for python_version in 3.9 3.10 3.11 3.12 3.13
do
uv pip compile --python-version ${python_version} --python-platform linux requirements-test.in > requirements-test-${python_version}.txt
done

uv pip compile --python-version 3.13 --python-platform linux requirements-build.in > requirements-build.txt
5 changes: 2 additions & 3 deletions .github/workflows/release.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -27,10 +27,9 @@ jobs:
with:
python-version: 3.12
- name: Set up Python environment
uses: glotzerlab/workflows/setup-uv@5cfac9da9cb78e16ae97a9119b6fd13c1c2d6f5e # 0.1.0
uses: glotzerlab/workflows/setup-uv@e130dd2814c7db5635babe4427dedcbd5aab76d4 # 0.5.0
with:
lockfile: ".github/workflows/requirements-build.txt"

lockfile: ".github/workflows/environments/requirements-build.txt"
- name: Build wheel
run: python3 -m build --outdir dist/ .

Expand Down
1 change: 0 additions & 1 deletion .github/workflows/requirements-build.in

This file was deleted.

5 changes: 0 additions & 5 deletions .github/workflows/requirements-test.in

This file was deleted.

30 changes: 0 additions & 30 deletions .github/workflows/requirements-test.txt

This file was deleted.

6 changes: 3 additions & 3 deletions .github/workflows/unit_test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ jobs:
strategy:
fail-fast: false
matrix:
python: ["3.9", "3.10", "3.11", "3.12"]
python: ["3.9", "3.10", "3.11", "3.12", "3.13"]

steps:
- name: Checkout
Expand All @@ -34,9 +34,9 @@ jobs:
with:
python-version: ${{ matrix.python }}
- name: Set up Python environment
uses: glotzerlab/workflows/setup-uv@5cfac9da9cb78e16ae97a9119b6fd13c1c2d6f5e # 0.1.0
uses: glotzerlab/workflows/setup-uv@e130dd2814c7db5635babe4427dedcbd5aab76d4 # 0.5.0
with:
lockfile: ".github/workflows/requirements-test.txt"
lockfile: ".github/workflows/environments/requirements-test-${{matrix.python}}.txt"
- name: Run tests
run: python3 -m pytest -v

Expand Down
14 changes: 14 additions & 0 deletions .github/workflows/update-uv-lockfiles.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
name: Update uv lockfiles

on:
schedule:
- cron: '0 12 1 * *'

workflow_dispatch:

jobs:
update:
uses: glotzerlab/workflows/.github/workflows/update-uv-lockfiles.yaml@e130dd2814c7db5635babe4427dedcbd5aab76d4 # 0.5.0
secrets: inherit
with:
branch: master
13 changes: 13 additions & 0 deletions ChangeLog.rst
Original file line number Diff line number Diff line change
@@ -1,6 +1,19 @@
The format is based on `Keep a Changelog <http://keepachangelog.com/en/1.0.0/>`_.
This project adheres to `Semantic Versioning <http://semver.org/spec/v2.0.0.html>`_.

1.3.1 - not yet released
------------------------

Added
+++++

* Test with Python 3.13.
* Test with NumPy 2.0.

Changed
+++++++

* Require Python >=3.8

v1.3.0 - 2020-06-18
-------------------
Expand Down
31 changes: 3 additions & 28 deletions README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -6,32 +6,18 @@ rowan
:local:

|ReadTheDocs|
|CircleCI|
|Codecov|
|PyPI|
|conda-forge|
|Zenodo|
|JOSS|

.. |ReadTheDocs| image:: https://readthedocs.org/projects/rowan/badge/?version=latest
:target: http://rowan.readthedocs.io/en/latest/?badge=latest
.. |CircleCI| image:: https://circleci.com/gh/glotzerlab/rowan.svg?style=svg
:target: https://circleci.com/gh/glotzerlab/rowan
.. |Codecov| image:: https://codecov.io/gh/glotzerlab/rowan/branch/master/graph/badge.svg
:target: https://codecov.io/gh/glotzerlab/rowan
:target: http://rowan.readthedocs.io/en/latest/?badge=latest
.. |PyPI| image:: https://img.shields.io/pypi/v/rowan.svg
:target: https://pypi.org/project/rowan/
:target: https://pypi.org/project/rowan/
.. |conda-forge| image:: https://img.shields.io/conda/vn/conda-forge/rowan.svg
:target: https://anaconda.org/conda-forge/rowan
.. |Codacy| image:: https://api.codacy.com/project/badge/Grade/2ff6c23cb9be4f77827428a87e0e9cfc
:target: https://www.codacy.com/app/vramasub/rowan?utm_source=github.com&amp;utm_medium=referral&amp;utm_content=glotzerlab/rowan&amp;utm_campaign=Badge_Grade
.. |Zenodo| image:: https://zenodo.org/badge/DOI/10.5281/zenodo.1323676.svg
:target: https://doi.org/10.5281/zenodo.1323676
.. |JOSS| image:: http://joss.theoj.org/papers/10.21105/joss.00787/status.svg
:target: https://doi.org/10.21105/joss.00787
.. |pre-commit.ci| image:: https://results.pre-commit.ci/badge/github/glotzerlab/rowan/master.svg
:target: https://results.pre-commit.ci/latest/github/glotzerlab/rowan/master
:alt: pre-commit.ci status
:target: https://doi.org/10.21105/joss.00787

Welcome to the documentation for rowan, a package for working with quaternions!
Quaternions, which form a number system with various interesting properties, were originally developed for classical mechanics.
Expand Down Expand Up @@ -130,17 +116,6 @@ To run the packaged unit tests, execute the following line from the root of the
python -m unittest discover tests
To check test coverage, make sure the coverage module is installed:

.. code-block:: bash
pip install coverage
and then run the packaged unit tests with the coverage module:

.. code-block:: bash
coverage run -m unittest discover tests
Running Benchmarks
------------------
Expand Down
1 change: 0 additions & 1 deletion doc/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,6 @@
"sphinx.ext.intersphinx",
"sphinx.ext.doctest",
"sphinx.ext.todo",
"sphinx.ext.coverage",
"sphinx.ext.mathjax",
]

Expand Down
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ version = "1.3.0"
description = "Perform quaternion operations using NumPy arrays"
readme = "README.rst"
license = { file = "LICENSE.txt" }
requires-python = ">=3.8, <4"
requires-python = ">=3.8"
authors = [
{ name = "Vyas Ramasubramani", email = "vramasub@umich.edu" },
]
Expand Down
1 change: 0 additions & 1 deletion requirements.txt

This file was deleted.

0 comments on commit 9e4afeb

Please sign in to comment.