Skip to content
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

Bump to support python 3.13 and use scipp from nightly index. #120

Open
wants to merge 3 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions .copier-answers.yml
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
# Changes here will be overwritten by Copier; NEVER EDIT MANUALLY
_commit: 75b9a8f
_commit: 4180f34
_src_path: gh:scipp/copier_template
description: Diffraction data reduction for the European Spallation Source
max_python: '3.12'
max_python: '3.13'
min_python: '3.10'
namespace_package: ess
nightly_deps: scipp,scippnexus,sciline,plopp,scippneutron,essreduce
orgname: scipp
prettyname: ESSdiffraction
projectname: essdiffraction
related_projects: Scipp,ScippNexus,ScippNeutron,Sciline,Plopp,ESSreduce
year: 2024
year: 2025
12 changes: 6 additions & 6 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ on:
jobs:
formatting:
name: Formatting and static analysis
runs-on: 'ubuntu-22.04'
runs-on: 'ubuntu-24.04'
outputs:
min_python: ${{ steps.vars.outputs.min_python }}
min_tox_env: ${{ steps.vars.outputs.min_tox_env }}
Expand All @@ -19,15 +19,15 @@ jobs:
- name: Get Python version for other CI jobs
id: vars
run: |
echo "min_python=$(cat .github/workflows/python-version-ci)" >> $GITHUB_OUTPUT
echo "min_tox_env=py$(cat .github/workflows/python-version-ci | sed 's/\.//g')" >> $GITHUB_OUTPUT
echo "min_python=$(< .github/workflows/python-version-ci)" >> "$GITHUB_OUTPUT"
echo "min_tox_env=py$(sed 's/\.//g' < .github/workflows/python-version-ci)" >> "$GITHUB_OUTPUT"
- uses: actions/setup-python@v5
with:
python-version-file: '.github/workflows/python-version-ci'
- uses: pre-commit/[email protected]
with:
extra_args: --all-files
- uses: pre-commit-ci/lite-action@v1.0.3
- uses: pre-commit-ci/lite-action@v1.1.0
if: always()
with:
msg: Apply automatic formatting
Expand All @@ -37,7 +37,7 @@ jobs:
needs: formatting
strategy:
matrix:
os: ['ubuntu-22.04']
os: ['ubuntu-24.04']
python:
- version: '${{needs.formatting.outputs.min_python}}'
tox-env: '${{needs.formatting.outputs.min_tox_env}}'
Expand All @@ -53,6 +53,6 @@ jobs:
uses: ./.github/workflows/docs.yml
with:
publish: false
linkcheck: ${{ contains(matrix.variant.os, 'ubuntu') && github.ref == 'refs/heads/main' }}
linkcheck: ${{ github.ref == 'refs/heads/main' }}
branch: ${{ github.head_ref == '' && github.ref_name || github.head_ref }}
secrets: inherit
6 changes: 3 additions & 3 deletions .github/workflows/docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ env:
jobs:
docs:
name: Build documentation
runs-on: 'ubuntu-22.04'
runs-on: 'ubuntu-24.04'
env:
ESS_PROTECTED_FILESTORE_USERNAME: ${{ secrets.ESS_PROTECTED_FILESTORE_USERNAME }}
ESS_PROTECTED_FILESTORE_PASSWORD: ${{ secrets.ESS_PROTECTED_FILESTORE_PASSWORD }}
Expand All @@ -58,7 +58,7 @@ jobs:
python-version-file: '.github/workflows/python-version-ci'
- run: python -m pip install --upgrade pip
- run: python -m pip install -r requirements/ci.txt
- run: tox -e releasedocs -- ${VERSION}
- run: tox -e releasedocs -- "${VERSION}"
if: ${{ inputs.version != '' }}
- run: tox -e docs
if: ${{ inputs.version == '' }}
Expand All @@ -69,7 +69,7 @@ jobs:
name: docs_html
path: html/

- uses: JamesIves/github-pages-deploy-action@v4.6.4
- uses: JamesIves/github-pages-deploy-action@v4.7.2
if: ${{ inputs.publish }}
with:
branch: gh-pages
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/nightly_at_main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,21 +8,21 @@ on:
jobs:
setup:
name: Setup variables
runs-on: 'ubuntu-22.04'
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=$(cat .github/workflows/python-version-ci)" >> $GITHUB_OUTPUT
run: echo "min_python=$(< .github/workflows/python-version-ci)" >> "$GITHUB_OUTPUT"

