InsightSoftwareConsortium / InsightSoftwareConsortium/ITK
ENH: Define and audit a production-readiness rubric for ITK remote modules
- Dominant language
- C++
- Stars
- 1.7k
- Forks
- 748
- Avg merge
- 1d 1h
- Merged PRs (30d)
- 64
Description
ITK's ~60 remote modules vary widely in test coverage, CI freshness, wheel
health, and maintainer activity, and there is no published definition of what
"production ready" means for one. This proposes a rubric plus a periodic audit.
Why now — the evidence
Every open remote-module issue on the tracker is a narrow, individually-filed
defect rather than a symptom anyone is aggregating:
| Issue | Last updated | Subject |
|---|---|---|
| #4761 | — | `cmake_minimum_required` across remote modules |
| #3795 | 2022-12-22 | Remote modules fail to checkout git tag, succeed with commit hash |
| #3754 | 2023-06-06 | Many remote modules enabled → configure fails: No such module "ITKIOPNG" |
| #2238 | — | `Python3_ROOT_DIR` handling |
| #1627 | — | Remote module build failures |
| #1024 | — | `ApplyScriptToRemotes.sh` |
| #990 | — | Doxygen of `Remote/` directories |
Two of those (#3795, #3754) have been open with no activity for 3+ years, which
is itself a signal that no one owns remote-module health as a category.
The ingestion tracker #6160 is closed and was scoped to ingest/archive
decisions, not to grading module maturity. Nothing currently states criteria for
"production status" or audits modules against them.
Proposed rubric (starting point for discussion)
A module is **production ready** when all of:
1. CI green on the current `ITKRemoteModuleBuildTestPackageAction` (not a stale
pinned action, and not CircleCI-only).
2. Non-trivial test coverage — at least one test per public filter, exercising
real data rather than construction-only smoke tests.
3. Python wheels published for the currently-supported Python versions.
4. A README documenting purpose, a citation if research-derived, and at least
one usage example.
5. An identifiable active maintainer (a commit or issue response within 12
months).
Deliverables:
- Publish the rubric (suggest `Documentation/remote_modules_classification.yaml`
gains a `readiness:` field, since that file already exists and already needs a
correctness pass).
- Run the audit once, publish the resulting table.
- Use the rubric as the gate for promotion/ingestion into ITK proper vs.
archival.
Deep-dive notes already exist locally for ITKVariationalRegistration, ITKMontage,
ITKVkFFTBackend, ITKIOOpenSlide, and ITKIOTransformDCMTK and can seed the first
five rows.
Contributor guide
Research direction
Start by reading Documentation/remote_modules_classification.yaml and the ITKRemoteModuleBuildTestPackageAction referenced in the rubric. Review the existing deep-dive notes for ITKVariationalRegistration, ITKMontage, ITKVkFFTBackend, ITKIOOpenSlide, and ITKIOTransformDCMTK. Done means the rubric is published, the remote modules are audited in a resulting table, and promotion or archival decisions can use the criteria.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cmake, github-actions, python, yaml
- Domain
- build-system, ci-cd, devops, documentation, testing
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100