Contributing¶
Contributions are welcome when they preserve the scientific contracts of the package.
Required for a public API change¶
- explicit input and output semantics;
- deterministic defaults or explicit random seed;
- provenance for transformations;
- informative errors/warnings;
- unit and edge-case tests;
- synthetic-truth tests when feasible;
- API docs;
- when-to-use / when-not-to-use guidance;
- a runnable CI-sized example.
Scientific rules¶
Do not silently impute missing gaze, convert missingness to zero, change units, normalize time, smooth, register, rotate/scale trajectories, or choose a model/component count for the user.
Local validation¶
python -m pip install -e ".[dev,docs]"
python -m pytest --cov=eyetrajectoriespy
python -m ruff check src tests
python -m compileall -q src
mkdocs build --strict
Stabilization and API compatibility¶
Version 0.55 prioritizes canonical workflows and compatibility over namespace redesign. Before proposing a new public API, first identify which canonical workflow it belongs to and why an existing advanced/diagnostic API is insufficient.
Do not rename or remove an established public API merely for stylistic consistency. Follow the API stability policy, including the documented deprecation window.
Pull-request quality gate¶
Changes intended for main should go through a pull request and pass the
cross-platform tests, package build, documentation build, examples and optional
backend qualifications. The target repository ruleset is documented in the
release-readiness checklist.
At the start of 0.55, that GitHub ruleset is not yet enforced, so contributors must not interpret a technically possible direct push as project policy.