Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
41 commits
Select commit Hold shift + click to select a range
0b141ad
ENH: Add GitHub issue templates for bug reports and feature requests
hjmjohnson Sep 15, 2026
fd9ff20
ENH: Transition build system from shell scripts to consolidated Pytho…
CavRiley Mar 17, 2026
1585809
ENH: Add platform-specific Python build scripts for Linux, macOS, and…
CavRiley Mar 17, 2026
d6ad972
ENH: Add tarball creation and ITK build cache management
CavRiley Mar 17, 2026
ec93145
ENH: Remove legacy shell scripts, add pre-commit hooks, drop Python 3.9
CavRiley Mar 17, 2026
a2140a6
DOC: Update online docs and infrastructure for docs generation
CavRiley Mar 18, 2026
5119cce
ENH: Add GitHub Action to generate documentation artifacts
CavRiley Mar 18, 2026
08d720e
DOC: Add CONTRIBUTING.md file
CavRiley Mar 28, 2026
ece190d
ENH: Add scripts to publish wheels and cached builds
CavRiley Mar 29, 2026
63f2a5f
ENH: Configure commitizen for ITK commit message convention
hjmjohnson Apr 3, 2026
226e3f1
ENH: Dynamically update ITK dependency pins in remote module builds
hjmjohnson Apr 3, 2026
ea82e82
ENH: Preserve module pyproject.toml when rewriting ITK deps
hjmjohnson Apr 3, 2026
2bcec69
DOC: Add Strategy 3 migration plan to _update_module_itk_deps
hjmjohnson Apr 3, 2026
251074c
ENH: Branch between Strategy 3 and Strategy 1 for ITK dep resolution
hjmjohnson Apr 3, 2026
13d819a
ENH: Restrict Strategy 1 dep rewrite to ITK base sub-packages only
hjmjohnson Apr 3, 2026
8161c7c
BUG: Pin ITK dep floor to vMAJOR.MINOR of the ITK version being built
hjmjohnson Apr 3, 2026
eb0eb38
BUG: Use fixed >= 5.4 floor for ITK deps across all versions
hjmjohnson Apr 3, 2026
d91c41b
BUG: Pin ITK dep floor to MAJOR.MINOR of the version being built
hjmjohnson Apr 3, 2026
6514564
ENH: Add scripts to build all ITK + remote module wheels from latest …
hjmjohnson Apr 3, 2026
9610278
ENH: Allow specifying ITK branch, tag, or hash for build-all scripts
hjmjohnson Apr 3, 2026
a5c5234
STYLE: Move build-all-latest-wheels scripts to Utilities/scripts
hjmjohnson Apr 3, 2026
48eac36
STYLE: Move publish scripts to Utilities/scripts
CavRiley Jun 18, 2026
d1b872b
STYLE: Apply pre-commit hook fixes across the repository
CavRiley Jun 25, 2026
571bf5a
BUG: Delocate all macOS arm64 wheels and tag them for the deployment …
hjmjohnson Sep 15, 2026
f48a45b
PERF: Restore Pool as the default ITK threader in the Python build
hjmjohnson Sep 15, 2026
17c27a5
BUG: Refuse to upload linux_* wheels to PyPI
hjmjohnson Sep 15, 2026
b4d6553
DOC: Link the ITK Python quick start guide from the docs landing page
hjmjohnson Sep 15, 2026
e5d5256
BUG: Fail the build step when a wheel build or delocate fails
hjmjohnson Sep 15, 2026
bb13219
COMP: Build only Python 3.11+ and Apple Silicon wheels for ITK 6
hjmjohnson Sep 15, 2026
4e711ae
BUG: Skip delocate for macOS wheels without compiled binaries
hjmjohnson Sep 16, 2026
13760fc
BUG: Mount /work from the host for aarch64 container builds
hjmjohnson Sep 16, 2026
a14ac7f
Revert "BUG: Mount /work from the host for aarch64 container builds"
hjmjohnson Sep 16, 2026
9099c9c
BUG: Write the ITK build cache inside the mounted build tree
hjmjohnson Sep 16, 2026
be34856
ENH: Remove the uncompressed archive after building the build cache
hjmjohnson Sep 16, 2026
0fb9892
BUG: Use raw strings for the Windows archive exclude patterns
hjmjohnson Sep 16, 2026
3b5ef2f
BUG: Rewrite the itk metapackage pin for remote module wheels
hjmjohnson Sep 16, 2026
613223d
BUG: Derive the ITK dependency floor from the numeric version only
hjmjohnson Sep 16, 2026
562dace
BUG: Bound the ITK dependency pin and repair the cleanup globs
hjmjohnson Sep 16, 2026
c1526bb
DOC: Point the cache scripts at the branch that carries them
hjmjohnson Sep 16, 2026
eb381e3
STYLE: Clear the review findings that were plainly correct
hjmjohnson Sep 16, 2026
96ca5c8
STYLE: Drop the shell copy of the build-all-wheels driver
hjmjohnson Sep 16, 2026
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
2 changes: 2 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# SCM syntax highlighting & preventing 3-way merges
pixi.lock merge=binary linguist-language=YAML linguist-generated=true
37 changes: 37 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
---
name: Bug report
about: Something is broken in the build or packaging pipeline
title: "BUG: "
labels: bug
assignees: ""
---

