diff --git a/.copier-answers.yml b/.copier-answers.yml index 30864e3c..d39acfa9 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: Diffraction 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/docs/about/index.md b/docs/about/index.md index e7291804..cccf9f45 100644 --- a/docs/about/index.md +++ b/docs/about/index.md @@ -2,11 +2,11 @@ ## Development -ESSdiffraction is an open source project by the [European Spallation Source ERIC](https://europeanspallationsource.se/) (ESS). +ESSdiffraction is an open source project by the [European Spallation Source ERIC](https://ess.eu/) (ESS). ## License -ESSdiffraction is available as open source under the [BSD-3 license](https://opensource.org/licenses/BSD-3-Clause). +ESSdiffraction is available as open source under the [BSD-3 license](https://opensource.org/license/BSD-3-Clause). ## Citing ESSdiffraction diff --git a/docs/conf.py b/docs/conf.py index 53c44237..50955d39 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -21,21 +21,21 @@ html_show_sourcelink = True extensions = [ - "sphinx.ext.autodoc", - "sphinx.ext.autosummary", - "sphinx.ext.doctest", - "sphinx.ext.githubpages", - "sphinx.ext.intersphinx", - "sphinx.ext.mathjax", - "sphinx.ext.napoleon", - "sphinx.ext.viewcode", - "sphinx_autodoc_typehints", - "sphinx_copybutton", - "sphinx_design", - "sphinxcontrib.autodoc_pydantic", - "sphinxcontrib.bibtex", - "nbsphinx", - "myst_parser", + 'sphinx.ext.autodoc', + 'sphinx.ext.autosummary', + 'sphinx.ext.doctest', + 'sphinx.ext.githubpages', + 'sphinx.ext.intersphinx', + 'sphinx.ext.mathjax', + 'sphinx.ext.napoleon', + 'sphinx.ext.viewcode', + 'sphinx_autodoc_typehints', + 'sphinx_copybutton', + 'sphinx_design', + 'sphinxcontrib.autodoc_pydantic', + 'sphinxcontrib.bibtex', + 'nbsphinx', + 'myst_parser', ] try: diff --git a/pyproject.toml b/pyproject.toml index f203c190..9e43294f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -30,12 +30,12 @@ requires-python = ">=3.11" # 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", "essreduce>=25.07.0", "graphviz", - "numpy", - "plopp>=25.03.0", - "pythreejs", + "numpy>=1.25", + "plopp>=25.07.0", + "pythreejs>=2.4.1", "sciline>=25.04.1", "scipp>=25.05.1", "scippneutron>=25.02.0", @@ -47,9 +47,10 @@ dynamic = ["version"] [project.optional-dependencies] test = [ - "pandas", - "pooch", - "pytest", + "pandas>=2.1.2", + "pooch>=1.5", + "pytest>=7.0", + "ipywidgets>=8.1.7" ] [project.urls] diff --git a/requirements/base.in b/requirements/base.in index 6feed7c3..807fbc2f 100644 --- a/requirements/base.in +++ b/requirements/base.in @@ -2,12 +2,12 @@ # 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 essreduce>=25.07.0 graphviz -numpy -plopp>=25.03.0 -pythreejs +numpy>=1.25 +plopp>=25.07.0 +pythreejs>=2.4.1 sciline>=25.04.1 scipp>=25.05.1 scippneutron>=25.02.0 diff --git a/requirements/base.txt b/requirements/base.txt index 442c1652..1d42ea4b 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -1,4 +1,4 @@ -# SHA1:8f044677d4db96fd48743befd036bb0b7410e72f +# SHA1:14c6bcb4e6d6485d81209545674ad66d2bd9f82f # # This file was generated by pip-compile-multi. # To update, run: diff --git a/requirements/basetest.in b/requirements/basetest.in index 3ddc0c92..7b5c6f56 100644 --- a/requirements/basetest.in +++ b/requirements/basetest.in @@ -7,6 +7,7 @@ # will not be touched by ``make_base.py`` # --- END OF CUSTOM SECTION --- # The following was generated by 'tox -e deps', DO NOT EDIT MANUALLY! -pandas -pooch -pytest +pandas>=2.1.2 +pooch>=1.5 +pytest>=7.0 +ipywidgets>=8.1.7 diff --git a/requirements/basetest.txt b/requirements/basetest.txt index db915f1b..89f6bc73 100644 --- a/requirements/basetest.txt +++ b/requirements/basetest.txt @@ -1,18 +1,38 @@ -# SHA1:c4f3e9aaa3abd10fcdf497bea14415857f62cc89 +# SHA1:7f34665dae8380142bc93ee5745242a803a4e60c # # This file was generated by pip-compile-multi. # To update, run: # # requirements upgrade # +asttokens==3.0.0 + # via stack-data certifi==2025.8.3 # via requests charset-normalizer==3.4.2 # via requests +comm==0.2.3 + # via ipywidgets +decorator==5.2.1 + # via ipython +executing==2.2.0 + # via stack-data idna==3.10 # via requests iniconfig==2.1.0 # via pytest +ipython==9.4.0 + # via ipywidgets +ipython-pygments-lexers==1.1.1 + # via ipython +ipywidgets==8.1.7 + # via -r basetest.in +jedi==0.19.2 + # via ipython +jupyterlab-widgets==3.0.15 + # via ipywidgets +matplotlib-inline==0.1.7 + # via ipython numpy==2.3.2 # via pandas packaging==25.0 @@ -21,14 +41,27 @@ packaging==25.0 # pytest pandas==2.3.1 # via -r basetest.in +parso==0.8.4 + # via jedi +pexpect==4.9.0 + # via ipython platformdirs==4.3.8 # via pooch pluggy==1.6.0 # via pytest pooch==1.8.2 # via -r basetest.in +prompt-toolkit==3.0.51 + # via ipython +ptyprocess==0.7.0 + # via pexpect +pure-eval==0.2.3 + # via stack-data pygments==2.19.2 - # via pytest + # via + # ipython + # ipython-pygments-lexers + # pytest pytest==8.4.1 # via -r basetest.in python-dateutil==2.9.0.post0 @@ -39,7 +72,20 @@ requests==2.32.4 # via pooch six==1.17.0 # via python-dateutil +stack-data==0.6.3 + # via ipython +traitlets==5.14.3 + # via + # ipython + # ipywidgets + # matplotlib-inline +typing-extensions==4.14.1 + # via ipython tzdata==2025.2 # via pandas urllib3==2.5.0 # via requests +wcwidth==0.2.13 + # via prompt-toolkit +widgetsnbextension==4.0.14 + # via ipywidgets diff --git a/requirements/nightly.in b/requirements/nightly.in index 4219857b..27cced00 100644 --- a/requirements/nightly.in +++ b/requirements/nightly.in @@ -1,13 +1,14 @@ # --- END OF CUSTOM SECTION --- # The following was generated by 'tox -e deps', DO NOT EDIT MANUALLY! -dask +dask>=2022.1.0 graphviz -numpy -pythreejs -pandas -pooch -pytest +numpy>=1.25 +pythreejs>=2.4.1 +pandas>=2.1.2 +pooch>=1.5 +pytest>=7.0 +ipywidgets>=8.1.7 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 0d3d091c..0a1ea3ee 100644 --- a/requirements/nightly.txt +++ b/requirements/nightly.txt @@ -1,4 +1,4 @@ -# SHA1:366263fa92dc0eb9f81d46f056e0c80a931f671e +# SHA1:10d896bcca3d382aa5b0e4215a8175e9d33097fb # # This file was generated by pip-compile-multi. # To update, run: @@ -66,6 +66,7 @@ ipython-pygments-lexers==1.1.1 # via ipython ipywidgets==8.1.7 # via + # -r nightly.in # ipydatawidgets # pythreejs jedi==0.19.2