-
Notifications
You must be signed in to change notification settings - Fork 45
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Fix compatibility with numpy 2.0 (and add devdeps tests to CI) (#244)
* Migrate CI to use tox, and add devdeps and oldestdeps jobs * Fix numpy 2.0 compatibility * Reduce the CI matrix for now * Add a h5netcdf dep for xarray tests * Update setup.cfg * Update ci.yml from merge failure --------- Co-authored-by: Bryan Harter <[email protected]>
- Loading branch information
1 parent
9a6d3dd
commit 4244172
Showing
4 changed files
with
102 additions
and
33 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,8 +1,69 @@ | ||
[tox] | ||
envlist = py36, py37, py38, py39, py310 | ||
min_version = 4.0 | ||
envlist = | ||
py{38,39,310,311,312}{,-online} | ||
py38-oldestdeps | ||
py312-devdeps | ||
build_docs | ||
|
||
[testenv] | ||
setenv = | ||
PYTHONPATH = {toxinidir} | ||
# tox environments are constructed with so-called 'factors' (or terms) | ||
# separated by hyphens, e.g. test-devdeps-cov. Lines below starting with factor: | ||
# will only take effect if that factor is included in the environment name. To | ||
# see a list of example environments that can be run, along with a description, | ||
# run: | ||
# | ||
# tox -l -v | ||
# | ||
description = | ||
run tests | ||
oldestdeps: with the oldest supported version of key dependencies | ||
devdeps: with the latest developer version of key dependencies | ||
online: that require remote data (as well as the offline ones) | ||
|
||
commands = python setup.py test | ||
# Run the tests in a temporary directory to not pollute the working directory with files or other downloads | ||
changedir = .tmp/{envname} | ||
|
||
# Pass through the following environment variables which may be needed for the CI | ||
pass_env = | ||
# A variable to tell tests we are on a CI system | ||
CI | ||
# Custom compiler locations (such as ccache) | ||
CC | ||
# Location of locales (needed by sphinx on some systems) | ||
LOCALE_ARCHIVE | ||
# If the user has set a LC override we should follow it | ||
# (note LANG is automatically passed through by tox) | ||
LC_ALL | ||
|
||
set_env = | ||
PYTEST_COMMAND = pytest --cov=cdflib {toxinidir}/tests/ {toxinidir}/doc/ | ||
devdeps: PIP_EXTRA_INDEX_URL = https://pypi.anaconda.org/astropy/simple https://pypi.anaconda.org/scientific-python-nightly-wheels/simple | ||
|
||
deps = | ||
oldestdeps: minimum_dependencies | ||
devdeps: astropy>=0.0.dev0 | ||
devdeps: numpy>=0.0.dev0 | ||
devdeps: pandas>=0.0.dev0 # needed to prevent pandas pulling in numpy<2, this can be removed after pandas does a release supporting 2.0 | ||
|
||
# The following indicates which extras_require from setup.cfg will be installed | ||
extras = | ||
tests | ||
|
||
commands_pre = | ||
oldestdeps: minimum_dependencies cdflib --filename requirements-min.txt | ||
oldestdeps: pip install -r requirements-min.txt | ||
pip freeze | ||
|
||
commands = | ||
!online: {env:PYTEST_COMMAND} {posargs} | ||
online: {env:PYTEST_COMMAND} --remote-data=any {posargs} | ||
|
||
[testenv:build_docs] | ||
description = invoke sphinx-build to build the HTML docs | ||
change_dir = | ||
doc | ||
extras = | ||
docs | ||
commands = | ||
sphinx-build -j auto --color -W --keep-going -b html -d _build/.doctrees . _build/html {posargs} |