The full contribution cycle
1
Scaffold
plesty init device or plesty init experiment — generates project layout, schemas, tests, CI config, pre-push hook2
Implement
Write
connect, disconnect, _write_, _query_, check_errors, check_operatability. Define schemas.3
Check
uv run plesty check — fix failures, re-run until all gates pass4
Document
Update
docs/index.md and CHANGELOG.md — required by Gate 55
Commit
Conventional commits:
feat(scope): description. No Co-Authored-By trailers in PLESTY repos.6
Push
Pre-push hook runs
plesty check automatically. Every published module is the same: git push origin <branch>:exp. No merge request, and never straight to main.7
CI
GitLab pipeline: check → security → deploy (docs) → release (on tag)
8
Field test
Run it on the instrument — host tier there, client tier from another machine. The gates prove the code; this proves the device. Commit
reports/<MODEL>/field-test.json.9
Publish
Merge the line into
main, tag there, merge main back into exp. The tag triggers Gate 14: builds the wheel and publishes to PyPI.Sections
- Branch Discipline — one flow for every published module, release lines, where a release is tagged, conventional commits
- CI Pipeline —
.gitlab-ci.ymlsetup, stage breakdown - Field Test — proving the module against its instrument: the two tiers, running them on a bench, the reports that come back
- Publishing a Release — tagging, version bump, post-tag CI