Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
a8b19f3
ENH: Add ITK commit message hooks (prepare-commit-msg and kw-commit-msg)
hjmjohnson Apr 3, 2026
6e670a4
ENH: Transition build system from shell scripts to consolidated Pytho…
CavRiley Mar 17, 2026
f5ccf4a
ENH: Add platform-specific Python build scripts for Linux, macOS, and…
CavRiley Mar 17, 2026
7d682b0
ENH: Add tarball creation and ITK build cache management
CavRiley Mar 17, 2026
2b289da
ENH: Remove legacy shell scripts, add pre-commit hooks, drop Python 3.9
CavRiley Mar 17, 2026
e3a9da8
DOC: Update online docs and infrastructure for docs generation
CavRiley Mar 18, 2026
892ef20
ENH: Add GitHub Action to generate documentation artifacts
CavRiley Mar 18, 2026
b9859c4
DOC: Add CONTRIBUTING.md file
CavRiley Mar 28, 2026
1728684
ENH: Add scripts to publish wheels and cached builds
CavRiley Mar 29, 2026
dc7f51c
ENH: Add libitk-wrapping pixi-build package recipe
hjmjohnson Apr 3, 2026
1ad57ac
ENH: Detect conda-installed ITK and skip C++ build steps
hjmjohnson Apr 3, 2026
affbd85
ENH: Skip tarball download when conda-installed ITK is available
hjmjohnson Apr 3, 2026
e6cadad
ENH: Configure commitizen for ITK commit message convention
hjmjohnson Apr 3, 2026
79695e7
DOC: Add conda-forge staged-recipes submission for libitk-wrapping
hjmjohnson Apr 3, 2026
293ad33
DOC: Update CLAUDE.md with conda/pixi-build and commit conventions
hjmjohnson Apr 3, 2026
d136916
DOC: Add accelerated pixi-build workflow to build documentation
hjmjohnson Apr 3, 2026
91f40a5
ENH: Dynamically update ITK dependency pins in remote module builds
hjmjohnson Apr 3, 2026
da9a6a6
ENH: Preserve module pyproject.toml when rewriting ITK deps
hjmjohnson Apr 3, 2026
a63cb10
DOC: Add Strategy 3 migration plan to _update_module_itk_deps
hjmjohnson Apr 3, 2026
b7a1dd0
ENH: Branch between Strategy 3 and Strategy 1 for ITK dep resolution
hjmjohnson Apr 3, 2026
cdbb486
ENH: Restrict Strategy 1 dep rewrite to ITK base sub-packages only
hjmjohnson Apr 3, 2026
fb1583e
BUG: Pin ITK dep floor to vMAJOR.MINOR of the ITK version being built
hjmjohnson Apr 3, 2026
cfeffd1
BUG: Use fixed >= 5.4 floor for ITK deps across all versions
hjmjohnson Apr 3, 2026
221359d
BUG: Pin ITK dep floor to MAJOR.MINOR of the version being built
hjmjohnson Apr 3, 2026
eb28193
ENH: Add scripts to build all ITK + remote module wheels from latest …
hjmjohnson Apr 3, 2026
86c9a68
ENH: Allow specifying ITK branch, tag, or hash for build-all scripts
hjmjohnson Apr 3, 2026
578e438
STYLE: Move build-all-latest-wheels scripts to Utilities/scripts
hjmjohnson Apr 3, 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: "fix: "
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/build_wheels.py, dockcross-manylinux-build-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

<!-- build_report.json contents, Docker image tag, CMake args, 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: ITK 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: "feat: "
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. -->
30 changes: 30 additions & 0 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
## 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 follow Conventional Commits (`feat:`, `fix:`, `chore:`, etc.)

## Platform(s) Tested

<!-- Check all that apply, or note "untested" where applicable. -->
- [ ] Linux x86_64 (manylinux)
- [ ] Linux aarch64 (manylinux)
- [ ] macOS x86_64
- [ ] 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
82 changes: 82 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
# 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
name: 'local prepare-commit-msg'
entry: 'Utilities/Hooks/prepare-commit-msg'
language: system
stages: [prepare-commit-msg]
- id: kw-commit-msg
name: 'kw commit-msg'
entry: 'python3 Utilities/Hooks/kw-commit-msg.py'
language: system
stages: [commit-msg]
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