Plesty Documentation

Branch Discipline

Hub and core repo branching rules, conventional commit format, and semver bump mapping.

Never edit files while on main or exp. These branches are protected. All work happens on feature branches.

Hub module repos (most contributors)

Hub repos (plesty/hub/devices/..., plesty/hub/analyzers/..., plesty/hub/experiments/...) use a simple flow:

git checkout main
git pull origin main
git checkout -b feat/add-wavelength-sweep

# ... implement + plesty check ...

git add plesty/scan_exp/measurements.py tests/test_measurements.py
git commit -m "feat(scan): add wavelength_sweep measurement function"
git push origin feat/add-wavelength-sweep

Then open a merge request on GitLab targeting main.

Core repos (plesty-sdk, plesty-lib, plesty-ci)

Core repos use exp as the integration branch. Feature branches merge into exp, not main.

git checkout exp
git pull origin exp
git checkout -b feat/add-func-meta

# ... implement + plesty check ...

git push origin feat/add-func-meta:exp   # merge directly into exp
git checkout exp
git branch -d feat/add-func-meta

No merge request step for core repos. The feature branch is pushed directly into exp โ€” there is no MR.

Conventional commits

All commits must follow the conventional commit format. plesty check Gate 8 reads commit messages to classify unreleased changes.

<type>(<scope>): <description>

[optional body]

[optional footer]
Type Semver impact Emoji When to use
feat minor โœจ New feature or capability
feat! major ๐Ÿ’ฅ Breaking change to public API
fix patch ๐Ÿ› Bug fix
refactor patch โ™ป๏ธ Restructure without behavior change
docs none ๐Ÿ“– Documentation only
test none ๐Ÿงช Add or fix tests
chore none ๐Ÿ”ง Maintenance (deps, config, build)
ci none ๐Ÿš€ CI/CD changes

Scope is the module or component affected, e.g., feat(wavelength): ..., fix(solver): ....

Breaking changes are declared with ! after the type or with BREAKING CHANGE: in the footer:

feat!(api)!: rename query() to read()

BREAKING CHANGE: query() has been renamed to read() for consistency with the write/read pair.

What NOT to add to commits

PLESTY repos do not use Co-Authored-By trailers in commit messages. Do not add them regardless of tooling defaults.