tests:
name: Tests
needs: setup
strategy:
matrix:
os: ['ubuntu-22.04']
os: ['ubuntu-24.04']
python:
- version: '${{needs.setup.outputs.min_python}}'
tox-env: 'nightly'
Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/nightly_at_release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ on:
jobs:
setup:
name: Setup variables
runs-on: 'ubuntu-22.04'
runs-on: 'ubuntu-24.04'
outputs:
min_python: ${{ steps.vars.outputs.min_python }}
release_tag: ${{ steps.release.outputs.release_tag }}
Expand All @@ -18,17 +18,17 @@ jobs:
fetch-depth: 0 # history required so we can determine latest release tag
- name: Get last release tag from git
id: release
run: echo "release_tag=$(git describe --tags --abbrev=0 --match '[0-9]*.[0-9]*.[0-9]*')" >> $GITHUB_OUTPUT
run: echo "release_tag=$(git describe --tags --abbrev=0 --match '[0-9]*.[0-9]*.[0-9]*')" >> "$GITHUB_OUTPUT"
- name: Get Python version for other CI jobs
id: vars
run: echo "min_python=$(cat .github/workflows/python-version-ci)" >> $GITHUB_OUTPUT
run: echo "min_python=$(cat .github/workflows/python-version-ci)" >> "$GITHUB_OUTPUT"

tests:
name: Tests
needs: setup
strategy:
matrix:
os: ['ubuntu-22.04']
os: ['ubuntu-24.04']
python:
- version: '${{needs.setup.outputs.min_python}}'
tox-env: 'nightly'
Expand Down
10 changes: 5 additions & 5 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ defaults:
jobs:
build_conda:
name: Conda build
runs-on: 'ubuntu-22.04'
runs-on: 'ubuntu-24.04'

steps:
- uses: actions/checkout@v4
Expand All @@ -35,7 +35,7 @@ jobs:

build_wheels:
name: Wheels
runs-on: 'ubuntu-22.04'
runs-on: 'ubuntu-24.04'

steps:
- uses: actions/checkout@v4
Expand All @@ -61,7 +61,7 @@ jobs:
upload_pypi:
name: Deploy PyPI
needs: [build_wheels, build_conda]
runs-on: 'ubuntu-22.04'
runs-on: 'ubuntu-24.04'
environment: release
permissions:
id-token: write
Expand All @@ -73,7 +73,7 @@ jobs:
upload_conda:
name: Deploy Conda
needs: [build_wheels, build_conda]
runs-on: 'ubuntu-22.04'
runs-on: 'ubuntu-24.04'
if: github.event_name == 'release' && github.event.action == 'published'

steps:
Expand All @@ -97,7 +97,7 @@ jobs:
assets:
name: Upload docs
needs: docs
runs-on: 'ubuntu-22.04'
runs-on: 'ubuntu-24.04'
permissions:
contents: write # This is needed so that the action can upload the asset
steps:
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ on:
workflow_dispatch:
inputs:
os-variant:
default: 'ubuntu-22.04'
default: 'ubuntu-24.04'
type: string
python-version:
type: string
Expand All @@ -23,7 +23,7 @@ on:
workflow_call:
inputs:
os-variant:
default: 'ubuntu-22.04'
default: 'ubuntu-24.04'
type: string
python-version:
type: string
Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/unpinned.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ on:
jobs:
setup:
name: Setup variables
runs-on: 'ubuntu-22.04'
runs-on: 'ubuntu-24.04'
outputs:
min_python: ${{ steps.vars.outputs.min_python }}
release_tag: ${{ steps.release.outputs.release_tag }}
Expand All @@ -18,17 +18,17 @@ jobs:
fetch-depth: 0 # history required so we can determine latest release tag
- name: Get last release tag from git
id: release
run: echo "release_tag=$(git describe --tags --abbrev=0 --match '[0-9]*.[0-9]*.[0-9]*')" >> $GITHUB_OUTPUT
run: echo "release_tag=$(git describe --tags --abbrev=0 --match '[0-9]*.[0-9]*.[0-9]*')" >> "$GITHUB_OUTPUT"
- name: Get Python version for other CI jobs
id: vars
run: echo "min_python=$(cat .github/workflows/python-version-ci)" >> $GITHUB_OUTPUT
run: echo "min_python=$(cat .github/workflows/python-version-ci)" >> "$GITHUB_OUTPUT"

tests:
name: Tests
needs: setup
strategy:
matrix:
os: ['ubuntu-22.04']
os: ['ubuntu-24.04']
python:
- version: '${{needs.setup.outputs.min_python}}'
tox-env: 'unpinned'
Expand Down
42 changes: 42 additions & 0 deletions .github/workflows/weekly_windows_macos.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
name: Windows and MacOS weekly tests

on:
workflow_dispatch:
schedule:
- cron: '0 2 * * 1'

jobs:
pytox:
name: Python and Tox env
runs-on: 'ubuntu-24.04'
outputs:
min_python: ${{ steps.vars.outputs.min_python }}
min_tox_env: ${{ steps.vars.outputs.min_tox_env }}
steps:
- uses: actions/checkout@v4
- name: Get Python version for other CI jobs
id: vars
run: |
echo "min_python=$(cat .github/workflows/python-version-ci)" >> $GITHUB_OUTPUT
echo "min_tox_env=py$(cat .github/workflows/python-version-ci | sed 's/\.//g')" >> $GITHUB_OUTPUT
tests:
name: Tests
needs: pytox
strategy:
matrix:
os: ['macos-latest', 'windows-latest']
python:
- version: '${{needs.pytox.outputs.min_python}}'
tox-env: '${{needs.pytox.outputs.min_tox_env}}'
uses: ./.github/workflows/test.yml
with:
os-variant: ${{ matrix.os }}
python-version: ${{ matrix.python.version }}
tox-env: ${{ matrix.python.tox-env }}

docs:
needs: tests
uses: ./.github/workflows/docs.yml
with:
publish: false
branch: ${{ github.head_ref == '' && github.ref_name || github.head_ref }}
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -42,3 +42,5 @@ docs/generated/
*.rcif
*.ort
*.zip
*.sqw
*.nxspe
12 changes: 10 additions & 2 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.6.0
rev: v5.0.0
hooks:
- id: check-added-large-files
- id: check-case-conflict
- id: check-illegal-windows-names
- id: check-json
exclude: asv.conf.json
- id: check-merge-conflict
Expand All @@ -21,7 +23,7 @@ repos:
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.6.2
rev: v0.8.0
hooks:
- id: ruff
args: [ --fix ]
Expand All @@ -44,3 +46,9 @@ repos:
- id: rst-directive-colons
- id: rst-inline-touching-normal
- id: text-unicode-replacement-char
- repo: https://github.com/rhysd/actionlint
rev: v1.7.3
hooks:
- id: actionlint
# Disable because of false-positive SC2046
args: ["-shellcheck="]
2 changes: 1 addition & 1 deletion LICENSE
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
BSD 3-Clause License

Copyright (c) 2024, Scipp contributors (https://github.com/scipp)
Copyright (c) 2025, Scipp contributors (https://github.com/scipp)
All rights reserved.

Redistribution and use in source and binary forms, with or without
Expand Down
8 changes: 4 additions & 4 deletions docs/conf.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# SPDX-License-Identifier: BSD-3-Clause
# Copyright (c) 2024 Scipp contributors (https://github.com/scipp)
# Copyright (c) 2025 Scipp contributors (https://github.com/scipp)

import doctest
import os
Expand All @@ -14,9 +14,9 @@
logger = logging.getLogger(__name__)

# General information about the project.
project = "ESSdiffraction"
copyright = "2024 Scipp contributors"
author = "Scipp contributors"
project = 'ESSdiffraction'
copyright = '2025 Scipp contributors'
author = 'Scipp contributors'

html_show_sourcelink = True

Expand Down
4 changes: 2 additions & 2 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ classifiers = [
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Topic :: Scientific/Engineering",
"Typing :: Typed",
]
Expand Down Expand Up @@ -90,13 +91,12 @@ ignore = [
# https://docs.astral.sh/ruff/formatter/#conflicting-lint-rules
"COM812", "COM819", "D206", "D300", "E111", "E114", "E117", "ISC001", "ISC002", "Q000", "Q001", "Q002", "Q003", "W191",
]
fixable = ["B010", "I001", "PT001"]
fixable = ["B010", "I001", "PT001", "RUF022"]
isort.known-first-party = ["ess.diffraction", "ess.dream", "ess.powder"]
pydocstyle.convention = "numpy"

[tool.ruff.lint.per-file-ignores]
# those files have an increased risk of relying on import order
"__init__.py" = ["I"]
"tests/*" = [
"S101", # asserts are fine in tests
"B018", # 'useless expressions' are ok because some tests just check for exceptions
Expand Down
Loading
Loading