## Environment

- **OS / Platform**: <!-- e.g. Ubuntu 22.04 x86_64, macOS 14 arm64, Windows Server 2022 -->
- **Python version**: <!-- e.g. 3.11.9 -->
- **ITK version / branch**: <!-- e.g. v5.4.0, or commit hash -->
- **Script / entry point used**: <!-- e.g. scripts/dockcross-manylinux-download-cache-and-build-module-wheels.sh -->

## Steps to Reproduce


## Expected Behavior

<!-- What should happen. -->

## Actual Behavior

<!-- What actually happens. Paste relevant log output below. -->

<details>
<summary>Log output</summary>

```
```

</details>

## Additional Context

<!-- ITKPythonBuilds tag, Docker image tag, CMake options, etc. -->
8 changes: 8 additions & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
blank_issues_enabled: true
contact_links:
- name: ITK Discourse (questions & support)
url: https://discourse.itk.org
about: For build questions or general ITK support, please use the ITK Discourse forum.
- name: ITKPythonPackage documentation
url: https://itkpythonpackage.readthedocs.io
about: Check the docs before filing an issue.
23 changes: 23 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
---
name: Feature request
about: Suggest a new capability or improvement to the build/packaging pipeline
title: "ENH: "
labels: enhancement
assignees: ""
---

## Problem / Motivation

<!-- What limitation or pain point does this address? -->

## Proposed Solution

<!-- Describe what you'd like to see added or changed. -->

## Alternatives Considered

<!-- Any other approaches you've thought about? -->

## Additional Context

<!-- Platform relevance, ITK module context, links, etc. -->
29 changes: 29 additions & 0 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
## Summary

<!-- One or two sentences describing what this PR does and why. -->

## Type of Change

- [ ] Bug fix
- [ ] New feature / enhancement
- [ ] Refactor / cleanup
- [ ] Docs / CI only

## Checklist

- [ ] Pre-commit hooks pass locally (`pre-commit run --all-files`)
- [ ] Tested wheel build on affected platform(s) (Linux / macOS / Windows)
- [ ] Docs updated if behavior changed (`docs/`)
- [ ] Commit messages use ITK prefixes (`BUG:`, `COMP:`, `DOC:`, `ENH:`, `PERF:`, `STYLE:`)

## Platform(s) Tested

<!-- Check all that apply, or note "untested" where applicable. -->
- [ ] Linux x86_64 (manylinux)
- [ ] Linux aarch64 (manylinux)
- [ ] macOS arm64
- [ ] Windows x86_64

## Related Issues

<!-- Closes #... -->
31 changes: 31 additions & 0 deletions .github/workflows/docs.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
name: docs

on:
pull_request:
paths:
- "docs/**"
- ".readthedocs.yml"
push:
branches: [main]
paths:
- "docs/**"
- ".readthedocs.yml"

jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: "3.11"
- name: Install dependencies
run: pip install -r docs/requirements-docs.txt
- name: Build docs
run: sphinx-build -W --keep-going -b html docs docs/_build/html
- uses: actions/upload-artifact@v4
if: always()
with:
name: docs-html
path: docs/_build/html
retention-days: 7
16 changes: 16 additions & 0 deletions .github/workflows/pre-commit.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
name: pre-commit

