From 528183dd3648b69835969a4ecc17a952ccefe2ce Mon Sep 17 00:00:00 2001 From: Stuart Mumford Date: Tue, 28 Jan 2025 11:47:31 +0000 Subject: [PATCH] Update dependancies and min Python --- .circleci/config.yml | 12 ++++++------ .github/workflows/main.yml | 18 +++++++++--------- changelog/507.breaking.rst | 9 +++++++++ pyproject.toml | 30 +++++++++++++++--------------- pytest.ini | 26 ++------------------------ tox.ini | 8 ++++---- 6 files changed, 45 insertions(+), 58 deletions(-) create mode 100644 changelog/507.breaking.rst diff --git a/.circleci/config.yml b/.circleci/config.yml index dc1bc81a..45c21932 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -32,7 +32,7 @@ jobs: jobname: type: string docker: - - image: cimg/python:3.12 + - image: cimg/python:3.13 environment: TOXENV=<< parameters.jobname >> steps: @@ -54,7 +54,7 @@ jobs: jobname: type: string docker: - - image: cimg/python:3.12 + - image: cimg/python:3.13 environment: TOXENV: << parameters.jobname >> GIT_SSH_COMMAND: ssh -i ~/.ssh/id_rsa_7b8fc81c13a3b446ec9aa50d3f626978 @@ -96,16 +96,16 @@ workflows: matrix: parameters: jobname: - - "py312-figure" - - "py312-figure-devdeps" + - "py313-figure" + - "py313-figure-devdeps" - deploy-reference-images: name: baseline-<< matrix.jobname >> matrix: parameters: jobname: - - "py312-figure" - - "py312-figure-devdeps" + - "py313-figure" + - "py313-figure-devdeps" requires: - << matrix.jobname >> filters: diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 4699ade9..f8e412c3 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -33,22 +33,22 @@ jobs: tests: uses: OpenAstronomy/github-actions-workflows/.github/workflows/tox.yml@main with: - default_python: '3.10' + default_python: '3.13' coverage: 'codecov' posargs: '--color=yes' envs: | + - linux: py313 - linux: py312 - - linux: py311 - - windows: py311-online - - macos: py310 - - linux: py310-oldestdeps + - windows: py312-online + - macos: py311 + - linux: py311-oldestdeps secrets: CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} docs: uses: OpenAstronomy/github-actions-workflows/.github/workflows/tox.yml@main with: - default_python: '3.10' + default_python: '3.13' coverage: 'codecov' envs: | - linux: build_docs-notebooks @@ -65,7 +65,7 @@ jobs: - uses: actions/checkout@v4 - uses: actions/setup-python@v5 with: - python-version: '3.10' + python-version: '3.13' - run: python -m pip install -U --user build - run: python -m build . --sdist - run: python -m pip install -U --user twine @@ -77,7 +77,7 @@ jobs: coverage: 'codecov' posargs: '--color=yes' envs: | - - linux: py311-devdeps + - linux: py313-devdeps secrets: CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} @@ -90,7 +90,7 @@ jobs: ) uses: OpenAstronomy/github-actions-workflows/.github/workflows/publish_pure_python.yml@main with: - python-version: '3.10' + python-version: '3.13' test_extras: tests test_command: pytest --pyargs dkist -k "not test_fail" # We have to work around a github runner bug here: https://github.com/actions/runner/issues/2788#issuecomment-2145922705 diff --git a/changelog/507.breaking.rst b/changelog/507.breaking.rst new file mode 100644 index 00000000..ccb1e7ca --- /dev/null +++ b/changelog/507.breaking.rst @@ -0,0 +1,9 @@ +The minimum supported versions of dependencies and Python have been updated, this release requires: +* Python 3.11 +* asdf 2.15 (and plugin version bumps) +* dask 2023.2 +* matplotlib 3.7 +* ndcube 2.1 +* numpy 1.25 +* parfive 2.1 +* sunpy 5.0 diff --git a/pyproject.toml b/pyproject.toml index 79a421da..ce2577ca 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -9,37 +9,37 @@ build-backend = "setuptools.build_meta" [project] name = "dkist" description = "DKIST User Tools" -requires-python = ">=3.10" +requires-python = ">=3.11" readme = { file = "README.rst", content-type = "text/x-rst" } license = { file = "licenses/LICENSE.rst" } authors = [ { name = "NSO / AURA", email = "stuart@cadair.com" }, ] dependencies = [ - "aiohttp>=3.8", + "aiohttp>=3.9", # Provide minimum deps for all asdf packages used to generate or read asdf # files so that we test with these minimums and also generate asdf's with # them # Some of these schema dependencies are minimums because we generated asdf # files with them unpinned so they are now required to read generated asdf # files. - "asdf>=2.11.2", - "asdf-astropy>=0.2.0", - "asdf-coordinates-schemas>=0.1.0", - "asdf-standard>=1.0.3", - "asdf-transform-schemas>=0.3.0", + "asdf>=2.15.0", + "asdf-astropy>=0.4.0", + "asdf-coordinates-schemas>=0.2.0", + "asdf-standard>=1.1.0", + "asdf-transform-schemas>=0.4.0", "asdf-wcs-schemas>=0.3.0", "astropy>=5.3", - "dask[array]>=2021.8.0", + "dask[array]>=2023.2.0", "globus-sdk>=3.0", "gwcs>=0.19.0", - "matplotlib>=3.5", - "ndcube[plotting,reproject]>=2.0", - "numpy>=1.22", - "parfive[ftp]>=1.5", + "matplotlib>=3.7", + "ndcube[plotting,reproject]>=2.1", + "numpy>=1.25", + "parfive[ftp]>=2.1", "platformdirs>=3.0", - "sunpy[net,asdf]>=4.0.7", - "tqdm>=4.63", + "sunpy[net,asdf]>=5.0", + "tqdm>=4.65", ] dynamic = ["version"] @@ -69,7 +69,7 @@ docs = [ "sphinx-gallery", "pytest", "sphinx_autodoc_typehints", - "dkist-sphinx-theme>=1.1.2", + "dkist-sphinx-theme>=2.0", "sphinx-design", "myst-nb", "ipywidgets", diff --git a/pytest.ini b/pytest.ini index 3f278400..d1527314 100644 --- a/pytest.ini +++ b/pytest.ini @@ -52,8 +52,6 @@ filterwarnings = ignore:ERFA function "taiutc"* ignore:ERFA function "utcut1"* ignore:Tried to get polar motions for times after IERS data is valid* - # Zeep deprecation warning - ignore:defusedxml.lxml is no longer supported and will be removed in a future release. # This is due to dependencies building with a numpy version different from # the local installed numpy version, but should be fine # See https://github.com/numpy/numpy/issues/15748#issuecomment-598584838 @@ -65,28 +63,8 @@ filterwarnings = ignore:the imp module is deprecated in favour of importlib:DeprecationWarning:ipykernel.iostream # Ignore warnings about asdf versions ignore:File.*asdf.extension.BuiltinExtension.* - # pytest / asdf interaction - ignore:The .* argument to AsdfSchemaFile is deprecated - # gwcs main has the wrong version number: https://github.com/spacetelescope/gwcs/issues/399 - ignore:File.*from package gwcs\=\=0\.18\.0\), but older package \(gwcs.*\) is installed. # Ignore asdf older version errors ignore: File.* was created with extension.*but older package.*is installed. - ignore:The distutils.sysconfig module is deprecated, use sysconfig instead:DeprecationWarning - ignore:FLIP_TOP_BOTTOM is deprecated and will be removed in Pillow.* - ignore::ResourceWarning - # Zeep relies on deprecated cgi in Python 3.11 - ignore:'cgi' is deprecated and slated for removal in Python 3.13:DeprecationWarning:zeep.utils # Oldestdeps below here - ignore:`np.float` is a deprecated alias for the builtin `float`. To silence this warning, use `float` by itself.::dask.array - ignore:leap-second auto-update failed due to the following exception - ignore:"@coroutine" decorator is deprecated since Python 3.8, use "async def" instead - ignore:The loop argument is deprecated since Python 3.8, and scheduled for removal in Python 3.10. - ignore:Subclassing validator classes is not intended to be part of their public API - # Ignore warning so gwcs 0.18.3 can load - ignore:Converter handles multiple tags for this extension - # https://github.com/pandas-dev/pandas/issues/54466 - ignore:\nPyarrow will become a required dependency of pandas in the next major release of pandas:DeprecationWarning - # This seems to be coming out of pandas - ignore:datetime.datetime.utcfromtimestamp.*:DeprecationWarning - # The new way of doing it is 3.11 - ignore:datetime.datetime.utcnow.*:DeprecationWarning + ignore:pkg_resources is deprecated as an API.*:DeprecationWarning + ignore:Deprecated call to .*pkg_resources\.declare_namespace.*mpl_toolkits.*:DeprecationWarning diff --git a/tox.ini b/tox.ini index a9b041a3..69330c88 100644 --- a/tox.ini +++ b/tox.ini @@ -5,10 +5,10 @@ requires = pip >= 21.0.1 tox-pypi-filter >= 0.14 envlist = - py{310,311,312} - py312-{devdeps,benchmarks,figure} - py312-figure-devdeps - py310-oldestdeps + py{311,312,313} + py313-{devdeps,benchmarks,figure} + py313-figure-devdeps + py311-oldestdeps codestyle build_docs{,-notebooks}