diff --git a/.copier-answers.yml b/.copier-answers.yml index a135d31c..acaaed37 100644 --- a/.copier-answers.yml +++ b/.copier-answers.yml @@ -1,5 +1,5 @@ # Changes here will be overwritten by Copier; NEVER EDIT MANUALLY -_commit: 3f79959 +_commit: 3561fcd _src_path: gh:scipp/copier_template description: Reflectometry data reduction for the European Spallation Source max_python: '3.13' diff --git a/.github/workflows/nightly_at_main_lower_bound.yml b/.github/workflows/nightly_at_main_lower_bound.yml new file mode 100644 index 00000000..c13c3f78 --- /dev/null +++ b/.github/workflows/nightly_at_main_lower_bound.yml @@ -0,0 +1,37 @@ +name: Nightly test using lower bound dependencies + +on: + workflow_dispatch: + schedule: + - cron: '30 1 * * 1-5' + +jobs: + setup: + name: Setup variables + runs-on: 'ubuntu-24.04' + outputs: + min_python: ${{ steps.vars.outputs.min_python }} + steps: + - uses: actions/checkout@v4 + - name: Get Python version for other CI jobs + id: vars + run: echo "min_python=$(< .github/workflows/python-version-ci)" >> "$GITHUB_OUTPUT" + + tests: + name: Tests at lower bound + needs: setup + strategy: + matrix: + os: ['ubuntu-24.04'] + python: + - version: '${{needs.setup.outputs.min_python}}' + runs-on: ${{ matrix.os }} + env: + ESS_PROTECTED_FILESTORE_USERNAME: ${{ secrets.ESS_PROTECTED_FILESTORE_USERNAME }} + ESS_PROTECTED_FILESTORE_PASSWORD: ${{ secrets.ESS_PROTECTED_FILESTORE_PASSWORD }} + steps: + - uses: actions/checkout@v4 + - uses: astral-sh/setup-uv@v6 + with: + python-version: ${{ matrix.python.version }} + - run: uv run --extra=test --resolution=lowest-direct pytest diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index d9053bd4..f8e71574 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -36,6 +36,8 @@ repos: - id: codespell additional_dependencies: - tomli + exclude_types: + - svg - repo: https://github.com/pre-commit/pygrep-hooks rev: v1.10.0 hooks: diff --git a/docs/about/index.md b/docs/about/index.md index 34137182..879c4b59 100644 --- a/docs/about/index.md +++ b/docs/about/index.md @@ -2,11 +2,11 @@ ## Development -ESSreflectometry is an open source project by the [European Spallation Source ERIC](https://europeanspallationsource.se/) (ESS). +ESSreflectometry is an open source project by the [European Spallation Source ERIC](https://ess.eu/) (ESS). ## License -ESSreflectometry is available as open source under the [BSD-3 license](https://opensource.org/licenses/BSD-3-Clause). +ESSreflectometry is available as open source under the [BSD-3 license](https://opensource.org/license/BSD-3-Clause). ## Citing ESSreflectometry diff --git a/docs/conf.py b/docs/conf.py index 861f81b1..78c47943 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -32,7 +32,8 @@ 'sphinx_autodoc_typehints', 'sphinx_copybutton', 'sphinx_design', - "sphinxcontrib.bibtex", + 'sphinxcontrib.bibtex', + 'sphinxcontrib.autodoc_pydantic', 'nbsphinx', 'myst_parser', ] diff --git a/pyproject.toml b/pyproject.toml index bdd34707..4c99a567 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -31,25 +31,25 @@ requires-python = ">=3.10" # Run 'tox -e deps' after making changes here. This will update requirement files. # Make sure to list one dependency per line. dependencies = [ - "dask", + "dask>=2022.1.0", "python-dateutil", "graphviz", - "plopp", - "orsopy", + "plopp>=24.7.0", + "orsopy>=1.2", "sciline>=24.6.0", "scipp>=24.09.1", # Fixed new hist/bin API - "scippneutron>=24.7.0", + "scippneutron>=24.10.0", "scippnexus>=24.9.1", - "essreduce", - "pandas", + "essreduce>=25.4.0", + "pandas>=2.1.2", ] dynamic = ["version"] [project.optional-dependencies] test = [ - "pytest", - "pooch", + "pytest>=7.0", + "pooch>=1.5", ] all = [ "ipywidgets", diff --git a/requirements/base.in b/requirements/base.in index 9af604e5..69e30a36 100644 --- a/requirements/base.in +++ b/requirements/base.in @@ -2,14 +2,14 @@ # will not be touched by ``make_base.py`` # --- END OF CUSTOM SECTION --- # The following was generated by 'tox -e deps', DO NOT EDIT MANUALLY! -dask +dask>=2022.1.0 python-dateutil graphviz -plopp -orsopy +plopp>=24.7.0 +orsopy>=1.2 sciline>=24.6.0 scipp>=24.09.1 -scippneutron>=24.7.0 +scippneutron>=24.10.0 scippnexus>=24.9.1 -essreduce -pandas +essreduce>=25.4.0 +pandas>=2.1.2 diff --git a/requirements/base.txt b/requirements/base.txt index 46dc79a6..80fae5a5 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -1,4 +1,4 @@ -# SHA1:e1f1193e2c78c1dda6ffc784197fb6babbad9245 +# SHA1:130d28f27af16c0c6e122d19bb76f37750334d26 # # This file was generated by pip-compile-multi. # To update, run: @@ -77,7 +77,7 @@ partd==1.4.2 # via dask pillow==11.3.0 # via matplotlib -plopp==25.7.0 +plopp==25.7.1 # via # -r base.in # scippneutron diff --git a/requirements/basetest.in b/requirements/basetest.in index 763960e7..d5df38a9 100644 --- a/requirements/basetest.in +++ b/requirements/basetest.in @@ -7,5 +7,5 @@ # 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 -pooch +pytest>=7.0 +pooch>=1.5 diff --git a/requirements/basetest.txt b/requirements/basetest.txt index 0f12720c..1602ae96 100644 --- a/requirements/basetest.txt +++ b/requirements/basetest.txt @@ -1,4 +1,4 @@ -# SHA1:54ed0e3deb2d458e91bae14067e84eaad659f5fd +# SHA1:ca39ad2dd07c303d616b3b63afee59b3c41e83fe # # This file was generated by pip-compile-multi. # To update, run: diff --git a/requirements/ci.txt b/requirements/ci.txt index 629701a6..59e34147 100644 --- a/requirements/ci.txt +++ b/requirements/ci.txt @@ -15,7 +15,7 @@ charset-normalizer==3.4.2 # via requests colorama==0.4.6 # via tox -distlib==0.3.9 +distlib==0.4.0 # via virtualenv filelock==3.18.0 # via diff --git a/requirements/dev.txt b/requirements/dev.txt index 290f4dcc..8359489e 100644 --- a/requirements/dev.txt +++ b/requirements/dev.txt @@ -48,7 +48,7 @@ json5==0.12.0 # via jupyterlab-server jsonpointer==3.0.0 # via jsonschema -jsonschema[format-nongpl]==4.24.0 +jsonschema[format-nongpl]==4.24.1 # via # jupyter-events # jupyterlab-server diff --git a/requirements/docs.in b/requirements/docs.in index d5dbc6f2..d83e5dc0 100644 --- a/requirements/docs.in +++ b/requirements/docs.in @@ -1,4 +1,5 @@ -r base.in +autodoc-pydantic ipykernel ipython!=8.7.0 # Breaks syntax highlighting in Jupyter code cells. myst-parser diff --git a/requirements/docs.txt b/requirements/docs.txt index d840e33f..6d5679c7 100644 --- a/requirements/docs.txt +++ b/requirements/docs.txt @@ -1,4 +1,4 @@ -# SHA1:115367bb8120d51de5386764a1bfb682e35fb591 +# SHA1:f9a72007a97d079a7753508dd281cc73be31c115 # # This file was generated by pip-compile-multi. # To update, run: @@ -16,6 +16,8 @@ attrs==25.3.0 # via # jsonschema # referencing +autodoc-pydantic==2.2.0 + # via -r docs.in babel==2.17.0 # via # pydata-sphinx-theme @@ -89,7 +91,7 @@ jinja2==3.1.6 # nbconvert # nbsphinx # sphinx -jsonschema==4.24.0 +jsonschema==4.24.1 # via nbformat jsonschema-specifications==2025.4.1 # via jsonschema @@ -171,6 +173,8 @@ pybtex==0.25.1 # sphinxcontrib-bibtex pybtex-docutils==1.0.3 # via sphinxcontrib-bibtex +pydantic-settings==2.10.1 + # via autodoc-pydantic pydata-sphinx-theme==0.16.1 # via -r docs.in pygments==2.19.2 @@ -180,6 +184,8 @@ pygments==2.19.2 # nbconvert # pydata-sphinx-theme # sphinx +python-dotenv==1.1.1 + # via pydantic-settings pyzmq==27.0.0 # via # ipykernel @@ -203,6 +209,7 @@ soupsieve==2.7 sphinx==8.1.3 # via # -r docs.in + # autodoc-pydantic # myst-parser # nbsphinx # pydata-sphinx-theme diff --git a/requirements/nightly.in b/requirements/nightly.in index 45533e78..f56746af 100644 --- a/requirements/nightly.in +++ b/requirements/nightly.in @@ -1,14 +1,14 @@ # --- END OF CUSTOM SECTION --- # The following was generated by 'tox -e deps', DO NOT EDIT MANUALLY! -dask +dask>=2022.1.0 python-dateutil graphviz -orsopy -essreduce -pandas -pytest -pooch +orsopy>=1.2 +essreduce>=25.4.0 +pandas>=2.1.2 +pytest>=7.0 +pooch>=1.5 plopp @ git+https://github.com/scipp/plopp@main sciline @ git+https://github.com/scipp/sciline@main scippneutron @ git+https://github.com/scipp/scippneutron@main diff --git a/requirements/nightly.txt b/requirements/nightly.txt index 67ef2eb8..a7fb79d8 100644 --- a/requirements/nightly.txt +++ b/requirements/nightly.txt @@ -1,4 +1,4 @@ -# SHA1:1d5357c0111d56b227d417d6b9ca1c0de673c437 +# SHA1:a521e061e365845bc9f865de42e02ae8ce9489b1 # # This file was generated by pip-compile-multi. # To update, run: diff --git a/requirements/static.txt b/requirements/static.txt index 7dbd6032..463662ca 100644 --- a/requirements/static.txt +++ b/requirements/static.txt @@ -7,7 +7,7 @@ # cfgv==3.4.0 # via pre-commit -distlib==0.3.9 +distlib==0.4.0 # via virtualenv filelock==3.18.0 # via virtualenv