-
Notifications
You must be signed in to change notification settings - Fork 3
Drop Python 3.11, declare and test up to Python 3.14 #686
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from 5 commits
eb63dd6
9391970
6efac1a
fbe0ae9
88e760f
c5ed65b
05dc8d3
7b00d3f
8ed9d09
0e75282
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -123,15 +123,15 @@ jobs: | |
| fetch-tags: true | ||
| - uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0 | ||
| with: | ||
| version: "0.7.21" | ||
| python-version: "3.11" | ||
| version: "0.12.0" | ||
| python-version: "3.12" | ||
| cache-suffix: ${{ matrix.package }}-lower-bound | ||
| - name: Test with lowest direct dependencies | ||
| working-directory: packages/${{ matrix.package }} | ||
| run: uv run --extra=test --resolution=lowest-direct pytest | ||
|
|
||
| latest-dependencies: | ||
| name: Latest dependencies ${{ matrix.package }} | ||
| name: Latest dependencies ${{ matrix.package }} py${{ matrix.python }} | ||
| strategy: | ||
| fail-fast: false | ||
| matrix: | ||
|
|
@@ -143,23 +143,54 @@ jobs: | |
| - essreflectometry | ||
| - esssans | ||
| - essspectroscopy | ||
| python: ["3.12", "3.13", "3.14"] | ||
| runs-on: ubuntu-24.04 | ||
| steps: | ||
| - uses: actions/checkout@v6 | ||
| with: | ||
| fetch-tags: true | ||
| - uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0 | ||
| with: | ||
| version: "0.7.21" | ||
| python-version: "3.11" | ||
| cache-suffix: ${{ matrix.package }}-latest | ||
| version: "0.12.0" | ||
| python-version: ${{ matrix.python }} | ||
| cache-suffix: ${{ matrix.package }}-latest-py${{ matrix.python }} | ||
| - name: Test with latest dependencies | ||
| working-directory: packages/${{ matrix.package }} | ||
| run: uv run --extra=test --resolution=highest pytest | ||
|
|
||
| free-threaded: | ||
| name: Free-threaded ${{ matrix.package }} | ||
| strategy: | ||
| fail-fast: false | ||
| matrix: | ||
| # Excluded packages that do not work on free-threaded Python yet: | ||
| # - essnmx: importing bitshuffle re-enables the GIL, which | ||
| # filterwarnings = error escalates to a collection error. | ||
| # - essdiffraction: numba-jitted code aborts the interpreter when run | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Will #707 fix this?
Member
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. actually yes, it should |
||
| # from dask worker threads. | ||
| package: | ||
| - essreduce | ||
| - essimaging | ||
| - essreflectometry | ||
| - esssans | ||
| - essspectroscopy | ||
| runs-on: ubuntu-24.04 | ||
| steps: | ||
| - uses: actions/checkout@v6 | ||
| with: | ||
| fetch-tags: true | ||
| - uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0 | ||
| with: | ||
| version: "0.12.0" | ||
| python-version: "3.14t" | ||
| cache-suffix: ${{ matrix.package }}-free-threaded | ||
| - name: Test on free-threaded Python | ||
| working-directory: packages/${{ matrix.package }} | ||
| run: uv run --extra=test pytest | ||
|
|
||
| report-test-failure: | ||
| name: Report nightly failures | ||
| needs: [ test, publish, lower-bound, latest-dependencies ] | ||
| needs: [ test, publish, lower-bound, latest-dependencies, free-threaded ] | ||
| runs-on: ubuntu-slim | ||
| if: failure() && github.event_name == 'schedule' | ||
| env: | ||
|
|
@@ -184,7 +215,7 @@ jobs: | |
|
|
||
| report-test-success: | ||
| name: Report nightly success | ||
| needs: [ test, publish, lower-bound, latest-dependencies ] | ||
| needs: [ test, publish, lower-bound, latest-dependencies, free-threaded ] | ||
| runs-on: ubuntu-slim | ||
| if: github.ref == 'refs/heads/main' | ||
| env: | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1 +1 @@ | ||
| 3.11 | ||
| 3.12 |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -2,8 +2,8 @@ | |
| _commit: 024a41b | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Maybe I missed something but we do we still have copier answers? I thought we were not using copier in the monorepo?
Member
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. We still have copier.yml lying around, I am happy to remove copier.yml files here if we have fully decided on not using copier in the monorepo. I am not sure if we had a final decision here? cc @YooSunYoung
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. We kept it at the beginning in case we want to use copier template to, e.g. update python version using copier template,,, but if I'm the only one who's willing to maintain the copier template we should just remove them... I don't want to be too important. In Short: Let's remove them...?
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Yes, but in a separate PR, please.
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @YooSunYoung I'm not saying the copier template is not important. It's still used in plenty of other repositories. I just thought that they no longer serve a purpose here because I don't think it can work in subdirectories of a repo (e.g. for the docs config), and all the CI setup and dependencies is now managed centrally at the root of the monorepo. |
||
| _src_path: gh:scipp/copier_template | ||
| description: Diffraction data reduction for the European Spallation Source | ||
| max_python: '3.13' | ||
| min_python: '3.11' | ||
| max_python: '3.14' | ||
| min_python: '3.12' | ||
| namespace_package: ess | ||
| nightly_deps: scipp,scippnexus,sciline,plopp,scippneutron,essreduce,tof | ||
| orgname: scipp | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -40,7 +40,7 @@ Alternatively, if you want a different workflow, take a look at ``tox.ini`` or ` | |
| Run the tests using | ||
|
|
||
| ```sh | ||
| tox -e py311 | ||
| tox -e py312 | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This documentation seems out of date? We no longer use |
||
| ``` | ||
|
|
||
| (or just `tox` if you want to run all environments). | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -17,23 +17,23 @@ classifiers = [ | |
| "Operating System :: OS Independent", | ||
| "Programming Language :: Python :: 3", | ||
| "Programming Language :: Python :: 3 :: Only", | ||
| "Programming Language :: Python :: 3.11", | ||
| "Programming Language :: Python :: 3.12", | ||
| "Programming Language :: Python :: 3.13", | ||
| "Programming Language :: Python :: 3.14", | ||
| "Topic :: Scientific/Engineering", | ||
| "Typing :: Typed", | ||
| ] | ||
| # The min python version should be updated in the root pixi.toml file | ||
| # pre-commit will automatically update the following pin | ||
| requires-python = ">=3.11" | ||
| requires-python = ">=3.12" | ||
|
|
||
| dynamic = ["version"] | ||
|
|
||
| dependencies = [ | ||
| "dask>=2022.1.0", | ||
| "graphviz>=0.20", | ||
| "sciline>=25.11.0", | ||
| "scipp>=26.3.1", | ||
| "scipp>=26.7.0", | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. What was the reason for the scipp version bump?
Member
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I don't actually remember, I think there was some local failure with py314 scipp build but I can't reproduce the failure anymore. I'll revert. |
||
| "scippneutron>=26.6.0", | ||
| "scippnexus>=25.06.0", | ||
| "scipy>=1.14", | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can you suppress that warning specifically in the project? I think that is less likely to cause issues down the line than silently not testing the package.