From aafab9a3383f52cd424107a3b90c6834daff0ba8 Mon Sep 17 00:00:00 2001 From: YooSunyoung <17974113+YooSunYoung@users.noreply.github.com> Date: Tue, 3 Feb 2026 17:00:50 +0100 Subject: [PATCH 1/4] Copier update --- .copier-answers.yml | 2 +- .github/dependabot.yml | 13 ------------- .github/workflows/docs.yml | 2 +- .github/workflows/nightly_at_main_lower_bound.yml | 2 +- .gitignore | 1 + .pre-commit-config.yaml | 8 ++++---- docs/conf.py | 3 ++- pyproject.toml | 2 +- src/scippnexus/__init__.py | 2 +- tox.ini | 6 +++--- 10 files changed, 15 insertions(+), 26 deletions(-) delete mode 100644 .github/dependabot.yml diff --git a/.copier-answers.yml b/.copier-answers.yml index 8b106f54..f91e48f9 100644 --- a/.copier-answers.yml +++ b/.copier-answers.yml @@ -1,5 +1,5 @@ # Changes here will be overwritten by Copier; NEVER EDIT MANUALLY -_commit: c3214e6 +_commit: b87e087 _src_path: gh:scipp/copier_template description: An h5py-like utility for NeXus files with seamless Scipp integration max_python: '3.13' diff --git a/.github/dependabot.yml b/.github/dependabot.yml deleted file mode 100644 index c8076bb1..00000000 --- a/.github/dependabot.yml +++ /dev/null @@ -1,13 +0,0 @@ -version: 2 -updates: - # Note: We are not listing package-ecosystem: "github-actions". This causes - # noise in all template instances. Instead dependabot.yml in scipp/copier_template - # triggers updates of github-actions in the *template*. We then use `copier update` - # in template instances. - - package-ecosystem: "pip" - directory: "/requirements" - schedule: - interval: "daily" - allow: - - dependency-name: "scipp" - dependency-type: "direct" diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 47294b92..3a303f84 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -71,7 +71,7 @@ jobs: path: html/ - run: echo "::notice::https://remote-unzip.deno.dev/${{ github.repository }}/artifacts/${{ steps.artifact-upload-step.outputs.artifact-id }}" - - uses: JamesIves/github-pages-deploy-action@v4.7.3 + - uses: JamesIves/github-pages-deploy-action@v4.8.0 if: ${{ inputs.publish }} with: branch: gh-pages diff --git a/.github/workflows/nightly_at_main_lower_bound.yml b/.github/workflows/nightly_at_main_lower_bound.yml index c13c3f78..c086e3cc 100644 --- a/.github/workflows/nightly_at_main_lower_bound.yml +++ b/.github/workflows/nightly_at_main_lower_bound.yml @@ -31,7 +31,7 @@ jobs: ESS_PROTECTED_FILESTORE_PASSWORD: ${{ secrets.ESS_PROTECTED_FILESTORE_PASSWORD }} steps: - uses: actions/checkout@v4 - - uses: astral-sh/setup-uv@v6 + - uses: astral-sh/setup-uv@v7 with: python-version: ${{ matrix.python.version }} - run: uv run --extra=test --resolution=lowest-direct pytest diff --git a/.gitignore b/.gitignore index 720318ba..c6e47900 100644 --- a/.gitignore +++ b/.gitignore @@ -46,3 +46,4 @@ docs/generated/ *.zip *.sqw *.nxspe +*.mtz diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 2d684f49..683b94d7 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -1,6 +1,6 @@ repos: - repo: https://github.com/pre-commit/pre-commit-hooks - rev: v5.0.0 + rev: v6.0.0 hooks: - id: check-added-large-files - id: check-case-conflict @@ -15,14 +15,14 @@ repos: args: [ --markdown-linebreak-ext=md ] exclude: '\.svg' - repo: https://github.com/kynan/nbstripout - rev: 0.8.1 + rev: 0.8.2 hooks: - id: nbstripout types: [ "jupyter" ] args: [ "--drop-empty-cells", "--extra-keys 'metadata.language_info.version cell.metadata.jp-MarkdownHeadingCollapsed cell.metadata.pycharm'" ] - repo: https://github.com/astral-sh/ruff-pre-commit - rev: v0.11.12 + rev: v0.14.6 hooks: - id: ruff args: [ --fix ] @@ -48,7 +48,7 @@ repos: - id: rst-inline-touching-normal - id: text-unicode-replacement-char - repo: https://github.com/rhysd/actionlint - rev: v1.7.7 + rev: v1.7.9 hooks: - id: actionlint # Disable because of false-positive SC2046 diff --git a/docs/conf.py b/docs/conf.py index 71731be1..efe7593a 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -274,5 +274,6 @@ def do_not_plot(*args, **kwargs): r'https?://github\.com/.*?/blob/[a-f0-9]+/.+?#', # Linkcheck seems to be denied access by some DOI resolvers. # Since DOIs are supposed to be permanent, we don't need to check them.' - r'https://doi\.org/', + r'https?://doi\.org/', + r'https?://dx\.doi\.org/', ] diff --git a/pyproject.toml b/pyproject.toml index 89c5f963..14dcf83b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -39,7 +39,7 @@ dynamic = ["version"] [project.optional-dependencies] test = [ - "pytest>=7.0", + "pytest>=8.0", ] [project.urls] diff --git a/src/scippnexus/__init__.py b/src/scippnexus/__init__.py index df919ac8..d7f9dc72 100644 --- a/src/scippnexus/__init__.py +++ b/src/scippnexus/__init__.py @@ -1,6 +1,6 @@ # SPDX-License-Identifier: BSD-3-Clause # Copyright (c) 2025 Scipp contributors (https://github.com/scipp) -# ruff: noqa: E402, F401, I +# ruff: noqa: RUF100, E402, F401, I import importlib.metadata diff --git a/tox.ini b/tox.ini index af0feb97..dac88a1f 100644 --- a/tox.ini +++ b/tox.ini @@ -26,8 +26,8 @@ commands = pytest {posargs} description = invoke sphinx-build to build the HTML docs deps = -r requirements/docs.txt allowlist_externals=find -commands = python -m sphinx -j2 -v -b html -d {toxworkdir}/docs_doctrees docs html - python -m sphinx -j2 -v -b doctest -d {toxworkdir}/docs_doctrees docs html +commands = python -m sphinx -W -j2 -v -b html -d {toxworkdir}/docs_doctrees docs html + python -m sphinx -W -j2 -v -b doctest -d {toxworkdir}/docs_doctrees -D nbsphinx_execute=never docs html find html -type f -name "*.ipynb" -not -path "html/_sources/*" -delete [testenv:releasedocs] @@ -42,7 +42,7 @@ commands = {[testenv:docs]commands} [testenv:linkcheck] description = Run Sphinx linkcheck deps = -r requirements/docs.txt -commands = python -m sphinx -j2 -v -b linkcheck -d {toxworkdir}/docs_doctrees docs html +commands = python -m sphinx -j2 -v -b linkcheck -d {toxworkdir}/docs_doctrees -D nbsphinx_execute=never docs html [testenv:static] description = Code formatting and static analysis From 7da7c9dcae6fea27b225eb96d90d217d3252a11e Mon Sep 17 00:00:00 2001 From: YooSunyoung <17974113+YooSunYoung@users.noreply.github.com> Date: Tue, 3 Feb 2026 17:02:21 +0100 Subject: [PATCH 2/4] Escape error match pattern. --- tests/file_test.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tests/file_test.py b/tests/file_test.py index d47a11aa..e7191a74 100644 --- a/tests/file_test.py +++ b/tests/file_test.py @@ -2,6 +2,7 @@ # Copyright (c) 2024 Scipp contributors (https://github.com/scipp) import io +import re from pathlib import Path import h5py as h5 @@ -62,6 +63,7 @@ def test_file_from_h5py_group_does_not_allow_extra_args(tmp_path) -> None: with h5.File('test.nxs', 'w', driver='core', backing_store=False) as h5_file: snx.create_class(h5_file, 'entry', snx.NXentry) with pytest.raises( - TypeError, match='Cannot provide both h5py.File and other arguments' + TypeError, + match=re.escape('Cannot provide both h5py.File and other arguments'), ): snx.File(h5_file, 'r') From 2b78b98548071dc447deb2ac1e8dc6d0980d74f2 Mon Sep 17 00:00:00 2001 From: YooSunyoung <17974113+YooSunYoung@users.noreply.github.com> Date: Tue, 3 Feb 2026 17:03:34 +0100 Subject: [PATCH 3/4] Lock dependencies. --- requirements/base.txt | 4 ++-- requirements/basetest.in | 2 +- requirements/basetest.txt | 2 +- requirements/ci.txt | 2 +- requirements/docs.txt | 16 +++++++++------- requirements/nightly.in | 2 +- requirements/nightly.txt | 6 +++--- 7 files changed, 18 insertions(+), 16 deletions(-) diff --git a/requirements/base.txt b/requirements/base.txt index d18fa8c3..862d189d 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -7,12 +7,12 @@ # h5py==3.15.1 # via -r base.in -numpy==2.4.1 +numpy==2.4.2 # via # h5py # scipp # scipy -scipp==26.1.1 +scipp==26.2.0 # via -r base.in scipy==1.17.0 # via -r base.in diff --git a/requirements/basetest.in b/requirements/basetest.in index 231016ec..692bca17 100644 --- a/requirements/basetest.in +++ b/requirements/basetest.in @@ -7,4 +7,4 @@ # will not be touched by ``make_base.py`` # --- END OF CUSTOM SECTION --- # The following was generated by 'tox -e deps', DO NOT EDIT MANUALLY! -pytest>=7.0 +pytest>=8.0 diff --git a/requirements/basetest.txt b/requirements/basetest.txt index 7950f419..2509493d 100644 --- a/requirements/basetest.txt +++ b/requirements/basetest.txt @@ -1,4 +1,4 @@ -# SHA1:8287decb8676bd4ad5934cc138073b38af537418 +# SHA1:a183f2aaeff6c4f418995809266f8825553a276e # # This file was generated by pip-compile-multi. # To update, run: diff --git a/requirements/ci.txt b/requirements/ci.txt index e68457e1..20ed8164 100644 --- a/requirements/ci.txt +++ b/requirements/ci.txt @@ -5,7 +5,7 @@ # # requirements upgrade # -cachetools==6.2.6 +cachetools==7.0.0 # via tox certifi==2026.1.4 # via requests diff --git a/requirements/docs.txt b/requirements/docs.txt index 30bd35d2..5da928dc 100644 --- a/requirements/docs.txt +++ b/requirements/docs.txt @@ -12,6 +12,8 @@ alabaster==1.0.0 # via sphinx annotated-types==0.7.0 # via pydantic +appnope==0.1.4 + # via ipykernel asttokens==3.0.1 # via stack-data attrs==25.4.0 @@ -20,7 +22,7 @@ attrs==25.4.0 # referencing autodoc-pydantic==2.2.0 # via -r docs.in -babel==2.17.0 +babel==2.18.0 # via # pydata-sphinx-theme # sphinx @@ -40,7 +42,7 @@ contourpy==1.3.3 # via matplotlib cycler==0.12.1 # via matplotlib -debugpy==1.8.19 +debugpy==1.8.20 # via ipykernel decorator==5.2.1 # via ipython @@ -64,7 +66,7 @@ imagesize==1.4.1 # via sphinx ipykernel==7.1.0 # via -r docs.in -ipython==9.9.0 +ipython==9.10.0 # via # -r docs.in # ipykernel @@ -125,7 +127,7 @@ myst-parser==5.0.0 # via -r docs.in nbclient==0.10.4 # via nbconvert -nbconvert==7.16.6 +nbconvert==7.17.0 # via nbsphinx nbformat==5.10.4 # via @@ -158,11 +160,11 @@ platformdirs==4.5.1 # pooch plopp==25.11.0 # via -r docs.in -pooch==1.8.2 +pooch==1.9.0 # via -r docs.in prompt-toolkit==3.0.52 # via ipython -psutil==7.2.1 +psutil==7.2.2 # via ipykernel ptyprocess==0.7.0 # via pexpect @@ -282,7 +284,7 @@ typing-inspection==0.4.2 # pydantic-settings urllib3==2.6.3 # via requests -wcwidth==0.5.0 +wcwidth==0.5.3 # via prompt-toolkit webencodings==0.5.1 # via diff --git a/requirements/nightly.in b/requirements/nightly.in index 91d9bde5..7d6cfdfb 100644 --- a/requirements/nightly.in +++ b/requirements/nightly.in @@ -3,7 +3,7 @@ # The following was generated by 'tox -e deps', DO NOT EDIT MANUALLY! scipy>=1.10.0 h5py>=3.12 -pytest>=7.0 +pytest>=8.0 scipp --index-url=https://pypi.anaconda.org/scipp-nightly-wheels/simple/ --extra-index-url=https://pypi.org/simple diff --git a/requirements/nightly.txt b/requirements/nightly.txt index 61f09867..c9f7e63a 100644 --- a/requirements/nightly.txt +++ b/requirements/nightly.txt @@ -1,4 +1,4 @@ -# SHA1:444b5ef2a2c9ff87685acd8b81ddfd4460e9687d +# SHA1:b30ab65358588446f6086cfdb6e24c31a02a7b4a # # This file was generated by pip-compile-multi. # To update, run: @@ -12,7 +12,7 @@ h5py==3.15.1 # via -r nightly.in iniconfig==2.3.0 # via pytest -numpy==2.4.1 +numpy==2.4.2 # via # h5py # scipp @@ -25,7 +25,7 @@ pygments==2.19.2 # via pytest pytest==9.0.2 # via -r nightly.in -scipp==26.1.1 +scipp==100.0.0.dev0 # via -r nightly.in scipy==1.17.0 # via -r nightly.in From 6c375b54833d832403a911789187a1a6b200e8eb Mon Sep 17 00:00:00 2001 From: YooSunyoung <17974113+YooSunYoung@users.noreply.github.com> Date: Thu, 5 Feb 2026 10:37:04 +0100 Subject: [PATCH 4/4] Limit sphinx version. --- requirements/docs.in | 2 +- requirements/docs.txt | 12 +++++++----- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/requirements/docs.in b/requirements/docs.in index 20a57c37..d7bd5ec4 100644 --- a/requirements/docs.in +++ b/requirements/docs.in @@ -5,7 +5,7 @@ ipython!=8.7.0 # Breaks syntax highlighting in Jupyter code cells. myst-parser nbsphinx pydata-sphinx-theme>=0.14 -sphinx +sphinx<9.0.0 sphinx-autodoc-typehints sphinx-copybutton sphinx-design diff --git a/requirements/docs.txt b/requirements/docs.txt index 5da928dc..32e93cf9 100644 --- a/requirements/docs.txt +++ b/requirements/docs.txt @@ -1,4 +1,4 @@ -# SHA1:aa7b5bf4690dc2ba74dc15f7758a8235d44dff89 +# SHA1:1b674fbf98bf395cc6ae7012706def6f370b6712 # # This file was generated by pip-compile-multi. # To update, run: @@ -48,7 +48,7 @@ decorator==5.2.1 # via ipython defusedxml==0.7.1 # via nbconvert -docutils==0.22.4 +docutils==0.21.2 # via # myst-parser # nbsphinx @@ -158,7 +158,7 @@ platformdirs==4.5.1 # via # jupyter-core # pooch -plopp==25.11.0 +plopp==26.2.0 # via -r docs.in pooch==1.9.0 # via -r docs.in @@ -211,6 +211,8 @@ requests==2.32.5 # pooch # sphinx roman-numerals==4.1.0 + # via roman-numerals-py +roman-numerals-py==4.1.0 # via sphinx rpds-py==0.30.0 # via @@ -222,7 +224,7 @@ snowballstemmer==3.0.1 # via sphinx soupsieve==2.8.3 # via beautifulsoup4 -sphinx==9.0.4 +sphinx==8.2.3 # via # -r docs.in # autodoc-pydantic @@ -232,7 +234,7 @@ sphinx==9.0.4 # sphinx-autodoc-typehints # sphinx-copybutton # sphinx-design -sphinx-autodoc-typehints==3.6.1 +sphinx-autodoc-typehints==3.5.2 # via -r docs.in sphinx-copybutton==0.5.2 # via -r docs.in