Maintenance
eyepy uses dev as its integration branch and master as its release branch.
Normal changes are merged into dev; a reviewed pull request from dev to
master runs the release workflow. Urgent fixes for an already published
version may target master directly and must then be merged back into dev.
Canonical checks
Install the complete development environment from the committed lock file:
Run the same principal checks used by CI:
uv lock --check
uv run --locked pytest --cov=eyepy
uv run --locked pre-commit run --all-files
uv run --locked mkdocs build --strict
uv build
For a core-only installation, omit --all-extras. Individual optional
features can be selected with --extra plot, --extra quant, --extra tiff,
--extra pandas, --extra fda, or --extra itk.
Dependency updates
Dependabot proposes grouped updates once per month against dev. Runtime major
updates and file-reader changes should be reviewed separately from routine
tooling updates. Every dependency pull request must include the regenerated
uv.lock and pass the complete CI suite.
Avoid upper bounds for runtime dependencies unless an incompatibility is known and reproduced. When a lower bound is changed, run the lowest-direct-dependency CI job to ensure that it remains a tested compatibility claim.
Quarterly review
Once per quarter, review:
- supported Python versions and deprecation warnings;
- optional extras and their missing-dependency error messages;
- package metadata, documentation links, and wheel/sdist contents;
- representative VOL, XML, E2E, TIFF, and
.eyeround trips; - open compatibility and release-infrastructure issues;
- the no-release and successful-release workflow paths.
Security fixes affecting the published package should not wait for the monthly
update cycle. Prepare a focused pull request to master, publish the patch, and
merge the result back into dev.