Never edit files while on
mainorexp. 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.