forked from Crockan/MercuryToolbox
50 lines
1.4 KiB
Markdown
50 lines
1.4 KiB
Markdown
# Contributing
|
|
|
|
Mercury Toolbox is currently proprietary and distributed under the terms in
|
|
[LICENSE](LICENSE). Do not submit third-party code or assets unless their
|
|
licensing terms permit this repository's intended use.
|
|
|
|
## Commits
|
|
|
|
Use Conventional Commits for every non-merge commit:
|
|
|
|
```text
|
|
type(scope): imperative summary
|
|
```
|
|
|
|
Scopes are optional. Supported types are `build`, `chore`, `ci`, `docs`,
|
|
`feat`, `fix`, `perf`, `refactor`, `revert`, `style`, and `test`. Use `!`
|
|
before the colon for a breaking change, for example:
|
|
|
|
```text
|
|
feat(sqlshape)!: replace legacy output fields
|
|
fix(ci): preserve DuckDB runtime in portable packages
|
|
```
|
|
|
|
Check the current commit locally with:
|
|
|
|
```powershell
|
|
just commit-check
|
|
```
|
|
|
|
## Versions and Releases
|
|
|
|
Versions follow [Semantic Versioning 2.0.0](https://semver.org/):
|
|
|
|
- `MAJOR` for incompatible command-line or output-contract changes.
|
|
- `MINOR` for backward-compatible commands, options, and capabilities.
|
|
- `PATCH` for backward-compatible fixes and maintenance.
|
|
|
|
Set `[workspace.package].version` in `Cargo.toml`, create an annotated `vX.Y.Z`
|
|
tag with the exact same version, and add release notes under
|
|
`docs/releases/vX.Y.Z.md`. Validate a release candidate with:
|
|
|
|
```powershell
|
|
just release-version-check vX.Y.Z
|
|
just changelog
|
|
```
|
|
|
|
`git-cliff` generates `CHANGELOG.md` from Conventional Commits. The existing
|
|
`v0.1.0` release is retained as the baseline; new entries are generated from
|
|
the commit history after that release.
|