on:
pull_request:
push:
branches: [main]

jobs:
pre-commit:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: "3.11"
- uses: pre-commit/action@v3.0.1
8 changes: 7 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,6 @@ lib
lib64
MANIFEST
oneTBB-prefix/
pyproject.toml

# Installer logs
pip-log.txt
Expand Down Expand Up @@ -73,3 +72,10 @@ docs/_build
# IDE junk
.idea/*
*.swp
/itkVersion.py
# PyPI credentials
.pypirc

# pixi environments
.pixi/*
!.pixi/config.toml
69 changes: 69 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,73 @@
# Pre-commit configuration for ITKPythonPackage
# Run `pre-commit install` to install git hooks locally
# Run `pre-commit run --all-files` to check all files
# Run `pre-commit autoupdate` to update hook versions

# Exclude generated/vendored directories from all hooks
exclude: ^(\.pixi|build|pixi.lock|docs)/

repos:
# General file hygiene
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v5.0.0
hooks:
- id: trailing-whitespace
stages: [pre-commit]
- id: end-of-file-fixer
stages: [pre-commit]
- id: check-yaml
stages: [pre-commit]
- id: check-toml
stages: [pre-commit]
- id: check-merge-conflict
stages: [pre-commit]
- id: check-added-large-files
args: [--maxkb=500]
stages: [pre-commit]
# Enforce LF line endings everywhere except Windows PowerShell scripts
- id: mixed-line-ending
args: [--fix=lf]
exclude: \.ps1$
stages: [pre-commit]

# Python: formatting
- repo: https://github.com/psf/black
rev: 24.10.0
hooks:
- id: black
stages: [pre-commit]

# Python: linting + import sorting
- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.8.6
hooks:
- id: ruff
args: [--fix]
stages: [pre-commit]

# Shell: linting
- repo: https://github.com/shellcheck-py/shellcheck-py
rev: v0.10.0.1
hooks:
- id: shellcheck
stages: [pre-commit]

# Shell: formatting
- repo: https://github.com/scop/pre-commit-shfmt
rev: v3.12.0-2
hooks:
- id: shfmt
args: [-i, "2", -w]
stages: [pre-commit]

# TOML: formatting
- repo: https://github.com/ComPWA/taplo-pre-commit
rev: v0.9.3
hooks:
- id: taplo-format
stages: [pre-commit]

# ITK commit message hooks (matching ITK/Utilities/Hooks/)
- repo: local
hooks:
- id: local-prepare-commit-msg
Expand Down
23 changes: 23 additions & 0 deletions .pypirc.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# .pypirc.example -- DO NOT commit real credentials
# Copy to ~/.pypirc and fill in your token.
#
# Generate a token at: https://pypi.org/manage/account/token/
# For TestPyPI: https://test.pypi.org/manage/account/token/
#
# Alternatively, set environment variables:
# TWINE_USERNAME=__token__
# TWINE_PASSWORD=pypi-<your-token>

[distutils]
index-servers =
pypi
testpypi

[pypi]
username = __token__
password = pypi-YOUR-TOKEN-HERE

[testpypi]
repository = https://test.pypi.org/legacy/
username = __token__
password = pypi-YOUR-TOKEN-HERE
13 changes: 13 additions & 0 deletions .readthedocs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
version: 2

build:
os: ubuntu-22.04
tools:
python: "3.11"

sphinx:
configuration: docs/conf.py

python:
install:
- requirements: docs/requirements-docs.txt
15 changes: 0 additions & 15 deletions .travis.yml

This file was deleted.

7 changes: 7 additions & 0 deletions BuildWheelsSupport/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
cmake_minimum_required(VERSION 3.26.6 FATAL_ERROR)
# NOTE: 3.26.6 is the first cmake version to support Development.SABIModule

project(ITKPythonPackageWheels CXX)

include(${CMAKE_CURRENT_SOURCE_DIR}/../cmake/ITKPythonPackage_Utils.cmake)
include(${CMAKE_CURRENT_SOURCE_DIR}/../cmake/ITKPythonPackage_BuildWheels.cmake)
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,4 @@ itk-io
itk-filtering
itk-registration
itk-segmentation
itk-meta
itk-meta
Loading
Loading