From c21e42257e879416cfd9a8ec5d965343d491b901 Mon Sep 17 00:00:00 2001 From: JacksonMaxfield Date: Fri, 22 Jan 2021 21:50:38 -0800 Subject: [PATCH 01/27] Support Py39 in tests --- requirements_dev.txt | 6 +++--- setup.py | 13 +------------ tox.ini | 10 +++++----- 3 files changed, 9 insertions(+), 20 deletions(-) diff --git a/requirements_dev.txt b/requirements_dev.txt index 256f0949..5a239ff4 100644 --- a/requirements_dev.txt +++ b/requirements_dev.txt @@ -1,3 +1,3 @@ -Cython==0.29.6 -msgpack==0.6.1 -numpy==1.16.2 +Cython==0.29.21 +msgpack==1.0.2 +numpy==1.19.0 diff --git a/setup.py b/setup.py index 1e5d7f12..ae1d2a07 100644 --- a/setup.py +++ b/setup.py @@ -322,18 +322,7 @@ def run_setup(with_extensions): python_requires=">=3.6, <4", packages=["numcodecs", "numcodecs.tests"], classifiers=[ - 'Development Status :: 4 - Beta', - 'Intended Audience :: Developers', - 'Intended Audience :: Information Technology', - 'Intended Audience :: Science/Research', - 'License :: OSI Approved :: MIT License', - 'Programming Language :: Python', - 'Topic :: Software Development :: Libraries :: Python Modules', - 'Operating System :: Unix', - 'Programming Language :: Python :: 3', - 'Programming Language :: Python :: 3.6', - 'Programming Language :: Python :: 3.7', - 'Programming Language :: Python :: 3.8', + "Programming Language :: Python :: 3.9", ], author='Alistair Miles', author_email='alimanfoo@googlemail.com', diff --git a/tox.ini b/tox.ini index 8d5e6531..53b8129b 100644 --- a/tox.ini +++ b/tox.ini @@ -4,19 +4,19 @@ # and then run "tox" from this directory. [tox] -envlist = py35, py36, py37, py38, docs +envlist = py35, py36, py37, py38, py39, docs [testenv] setenv = PYTHONHASHSEED = 42 # hooks for coverage exclusions based on Python major version - py35,py36,py37,py38: PY_MAJOR_VERSION = py3 + py35,py36,py37,py38,py39: PY_MAJOR_VERSION = py3 commands = python setup.py build_ext --inplace - py35,py36,py37: pytest -v --cov=numcodecs numcodecs - py38: pytest -v --cov=numcodecs --doctest-modules --doctest-glob=*.pyx numcodecs + py35,py36,py37,py38: pytest -v --cov=numcodecs numcodecs + py39: pytest -v --cov=numcodecs --doctest-modules --doctest-glob=*.pyx numcodecs coverage report -m - py38: flake8 numcodecs + py39: flake8 numcodecs pip freeze deps = -rrequirements_dev.txt From 1eb187b8efaf1db97e6345ed49e30d061a2b93ca Mon Sep 17 00:00:00 2001 From: JacksonMaxfield Date: Fri, 22 Jan 2021 21:50:55 -0800 Subject: [PATCH 02/27] Remove old CI configs --- .travis.yml | 40 ---------------------------------------- appveyor.yml | 42 ------------------------------------------ 2 files changed, 82 deletions(-) delete mode 100644 .travis.yml delete mode 100644 appveyor.yml diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 80d9359a..00000000 --- a/.travis.yml +++ /dev/null @@ -1,40 +0,0 @@ - -branches: - only: - - master - -sudo: false - -addons: - apt: - packages: - - liblzma-dev - -matrix: - include: - - os: linux - language: python - python: 3.5 - - os: linux - language: python - python: 3.6 - - os: linux - language: python - python: 3.7 - dist: xenial - - os: linux - language: python - python: 3.8 - dist: xenial - sudo: true - -install: - - pip install -U tox-travis coveralls pip setuptools wheel pytest - - pip install -v -e . - -script: - - tox - -after_success: - - coveralls --service=travis-pro - diff --git a/appveyor.yml b/appveyor.yml deleted file mode 100644 index 2c53e068..00000000 --- a/appveyor.yml +++ /dev/null @@ -1,42 +0,0 @@ -branches: - only: - - master - -environment: - - global: - # SDK v7.0 MSVC Express 2008's SetEnv.cmd script will fail if the - # /E:ON and /V:ON options are not enabled in the batch script intepreter - # See: http://stackoverflow.com/a/13751649/163740 - CMD_IN_ENV: "cmd /E:ON /V:ON /C .\\build.cmd" - - matrix: - - - PYTHON: "C:\\Python35-x64" - PYTHON_VERSION: "3.5" - - - PYTHON: "C:\\Python36-x64" - PYTHON_VERSION: "3.6" - - - PYTHON: "C:\\Python37-x64" - PYTHON_VERSION: "3.7" - -install: - - "SET PATH=%PYTHON%;%PYTHON%\\Scripts;%PATH%" - - git submodule update --init --recursive - - "%CMD_IN_ENV% python -m pip install -U pip setuptools wheel" - - "%CMD_IN_ENV% python -m pip install -rrequirements_dev.txt" - - "%CMD_IN_ENV% python -m pip install -rrequirements_test.txt" - - "%CMD_IN_ENV% python setup.py build_ext --inplace" - - "%CMD_IN_ENV% python -m pip freeze" - -build: off - -test_script: - - "%CMD_IN_ENV% python -m pytest -v numcodecs" - -after_test: - - "%CMD_IN_ENV% python setup.py bdist_wheel" - -artifacts: - - path: dist\* From 646e7a8b6035ee5a6f82217f345ffecc2f0e40bf Mon Sep 17 00:00:00 2001 From: JacksonMaxfield Date: Fri, 22 Jan 2021 21:51:45 -0800 Subject: [PATCH 03/27] Add or upgrade CI for GH-Actions --- .github/workflows/ci-linux.yaml | 42 +++++++++++++++++++++++++++++++++ .github/workflows/ci-osx.yaml | 2 +- .github/workflows/wheel.yaml | 2 +- 3 files changed, 44 insertions(+), 2 deletions(-) create mode 100644 .github/workflows/ci-linux.yaml diff --git a/.github/workflows/ci-linux.yaml b/.github/workflows/ci-linux.yaml new file mode 100644 index 00000000..6f94de07 --- /dev/null +++ b/.github/workflows/ci-linux.yaml @@ -0,0 +1,42 @@ +name: Linux CI + +on: [push, pull_request] + +jobs: + build: + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + python-version: ["3.5", "3.6", "3.7", "3.8", "3.9"] + os: [ubuntu-latest, ubuntu-20.04] + + steps: + - name: Checkout source + uses: actions/checkout@v2 + with: + submodules: recursive + + - name: Set up Python + uses: actions/setup-python@v1 + with: + python-version: ${{ matrix.python-version }} + + - name: Install numcodecs + run: | + python -m pip install -U pip -r requirements_test.txt -r requirements_dev.txt + python -m pip install -v -e . + - name: List installed packages + run: python -m pip list + + - name: Run tests + run: pytest -v --cov=numcodecs --doctest-modules --doctest-glob=*.pyx numcodecs + + - name: Flake8 + run: flake8 numcodecs + + - name: Build Docs + run: | + pip install -r requirements_rtfd.txt + cd docs + sphinx-build -W -b html \ No newline at end of file diff --git a/.github/workflows/ci-osx.yaml b/.github/workflows/ci-osx.yaml index 38e1fcec..b455d6a1 100644 --- a/.github/workflows/ci-osx.yaml +++ b/.github/workflows/ci-osx.yaml @@ -8,7 +8,7 @@ jobs: strategy: fail-fast: false matrix: - python-version: ["3.6", "3.7", "3.8"] + python-version: ["3.6", "3.7", "3.8", "3.9"] steps: - name: Checkout source diff --git a/.github/workflows/wheel.yaml b/.github/workflows/wheel.yaml index 78b65aa9..48df198d 100644 --- a/.github/workflows/wheel.yaml +++ b/.github/workflows/wheel.yaml @@ -9,7 +9,7 @@ jobs: strategy: fail-fast: false matrix: - os: [ubuntu-18.04, windows-latest, macos-latest] + os: [ubuntu-18.04, ubuntu-20.04, windows-latest, macos-latest] env: CIBW_TEST_COMMAND: pytest --pyargs numcodecs CIBW_TEST_REQUIRES: pytest From 5bb37a134cae10d5a245bb7769caae1fb205c7a6 Mon Sep 17 00:00:00 2001 From: JacksonMaxfield Date: Fri, 22 Jan 2021 21:51:59 -0800 Subject: [PATCH 04/27] Update doc references to py39 --- .github/PULL_REQUEST_TEMPLATE.md | 15 ++++++++------- docs/contributing.rst | 18 +++++++++--------- 2 files changed, 17 insertions(+), 16 deletions(-) diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 93a3ffdc..933826fc 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -1,10 +1,11 @@ [Description of PR] TODO: -* [ ] Unit tests and/or doctests in docstrings -* [ ] ``tox -e py38`` passes locally -* [ ] Docstrings and API docs for any new/modified user-facing classes and functions -* [ ] Changes documented in docs/release.rst -* [ ] ``tox -e docs`` passes locally -* [ ] AppVeyor and Travis CI passes -* [ ] Test coverage to 100% (Coveralls passes) + +- [ ] Unit tests and/or doctests in docstrings +- [ ] `tox -e py39` passes locally +- [ ] Docstrings and API docs for any new/modified user-facing classes and functions +- [ ] Changes documented in docs/release.rst +- [ ] `tox -e docs` passes locally +- [ ] AppVeyor and Travis CI passes +- [ ] Test coverage to 100% (Coveralls passes) diff --git a/docs/contributing.rst b/docs/contributing.rst index e6fad0fd..9220640b 100644 --- a/docs/contributing.rst +++ b/docs/contributing.rst @@ -90,7 +90,7 @@ you have cloned the NumCodecs source code and your current working directory is the repository, you can do something like the following:: $ mkdir -p ~/pyenv/numcodecs-dev - $ virtualenv --no-site-packages --python=/usr/bin/python3.8 ~/pyenv/numcodecs-dev + $ virtualenv --no-site-packages --python=/usr/bin/python3.9 ~/pyenv/numcodecs-dev $ source ~/pyenv/numcodecs-dev/bin/activate $ pip install -r requirements_dev.txt $ python setup.py build_ext --inplace @@ -145,11 +145,11 @@ To also run the doctests within docstrings, run:: Tests can be run under different Python versions using tox. E.g. (assuming you have the corresponding Python interpreters installed on your system):: - $ tox -e py35,py36,py37,py38 + $ tox -e py35,py36,py37,py38,py39 -NumCodecs currently supports Python 3.5-3.8, so the above command must -succeed before code can be accepted into the main code base. Note that only the py38 -tox environment runs the doctests, i.e., doctests only need to succeed under Python 3.8. +NumCodecs currently supports Python 3.5-3.9, so the above command must +succeed before code can be accepted into the main code base. Note that only the py39 +tox environment runs the doctests, i.e., doctests only need to succeed under Python 3.9. All tests are automatically run via Travis (Linux) and AppVeyor (Windows) continuous integration services for every pull request. Tests must pass under both services before @@ -164,14 +164,14 @@ Conformance can be checked by running:: $ flake8 --max-line-length=100 numcodecs -This is automatically run when invoking ``tox -e py38``. +This is automatically run when invoking ``tox -e py39``. Test coverage ~~~~~~~~~~~~~ NumCodecs maintains 100% test coverage under the latest Python stable release (currently -Python 3.8). Both unit tests and docstring doctests are included when computing -coverage. Running ``tox -e py38`` will automatically run the test suite with coverage +Python 3.9). Both unit tests and docstring doctests are included when computing +coverage. Running ``tox -e py39`` will automatically run the test suite with coverage and produce a coverage report. This should be 100% before code can be accepted into the main code base. @@ -185,7 +185,7 @@ Documentation Docstrings for user-facing classes and functions should follow the `numpydoc `_ standard, including sections for Parameters and Examples. All examples will be run as doctests -under Python 3.8. +under Python 3.9. NumCodecs uses Sphinx for documentation, hosted on readthedocs.org. Documentation is written in the RestructuredText markup language (.rst files) in the ``docs`` folder. From b7992969654884892980e6d7b6a83367adb8fe47 Mon Sep 17 00:00:00 2001 From: JacksonMaxfield Date: Fri, 22 Jan 2021 21:55:30 -0800 Subject: [PATCH 05/27] Remove references to py35 --- .github/workflows/ci-linux.yaml | 2 +- docs/contributing.rst | 4 ++-- tox.ini | 6 +++--- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/ci-linux.yaml b/.github/workflows/ci-linux.yaml index 6f94de07..cf9fcdeb 100644 --- a/.github/workflows/ci-linux.yaml +++ b/.github/workflows/ci-linux.yaml @@ -8,7 +8,7 @@ jobs: strategy: fail-fast: false matrix: - python-version: ["3.5", "3.6", "3.7", "3.8", "3.9"] + python-version: ["3.6", "3.7", "3.8", "3.9"] os: [ubuntu-latest, ubuntu-20.04] steps: diff --git a/docs/contributing.rst b/docs/contributing.rst index 9220640b..16e1dd4c 100644 --- a/docs/contributing.rst +++ b/docs/contributing.rst @@ -145,9 +145,9 @@ To also run the doctests within docstrings, run:: Tests can be run under different Python versions using tox. E.g. (assuming you have the corresponding Python interpreters installed on your system):: - $ tox -e py35,py36,py37,py38,py39 + $ tox -e py36,py37,py38,py39 -NumCodecs currently supports Python 3.5-3.9, so the above command must +NumCodecs currently supports Python 6-3.9, so the above command must succeed before code can be accepted into the main code base. Note that only the py39 tox environment runs the doctests, i.e., doctests only need to succeed under Python 3.9. diff --git a/tox.ini b/tox.ini index 53b8129b..3a2d83a8 100644 --- a/tox.ini +++ b/tox.ini @@ -4,16 +4,16 @@ # and then run "tox" from this directory. [tox] -envlist = py35, py36, py37, py38, py39, docs +envlist = py36, py37, py38, py39, docs [testenv] setenv = PYTHONHASHSEED = 42 # hooks for coverage exclusions based on Python major version - py35,py36,py37,py38,py39: PY_MAJOR_VERSION = py3 + py36,py37,py38,py39: PY_MAJOR_VERSION = py3 commands = python setup.py build_ext --inplace - py35,py36,py37,py38: pytest -v --cov=numcodecs numcodecs + py36,py37,py38: pytest -v --cov=numcodecs numcodecs py39: pytest -v --cov=numcodecs --doctest-modules --doctest-glob=*.pyx numcodecs coverage report -m py39: flake8 numcodecs From 845348ab66435a7786b346169d087201ee509e3c Mon Sep 17 00:00:00 2001 From: JacksonMaxfield Date: Fri, 22 Jan 2021 22:19:19 -0800 Subject: [PATCH 06/27] Fix build docs check on linux ci --- .github/workflows/ci-linux.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci-linux.yaml b/.github/workflows/ci-linux.yaml index cf9fcdeb..62abbc1e 100644 --- a/.github/workflows/ci-linux.yaml +++ b/.github/workflows/ci-linux.yaml @@ -39,4 +39,4 @@ jobs: run: | pip install -r requirements_rtfd.txt cd docs - sphinx-build -W -b html \ No newline at end of file + sphinx-build -W -b html -d {envtmpdir}/doctrees . {envtmpdir}/html \ No newline at end of file From 84ba3133ef9fa3a575625f1042e5e55e2f668774 Mon Sep 17 00:00:00 2001 From: JacksonMaxfield Date: Fri, 22 Jan 2021 22:36:54 -0800 Subject: [PATCH 07/27] Test new README badge targets --- README.rst | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/README.rst b/README.rst index 01a72e2e..b018f3ec 100644 --- a/README.rst +++ b/README.rst @@ -7,11 +7,14 @@ codecs for use in data storage and communication applications. .. image:: https://readthedocs.org/projects/numcodecs/badge/?version=latest :target: http://numcodecs.readthedocs.io/en/latest/?badge=latest -.. image:: https://travis-ci.org/zarr-developers/numcodecs.svg?branch=master - :target: https://travis-ci.org/zarr-developers/numcodecs +.. image:: https://github.com/JacksonMaxfield/numcodecs/workflows/Linux%20CI/badge.svg?branch=master + :target: https://github.com/JacksonMaxfield/numcodecs/actions?query=workflow%3A%22Linux+CI%22 -.. image:: https://ci.appveyor.com/api/projects/status/jhaaaxotvel24n9g?svg=true - :target: https://ci.appveyor.com/project/zarr-developers/numcodecs +.. image:: https://github.com/JacksonMaxfield/numcodecs/workflows/OSX%20CI/badge.svg?branch=master + :target: https://github.com/JacksonMaxfield/numcodecs/actions?query=workflow%3A%22OSX+CI%22 + +.. image:: https://github.com/JacksonMaxfield/numcodecs/workflows/Wheels/badge.svg?branch=master + :target: https://github.com/JacksonMaxfield/numcodecs/actions?query=workflow%3AWheels .. image:: https://coveralls.io/repos/github/zarr-developers/numcodecs/badge.svg?branch=master :target: https://coveralls.io/github/zarr-developers/numcodecs?branch=master From e790169d2ade2e3e6d0517592748c31275509f0b Mon Sep 17 00:00:00 2001 From: JacksonMaxfield Date: Fri, 22 Jan 2021 22:37:56 -0800 Subject: [PATCH 08/27] Point badges at zarr-developers org --- README.rst | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/README.rst b/README.rst index b018f3ec..5172dcfe 100644 --- a/README.rst +++ b/README.rst @@ -7,14 +7,14 @@ codecs for use in data storage and communication applications. .. image:: https://readthedocs.org/projects/numcodecs/badge/?version=latest :target: http://numcodecs.readthedocs.io/en/latest/?badge=latest -.. image:: https://github.com/JacksonMaxfield/numcodecs/workflows/Linux%20CI/badge.svg?branch=master - :target: https://github.com/JacksonMaxfield/numcodecs/actions?query=workflow%3A%22Linux+CI%22 +.. image:: https://github.com/zarr-developers/numcodecs/workflows/Linux%20CI/badge.svg?branch=master + :target: https://github.com/zarr-developers/numcodecs/actions?query=workflow%3A%22Linux+CI%22 -.. image:: https://github.com/JacksonMaxfield/numcodecs/workflows/OSX%20CI/badge.svg?branch=master - :target: https://github.com/JacksonMaxfield/numcodecs/actions?query=workflow%3A%22OSX+CI%22 +.. image:: https://github.com/zarr-developers/numcodecs/workflows/OSX%20CI/badge.svg?branch=master + :target: https://github.com/zarr-developers/numcodecs/actions?query=workflow%3A%22OSX+CI%22 -.. image:: https://github.com/JacksonMaxfield/numcodecs/workflows/Wheels/badge.svg?branch=master - :target: https://github.com/JacksonMaxfield/numcodecs/actions?query=workflow%3AWheels +.. image:: https://github.com/zarr-developers/numcodecs/workflows/Wheels/badge.svg?branch=master + :target: https://github.com/zarr-developers/numcodecs/actions?query=workflow%3AWheels .. image:: https://coveralls.io/repos/github/zarr-developers/numcodecs/badge.svg?branch=master :target: https://coveralls.io/github/zarr-developers/numcodecs?branch=master From 901db0241fbbaf9e874375a587a6996a5489f82e Mon Sep 17 00:00:00 2001 From: JacksonMaxfield Date: Sat, 23 Jan 2021 16:17:54 -0800 Subject: [PATCH 09/27] Update GitHub PR Template --- .github/PULL_REQUEST_TEMPLATE.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 933826fc..9e04e8b8 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -7,5 +7,5 @@ TODO: - [ ] Docstrings and API docs for any new/modified user-facing classes and functions - [ ] Changes documented in docs/release.rst - [ ] `tox -e docs` passes locally -- [ ] AppVeyor and Travis CI passes +- [ ] GitHub Actions CI passes - [ ] Test coverage to 100% (Coveralls passes) From a3cf9ef4e7464793f999c4ae8e9f1f83b53db31c Mon Sep 17 00:00:00 2001 From: JacksonMaxfield Date: Sat, 23 Jan 2021 16:27:40 -0800 Subject: [PATCH 10/27] More specificity in ci linux on os versions --- .github/workflows/ci-linux.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci-linux.yaml b/.github/workflows/ci-linux.yaml index 62abbc1e..4f8b75ce 100644 --- a/.github/workflows/ci-linux.yaml +++ b/.github/workflows/ci-linux.yaml @@ -9,7 +9,7 @@ jobs: fail-fast: false matrix: python-version: ["3.6", "3.7", "3.8", "3.9"] - os: [ubuntu-latest, ubuntu-20.04] + os: [ubuntu-18.04, ubuntu-20.04] steps: - name: Checkout source From e87fe027bd47f6195f2b44a18752b14972190e80 Mon Sep 17 00:00:00 2001 From: JacksonMaxfield Date: Sat, 23 Jan 2021 16:39:27 -0800 Subject: [PATCH 11/27] Upgrade wheel CI to use py39 --- .github/workflows/wheel.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/wheel.yaml b/.github/workflows/wheel.yaml index 48df198d..e6d8cd43 100644 --- a/.github/workflows/wheel.yaml +++ b/.github/workflows/wheel.yaml @@ -25,7 +25,7 @@ jobs: - uses: actions/setup-python@v1 name: Install Python with: - python-version: '3.7' + python-version: '3.9' - name: Install cibuildwheel run: | @@ -50,7 +50,7 @@ jobs: - uses: actions/setup-python@v2 name: Install Python with: - python-version: '3.7' + python-version: '3.9' - name: Build sdist run: python setup.py sdist From c7b09dc1742591bdf612d65135cea44ec9107238 Mon Sep 17 00:00:00 2001 From: JacksonMaxfield Date: Sat, 23 Jan 2021 16:39:41 -0800 Subject: [PATCH 12/27] Upgrade tox docs test to use py39 --- tox.ini | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tox.ini b/tox.ini index 3a2d83a8..768cd5be 100644 --- a/tox.ini +++ b/tox.ini @@ -23,7 +23,7 @@ deps = -rrequirements_test.txt [testenv:docs] -basepython = python3.7 +basepython = python3.9 changedir = docs deps = -rrequirements_rtfd.txt From 85cf45475af573d5ea2ca823ee18247179fe502b Mon Sep 17 00:00:00 2001 From: JacksonMaxfield Date: Sat, 23 Jan 2021 16:57:50 -0800 Subject: [PATCH 13/27] Update cibuildwheel to support py39 --- .github/workflows/wheel.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/wheel.yaml b/.github/workflows/wheel.yaml index e6d8cd43..b845b32a 100644 --- a/.github/workflows/wheel.yaml +++ b/.github/workflows/wheel.yaml @@ -29,7 +29,7 @@ jobs: - name: Install cibuildwheel run: | - python -m pip install cibuildwheel==1.3.0 wheel + python -m pip install cibuildwheel==1.8.0 wheel - name: Build wheel run: | From 54bb7f34adf1e66419b322521b4fe2f2b306e244 Mon Sep 17 00:00:00 2001 From: JacksonMaxfield Date: Sun, 24 Jan 2021 18:54:53 -0800 Subject: [PATCH 14/27] Add back pypi package classifiers --- setup.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/setup.py b/setup.py index ae1d2a07..61748497 100644 --- a/setup.py +++ b/setup.py @@ -322,6 +322,18 @@ def run_setup(with_extensions): python_requires=">=3.6, <4", packages=["numcodecs", "numcodecs.tests"], classifiers=[ + "Development Status :: 4 - Beta", + "Intended Audience :: Developers", + "Intended Audience :: Information Technology", + "Intended Audience :: Science/Research", + "License :: OSI Approved :: MIT License", + "Programming Language :: Python", + "Topic :: Software Development :: Libraries :: Python Modules", + "Operating System :: Unix", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.6", + "Programming Language :: Python :: 3.7", + "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", ], author='Alistair Miles', From e33ee5f8d457bec8e1eb3a937ed4cd6afb182940 Mon Sep 17 00:00:00 2001 From: JacksonMaxfield Date: Sun, 24 Jan 2021 18:55:13 -0800 Subject: [PATCH 15/27] Swap wheel builds for ubuntu 18 + 20 for latest --- .github/workflows/wheel.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/wheel.yaml b/.github/workflows/wheel.yaml index b845b32a..4ef4672f 100644 --- a/.github/workflows/wheel.yaml +++ b/.github/workflows/wheel.yaml @@ -9,7 +9,7 @@ jobs: strategy: fail-fast: false matrix: - os: [ubuntu-18.04, ubuntu-20.04, windows-latest, macos-latest] + os: [ubuntu-latest, windows-latest, macos-latest] env: CIBW_TEST_COMMAND: pytest --pyargs numcodecs CIBW_TEST_REQUIRES: pytest From 5e133a0615c7321485a784cc82ef648758396227 Mon Sep 17 00:00:00 2001 From: JacksonMaxfield Date: Mon, 25 Jan 2021 11:03:06 -0800 Subject: [PATCH 16/27] Linux CI install deps instead of dev deps --- .github/workflows/ci-linux.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci-linux.yaml b/.github/workflows/ci-linux.yaml index 4f8b75ce..8c27cd91 100644 --- a/.github/workflows/ci-linux.yaml +++ b/.github/workflows/ci-linux.yaml @@ -24,8 +24,9 @@ jobs: - name: Install numcodecs run: | - python -m pip install -U pip -r requirements_test.txt -r requirements_dev.txt + python -m pip install -U pip -r requirements_test.txt -r requirements.txt python -m pip install -v -e . + - name: List installed packages run: python -m pip list From 37655c86cb86357c3f79701e1168dd6e9303a2e9 Mon Sep 17 00:00:00 2001 From: JacksonMaxfield Date: Mon, 25 Jan 2021 11:04:58 -0800 Subject: [PATCH 17/27] Rename OSX steps + change env setup --- .github/workflows/ci-osx.yaml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci-osx.yaml b/.github/workflows/ci-osx.yaml index b455d6a1..2e832641 100644 --- a/.github/workflows/ci-osx.yaml +++ b/.github/workflows/ci-osx.yaml @@ -23,13 +23,16 @@ jobs: python-version: ${{ matrix.python-version }} env: ACTIONS_ALLOW_UNSECURE_COMMANDS: true - - name: Install numcodecs + + - name: Set up env shell: "bash -l {0}" run: | - conda create -n env python==${{matrix.python-version}} wheel cython numpy msgpack-python pytest wheel pip compilers + conda create -n env python==${{matrix.python-version}} wheel pip compilers conda activate env which pip + pip install -r requirements_test.txt -r requirements.txt conda env export + - name: Install numcodecs shell: "bash -l {0}" run: | From 08506648af73b9322502c4fed2a1c5246d0c5955 Mon Sep 17 00:00:00 2001 From: JacksonMaxfield Date: Mon, 25 Jan 2021 11:05:40 -0800 Subject: [PATCH 18/27] Add Windows CI --- .github/workflows/ci-windows.yaml | 47 +++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 .github/workflows/ci-windows.yaml diff --git a/.github/workflows/ci-windows.yaml b/.github/workflows/ci-windows.yaml new file mode 100644 index 00000000..31ed08cd --- /dev/null +++ b/.github/workflows/ci-windows.yaml @@ -0,0 +1,47 @@ +name: Windows CI + +on: [push, pull_request] + +jobs: + build: + runs-on: windows-latest + strategy: + fail-fast: false + matrix: + python-version: ["3.6", "3.7", "3.8", "3.9"] + + steps: + - name: Checkout source + uses: actions/checkout@v2 + with: + submodules: recursive + + - name: Set up Python + uses: conda-incubator/setup-miniconda@master + with: + channels: conda-forge + python-version: ${{ matrix.python-version }} + env: + ACTIONS_ALLOW_UNSECURE_COMMANDS: true + + - name: Set up env + shell: "bash -l {0}" + run: | + conda create -n env python==${{matrix.python-version}} wheel pip compilers + conda activate env + which pip + pip install -r requirements_test.txt -r requirements.txt + conda env export + + - name: Install numcodecs + shell: "bash -l {0}" + run: | + conda activate env + export CC=clang + python setup.py build + + - name: Run tests + shell: "bash -l {0}" + run: | + conda activate env + pytest -v --pyargs numcodecs From fc4293bc004b366f848b63a46990a15f2b4d2ac6 Mon Sep 17 00:00:00 2001 From: JacksonMaxfield Date: Mon, 25 Jan 2021 11:06:59 -0800 Subject: [PATCH 19/27] Add newline character to ci-linux --- .github/workflows/ci-linux.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci-linux.yaml b/.github/workflows/ci-linux.yaml index 8c27cd91..85792d16 100644 --- a/.github/workflows/ci-linux.yaml +++ b/.github/workflows/ci-linux.yaml @@ -40,4 +40,4 @@ jobs: run: | pip install -r requirements_rtfd.txt cd docs - sphinx-build -W -b html -d {envtmpdir}/doctrees . {envtmpdir}/html \ No newline at end of file + sphinx-build -W -b html -d {envtmpdir}/doctrees . {envtmpdir}/html From b9b03af7246783ba258e7328a7040bec98059e8b Mon Sep 17 00:00:00 2001 From: JacksonMaxfield Date: Mon, 25 Jan 2021 11:58:06 -0800 Subject: [PATCH 20/27] Mark pickle backwards compat xfail on windows --- numcodecs/tests/test_pickles.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/numcodecs/tests/test_pickles.py b/numcodecs/tests/test_pickles.py index 44502283..80899aac 100644 --- a/numcodecs/tests/test_pickles.py +++ b/numcodecs/tests/test_pickles.py @@ -43,7 +43,13 @@ def test_repr(): check_repr("Pickle(protocol=-1)") -@pytest.mark.skipif(sys.byteorder != 'little', - reason='Pickle does not restore byte orders') +# Details on xfail +# https://stackoverflow.com/questions/58194852/modulenotfounderror-no-module-named-numpy-core-multiarray-r +@pytest.mark.skipif( + sys.byteorder != "little", reason="Pickle does not restore byte orders" +) +@pytest.mark.xfail( + sys.platform == "win32", reason="Pickle fails to read w/ Windows carriage return" +) def test_backwards_compatibility(): check_backwards_compatibility(Pickle.codec_id, arrays, codecs) From 58ed3aa6ad6eb9b7896a0428ee7da6ecfe4e038f Mon Sep 17 00:00:00 2001 From: Jackson Maxfield Brown Date: Mon, 25 Jan 2021 12:18:19 -0800 Subject: [PATCH 21/27] Add link to GH Issue for windows xfail test Co-authored-by: jakirkham --- numcodecs/tests/test_pickles.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/numcodecs/tests/test_pickles.py b/numcodecs/tests/test_pickles.py index 80899aac..9f639e9d 100644 --- a/numcodecs/tests/test_pickles.py +++ b/numcodecs/tests/test_pickles.py @@ -49,7 +49,10 @@ def test_repr(): sys.byteorder != "little", reason="Pickle does not restore byte orders" ) @pytest.mark.xfail( - sys.platform == "win32", reason="Pickle fails to read w/ Windows carriage return" + sys.platform == "win32", reason=( + "Pickle fails to read w/ Windows carriage return " + "( https://github.com/zarr-developers/numcodecs/issues/271 )" + ) ) def test_backwards_compatibility(): check_backwards_compatibility(Pickle.codec_id, arrays, codecs) From 5d46fac67a9ff85e87209c81242daaf75070845b Mon Sep 17 00:00:00 2001 From: JacksonMaxfield Date: Tue, 16 Mar 2021 16:47:48 -0700 Subject: [PATCH 22/27] Update CI to install editable and run full tests --- .github/workflows/ci-osx.yaml | 5 +++-- .github/workflows/ci-windows.yaml | 5 +++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci-osx.yaml b/.github/workflows/ci-osx.yaml index 2e832641..45910264 100644 --- a/.github/workflows/ci-osx.yaml +++ b/.github/workflows/ci-osx.yaml @@ -38,10 +38,11 @@ jobs: run: | conda activate env export CC=clang - python setup.py build + python -m pip install -U pip -r requirements_test.txt -r requirements.txt + python -m pip install -v -e . - name: Run tests shell: "bash -l {0}" run: | conda activate env - pytest -v --pyargs numcodecs + pytest -v --cov=numcodecs --doctest-modules --doctest-glob=*.pyx numcodecs diff --git a/.github/workflows/ci-windows.yaml b/.github/workflows/ci-windows.yaml index 31ed08cd..dbd9c6a2 100644 --- a/.github/workflows/ci-windows.yaml +++ b/.github/workflows/ci-windows.yaml @@ -38,10 +38,11 @@ jobs: run: | conda activate env export CC=clang - python setup.py build + python -m pip install -U pip -r requirements_test.txt -r requirements.txt + python -m pip install -v -e . - name: Run tests shell: "bash -l {0}" run: | conda activate env - pytest -v --pyargs numcodecs + pytest -v --cov=numcodecs --doctest-modules --doctest-glob=*.pyx numcodecs From b41868f9b41119465446090bcf6d569d87107aa3 Mon Sep 17 00:00:00 2001 From: JacksonMaxfield Date: Tue, 16 Mar 2021 17:13:10 -0700 Subject: [PATCH 23/27] Remove doc testing from windows + mac --- .github/workflows/ci-osx.yaml | 2 +- .github/workflows/ci-windows.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci-osx.yaml b/.github/workflows/ci-osx.yaml index 45910264..0756ff1a 100644 --- a/.github/workflows/ci-osx.yaml +++ b/.github/workflows/ci-osx.yaml @@ -45,4 +45,4 @@ jobs: shell: "bash -l {0}" run: | conda activate env - pytest -v --cov=numcodecs --doctest-modules --doctest-glob=*.pyx numcodecs + pytest -v --cov=numcodecs numcodecs diff --git a/.github/workflows/ci-windows.yaml b/.github/workflows/ci-windows.yaml index dbd9c6a2..572d2595 100644 --- a/.github/workflows/ci-windows.yaml +++ b/.github/workflows/ci-windows.yaml @@ -45,4 +45,4 @@ jobs: shell: "bash -l {0}" run: | conda activate env - pytest -v --cov=numcodecs --doctest-modules --doctest-glob=*.pyx numcodecs + pytest -v --cov=numcodecs numcodecs From 78f289f5179cfbc8608f4259b175d39c5f38b898 Mon Sep 17 00:00:00 2001 From: JacksonMaxfield Date: Tue, 16 Mar 2021 17:36:52 -0700 Subject: [PATCH 24/27] Pin python 3.6 to 3.6.1 --- .github/workflows/ci-osx.yaml | 2 +- .github/workflows/ci-windows.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci-osx.yaml b/.github/workflows/ci-osx.yaml index 0756ff1a..d48d39a8 100644 --- a/.github/workflows/ci-osx.yaml +++ b/.github/workflows/ci-osx.yaml @@ -8,7 +8,7 @@ jobs: strategy: fail-fast: false matrix: - python-version: ["3.6", "3.7", "3.8", "3.9"] + python-version: ["3.6.1", "3.7", "3.8", "3.9"] steps: - name: Checkout source diff --git a/.github/workflows/ci-windows.yaml b/.github/workflows/ci-windows.yaml index 572d2595..6048527a 100644 --- a/.github/workflows/ci-windows.yaml +++ b/.github/workflows/ci-windows.yaml @@ -8,7 +8,7 @@ jobs: strategy: fail-fast: false matrix: - python-version: ["3.6", "3.7", "3.8", "3.9"] + python-version: ["3.6.1", "3.7", "3.8", "3.9"] steps: - name: Checkout source From 97db7c98b450048feb259b44cec49e4d648a5945 Mon Sep 17 00:00:00 2001 From: JacksonMaxfield Date: Tue, 16 Mar 2021 18:28:05 -0700 Subject: [PATCH 25/27] Don't run cov on osx + windows --- .github/workflows/ci-osx.yaml | 4 ++-- .github/workflows/ci-windows.yaml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci-osx.yaml b/.github/workflows/ci-osx.yaml index d48d39a8..8aaac4aa 100644 --- a/.github/workflows/ci-osx.yaml +++ b/.github/workflows/ci-osx.yaml @@ -8,7 +8,7 @@ jobs: strategy: fail-fast: false matrix: - python-version: ["3.6.1", "3.7", "3.8", "3.9"] + python-version: ["3.6", "3.7", "3.8", "3.9"] steps: - name: Checkout source @@ -45,4 +45,4 @@ jobs: shell: "bash -l {0}" run: | conda activate env - pytest -v --cov=numcodecs numcodecs + pytest -v --pyargs numcodecs diff --git a/.github/workflows/ci-windows.yaml b/.github/workflows/ci-windows.yaml index 6048527a..fa32cf1d 100644 --- a/.github/workflows/ci-windows.yaml +++ b/.github/workflows/ci-windows.yaml @@ -8,7 +8,7 @@ jobs: strategy: fail-fast: false matrix: - python-version: ["3.6.1", "3.7", "3.8", "3.9"] + python-version: ["3.6", "3.7", "3.8", "3.9"] steps: - name: Checkout source @@ -45,4 +45,4 @@ jobs: shell: "bash -l {0}" run: | conda activate env - pytest -v --cov=numcodecs numcodecs + pytest -v --pyargs numcodecs From 39ed40337c1091f4896d91a0ee24a0bd923e51f1 Mon Sep 17 00:00:00 2001 From: JacksonMaxfield Date: Tue, 16 Mar 2021 18:37:22 -0700 Subject: [PATCH 26/27] Add unreleased section to release --- docs/release.rst | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/docs/release.rst b/docs/release.rst index 08629a3a..c9cbf966 100644 --- a/docs/release.rst +++ b/docs/release.rst @@ -1,13 +1,22 @@ Release notes ============= +.. _unreleased: + +Unreleased +---------- + +* Update Windows + Mac CI to run all tests. + By :user:`Jackson Maxfield Brown `, :issue:`275`. + Help from :user:`Oleg Höfling `, :issue:`273`. + .. _release_0.7.3: 0.7.3 ----- * Add support for Python 3.9 and Update GitHub Actions. - By :user:`Jackson Maxfield `, :issue:`270`. + By :user:`Jackson Maxfield Brown `, :issue:`270`. * Remove support for Python 3.5 which is end of life. While the code base might still be compatible; the source dist and wheel are marked as Python 3.6+ and From e2c65504a669f569f120531e9c23a1f0aca5e9b6 Mon Sep 17 00:00:00 2001 From: JacksonMaxfield Date: Tue, 16 Mar 2021 18:38:43 -0700 Subject: [PATCH 27/27] Update PR pointer in docs --- docs/release.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/release.rst b/docs/release.rst index c9cbf966..ea8ebb47 100644 --- a/docs/release.rst +++ b/docs/release.rst @@ -7,7 +7,7 @@ Unreleased ---------- * Update Windows + Mac CI to run all tests. - By :user:`Jackson Maxfield Brown `, :issue:`275`. + By :user:`Jackson Maxfield Brown `, :issue:`276`. Help from :user:`Oleg Höfling `, :issue:`273`. .. _release_0.7.3: