Skip to content
Merged
Show file tree
Hide file tree
Changes from all 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
8 changes: 4 additions & 4 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: 5c4fd02
_commit: debabf7
_src_path: gh:scipp/copier_template
description: Transform directed acyclic graphs using map-reduce and groupby operations
max_python: '3.13'
min_python: '3.10'
max_python: '3.14'
min_python: '3.12'
namespace_package: ''
nightly_deps: ''
orgname: scipp
prettyname: Cyclebane
projectname: cyclebane
related_projects: Sciline
year: 2025
year: 2026
13 changes: 0 additions & 13 deletions .github/dependabot.yml

This file was deleted.

4 changes: 2 additions & 2 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,13 +15,13 @@ jobs:
min_python: ${{ steps.vars.outputs.min_python }}
min_tox_env: ${{ steps.vars.outputs.min_tox_env }}
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
- name: Get Python version for other CI jobs
id: vars
run: |
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
- uses: actions/setup-python@v6
with:
python-version-file: '.github/workflows/python-version-ci'
- uses: pre-commit/action@v3.0.1
Expand Down
10 changes: 6 additions & 4 deletions .github/workflows/docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -48,12 +48,12 @@ jobs:

steps:
- run: sudo apt install --yes graphviz pandoc
- uses: actions/checkout@v4
- uses: actions/checkout@v6
with:
ref: ${{ inputs.branch == '' && github.ref_name || inputs.branch }}
repository: ${{ github.event.pull_request.head.repo.full_name }}
fetch-depth: 0 # history required so cmake can determine version
- uses: actions/setup-python@v5
- uses: actions/setup-python@v6
with:
python-version-file: '.github/workflows/python-version-ci'
- run: python -m pip install --upgrade pip
Expand All @@ -64,12 +64,14 @@ jobs:
if: ${{ inputs.version == '' }}
- run: tox -e linkcheck
if: ${{ inputs.linkcheck }}
- uses: actions/upload-artifact@v4
- uses: actions/upload-artifact@v7
id: artifact-upload-step
with:
name: docs_html
path: html/
- run: echo "::notice::https://remote-unzip.scipp.deno.net/${{ github.repository }}/artifacts/${{ steps.artifact-upload-step.outputs.artifact-id }}"

- uses: JamesIves/github-pages-deploy-action@v4.7.2
- uses: JamesIves/github-pages-deploy-action@v4
if: ${{ inputs.publish }}
with:
branch: gh-pages
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/nightly_at_main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ jobs:
outputs:
min_python: ${{ steps.vars.outputs.min_python }}
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
- name: Get Python version for other CI jobs
id: vars
run: echo "min_python=$(< .github/workflows/python-version-ci)" >> "$GITHUB_OUTPUT"
Expand Down
37 changes: 37 additions & 0 deletions .github/workflows/nightly_at_main_lower_bound.yml
Original file line number Diff line number Diff line change
@@ -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@v6
- 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@v6
- uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0
with:
python-version: ${{ matrix.python.version }}
- run: uv run --extra=test --resolution=lowest-direct pytest
2 changes: 1 addition & 1 deletion .github/workflows/nightly_at_release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ jobs:
min_python: ${{ steps.vars.outputs.min_python }}
release_tag: ${{ steps.release.outputs.release_tag }}
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
with:
fetch-depth: 0 # history required so we can determine latest release tag
- name: Get last release tag from git
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/python-version-ci
Original file line number Diff line number Diff line change
@@ -1 +1 @@
3.10
3.12
60 changes: 13 additions & 47 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,39 +10,16 @@ defaults:
shell: bash -l {0} # required for conda env

jobs:
build_conda:
name: Conda build
runs-on: 'ubuntu-24.04'

steps:
- uses: actions/checkout@v4
with:
submodules: true
fetch-depth: 0 # history required so setuptools_scm can determine version

- uses: mamba-org/setup-micromamba@v1
with:
environment-name: build-env
create-args: >-
conda-build
boa
- run: conda mambabuild --channel conda-forge --channel scipp --no-anaconda-upload --override-channels --output-folder conda/package conda

- uses: actions/upload-artifact@v4
with:
name: conda-package-noarch
path: conda/package/noarch/*.tar.bz2

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

steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
with:
fetch-depth: 0 # history required so setuptools_scm can determine version

- uses: actions/setup-python@v5
- uses: actions/setup-python@v6
with:
python-version-file: '.github/workflows/python-version-ci'

Expand All @@ -53,42 +30,28 @@ jobs:
run: python -m build

- name: Upload wheels
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v7
with:
name: dist
path: dist

upload_pypi:
name: Deploy PyPI
needs: [build_wheels, build_conda]
needs: [build_wheels]
runs-on: 'ubuntu-24.04'
environment: release
permissions:
id-token: write
if: github.event_name == 'release' && github.event.action == 'published'
steps:
- uses: actions/download-artifact@v4
- uses: pypa/gh-action-pypi-publish@v1.8.14

upload_conda:
name: Deploy Conda
needs: [build_wheels, build_conda]
runs-on: 'ubuntu-24.04'
if: github.event_name == 'release' && github.event.action == 'published'

steps:
- uses: actions/download-artifact@v4
- uses: mamba-org/setup-micromamba@v1
- uses: actions/download-artifact@v8
with:
environment-name: upload-env
# frozen python due to breaking removal of 'imp' in 3.12
create-args: >-
anaconda-client
python=3.11
- run: anaconda --token ${{ secrets.ANACONDATOKEN }} upload --user scipp --label main $(ls conda-package-noarch/*.tar.bz2)
name: dist
path: dist
- uses: pypa/gh-action-pypi-publish@v1.14.0

docs:
needs: [upload_conda, upload_pypi]
needs: [upload_pypi]
uses: ./.github/workflows/docs.yml
with:
publish: ${{ github.event_name == 'release' && github.event.action == 'published' }}
Expand All @@ -101,7 +64,10 @@ jobs:
permissions:
contents: write # This is needed so that the action can upload the asset
steps:
- uses: actions/download-artifact@v4
- uses: actions/download-artifact@v8
with:
name: docs_html
path: docs_html
- name: Zip documentation
run: |
mv docs_html documentation-${{ github.ref_name }}
Expand Down
10 changes: 5 additions & 5 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -45,10 +45,10 @@ jobs:
runs-on: ${{ inputs.os-variant }}

steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
with:
ref: ${{ inputs.checkout_ref }}
- uses: actions/setup-python@v5
- uses: actions/setup-python@v6
with:
python-version: ${{ inputs.python-version }}
- run: python -m pip install --upgrade pip
Expand All @@ -63,16 +63,16 @@ jobs:
ESS_PROTECTED_FILESTORE_PASSWORD: ${{ secrets.ESS_PROTECTED_FILESTORE_PASSWORD }}

steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
with:
ref: ${{ inputs.checkout_ref }}
- uses: actions/setup-python@v5
- uses: actions/setup-python@v6
with:
python-version: ${{ inputs.python-version }}
- run: python -m pip install --upgrade pip
- run: python -m pip install -r ${{ inputs.pip-recipe }}
- run: tox -e ${{ inputs.tox-env }}
- uses: actions/upload-artifact@v4
- uses: actions/upload-artifact@v7
if: ${{ inputs.coverage-report }}
with:
name: CoverageReport
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/unpinned.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ jobs:
min_python: ${{ steps.vars.outputs.min_python }}
release_tag: ${{ steps.release.outputs.release_tag }}
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
with:
fetch-depth: 0 # history required so we can determine latest release tag
- name: Get last release tag from git
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/weekly_windows_macos.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ jobs:
min_python: ${{ steps.vars.outputs.min_python }}
min_tox_env: ${{ steps.vars.outputs.min_tox_env }}
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
- name: Get Python version for other CI jobs
id: vars
run: |
Expand Down
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ venv
.venv

# Caches
*.DS_Store
.clangd/
*.ipynb_checkpoints
__pycache__/
Expand Down Expand Up @@ -45,3 +46,4 @@ docs/generated/
*.zip
*.sqw
*.nxspe
*.mtz
13 changes: 7 additions & 6 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -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
Expand All @@ -10,32 +10,33 @@ repos:
- id: check-merge-conflict
- id: check-toml
- id: check-yaml
exclude: conda/meta.yaml
- id: detect-private-key
- id: trailing-whitespace
args: [ --markdown-linebreak-ext=md ]
exclude: '\.svg'
- repo: https://github.com/kynan/nbstripout
rev: 0.7.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.8.0
rev: v0.14.6
hooks:
- id: ruff
args: [ --fix ]
types_or: [ python, pyi, jupyter ]
- id: ruff-format
types_or: [ python, pyi ]
- repo: https://github.com/codespell-project/codespell
rev: v2.3.0
rev: v2.4.1
hooks:
- id: codespell
additional_dependencies:
- tomli
exclude_types:
- svg
- repo: https://github.com/pre-commit/pygrep-hooks
rev: v1.10.0
hooks:
Expand All @@ -47,7 +48,7 @@ repos:
- id: rst-inline-touching-normal
- id: text-unicode-replacement-char
- repo: https://github.com/rhysd/actionlint
rev: v1.7.3
rev: v1.7.9
hooks:
- id: actionlint
# Disable because of false-positive SC2046
Expand Down
2 changes: 1 addition & 1 deletion .python-version
Original file line number Diff line number Diff line change
@@ -1 +1 @@
3.10
3.12
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) 2025, Scipp contributors (https://github.com/scipp)
Copyright (c) 2026, Scipp contributors (https://github.com/scipp)
All rights reserved.

Redistribution and use in source and binary forms, with or without
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.1-4baaaa.svg)](CODE_OF_CONDUCT.md)
[![PyPI badge](http://img.shields.io/pypi/v/cyclebane.svg)](https://pypi.python.org/pypi/cyclebane)
[![Anaconda-Server Badge](https://anaconda.org/scipp/cyclebane/badges/version.svg)](https://anaconda.org/scipp/cyclebane)
[![Anaconda-Server Badge](https://anaconda.org/conda-forge/cyclebane/badges/version.svg)](https://anaconda.org/conda-forge/cyclebane)
[![License: BSD 3-Clause](https://img.shields.io/badge/License-BSD%203--Clause-blue.svg)](LICENSE)

# Cyclebane
Expand Down
Loading
Loading