Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore: Transition to pyproject.toml and tox, support numpy 2, python 3.13 #228

Merged
merged 19 commits into from
Nov 17, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
96 changes: 0 additions & 96 deletions .github/workflows/pythonpackage.yml

This file was deleted.

130 changes: 130 additions & 0 deletions .github/workflows/tox.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,130 @@
name: Tox

on:
push:
branches: [ master, main, 'maint/*' ]
tags: [ '*' ]
pull_request:
branches: [ master, main, 'maint/*' ]
schedule:
- cron: '0 0 * * *'

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

permissions:
contents: read

env:
# Force tox and pytest to use color
FORCE_COLOR: true
TEST_DATA_HOME: /home/runner/testdata/nitransforms-tests

jobs:
cache-test-data:
if: "!contains(github.event.head_commit.message, '[skip ci]')"
runs-on: ubuntu-latest
outputs:
SHA: ${{ steps.test-head.outputs.SHA }}
steps:
- name: Install the latest version of uv
uses: astral-sh/setup-uv@v3
- name: Git settings (pacify DataLad)
run: |
git config --global user.name 'NiPreps Bot'
git config --global user.email '[email protected]'
- name: Install DataLad
run: |
$CONDA/bin/conda install -c conda-forge git-annex
uv tool install --with=datalad-next --with=datalad-osf datalad
- name: Check remote HEAD
id: test-head
run: |
git ls-remote https://gin.g-node.org/oesteban/nitransforms-tests \
| awk '/HEAD/{ print "SHA=" $1 }' >> $GITHUB_OUTPUT

- uses: actions/cache@v4
with:
path: ${{ env.TEST_DATA_HOME }}
key: data-cache-v2-${{ steps.test-head.outputs.SHA }}
restore-keys: |
data-cache-v2-${{ steps.test-head.outputs.SHA }}
data-cache-v2

- name: Install test data
run: |
export PATH=$CONDA/bin:$PATH
mkdir -p /home/runner/testdata

datalad install -s https://gin.g-node.org/oesteban/nitransforms-tests $TEST_DATA_HOME
datalad update --merge -d $TEST_DATA_HOME
datalad get -J 2 -d $TEST_DATA_HOME

test:
runs-on: ubuntu-latest
needs: [cache-test-data]
strategy:
matrix:
python-version: ["3.9", "3.10", "3.11", "3.12", "3.13"]
dependencies: [latest, pre]
include:
- python-version: "3.9"
dependencies: min
exclude:
# Do not test pre-releases for versions out of SPEC0
- python-version: "3.9"
dependencies: pre
- python-version: "3.10"
dependencies: pre

env:
DEPENDS: ${{ matrix.dependencies }}

steps:
- uses: actions/checkout@v4
with:
submodules: recursive
fetch-depth: 0
- name: Install the latest version of uv
uses: astral-sh/setup-uv@v3
- uses: actions/cache/restore@v4
with:
path: ${{ env.TEST_DATA_HOME }}
key: data-cache-v2-${{ needs.cache-test-data.outputs.SHA }}
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Display Python version
run: python -c "import sys; print(sys.version)"
- name: Install tox
run: |
uv tool install tox --with=tox-uv --with=tox-gh-actions
- name: Show tox config
run: tox c
- name: Run tox
run: tox -v --exit-and-dump-after 1200
- uses: codecov/codecov-action@v4
with:
file: coverage.xml
token: ${{ secrets.CODECOV_TOKEN }}
if: ${{ always() }}

checks:
runs-on: 'ubuntu-latest'
continue-on-error: true
strategy:
matrix:
check: ['style']

steps:
- uses: actions/checkout@v4
- name: Install the latest version of uv
uses: astral-sh/setup-uv@v3
- name: Show tox config
run: uvx tox c
- name: Show tox config (this call)
run: uvx tox c -e ${{ matrix.check }}
- name: Run check
run: uvx tox -e ${{ matrix.check }}
91 changes: 0 additions & 91 deletions .github/workflows/travis.yml

This file was deleted.

30 changes: 16 additions & 14 deletions .readthedocs.yaml
Original file line number Diff line number Diff line change
@@ -1,19 +1,21 @@
# Read the Docs configuration file
# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details

version: 2

build:
os: ubuntu-20.04
os: ubuntu-lts-latest
tools:
python: "3.8"

sphinx:
configuration: docs/conf.py
python: latest

python:
install:
- path: .
extra_requirements:
- all
- requirements: docs/requirements.txt
jobs:
pre_create_environment:
- asdf plugin add uv
- asdf install uv latest
- asdf global uv latest
# Turn `python -m virtualenv` into `python -c pass`
- truncate --size 0 $( dirname $( uv python find ) )/../lib/python3*/site-packages/virtualenv/__main__.py
post_create_environment:
- uv venv $READTHEDOCS_VIRTUALENV_PATH
# Turn `python -m pip` into `python -c pass`
- truncate --size 0 $( ls -d $READTHEDOCS_VIRTUALENV_PATH/lib/python3* )/site-packages/pip.py
post_install:
- VIRTUAL_ENV=$READTHEDOCS_VIRTUALENV_PATH uv pip install --cache-dir $READTHEDOCS_VIRTUALENV_PATH/../../uv_cache .[niftiext]
- VIRTUAL_ENV=$READTHEDOCS_VIRTUALENV_PATH uv pip install --cache-dir $READTHEDOCS_VIRTUALENV_PATH/../../uv_cache -r docs/requirements.txt
7 changes: 0 additions & 7 deletions MANIFEST.in

This file was deleted.

2 changes: 1 addition & 1 deletion docs/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@
#
# This is also used if you do content translation via gettext catalogs.
# Usually you set "language" from the command line for these cases.
language = None
language = 'en'

# List of patterns, relative to source directory, that match files and
# directories to ignore when looking for source files.
Expand Down
4 changes: 2 additions & 2 deletions docs/requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,5 @@ packaging
pydot>=1.2.3
pydotplus
sphinx-argparse
sphinx ~= 4.0
sphinx_rtd_theme
sphinx~=7.0
sphinx_rtd_theme
Loading