# Contributing
## Versioning
A version number tells a consumer what taking the update will do to them, so
each kind of change moves its own digit.
makeover is past `1.0` and answers to ordinary semver. Its `0.x` siblings put
additions on the patch so that their minor stays reserved for looks and
breaks; that rule does not apply here.
| breaks a consumer's build | the major |
| changes a look | the minor |
| adds API | the minor |
| fixes a bug and changes no look | the patch |
A look change is anything a consumer would see differently on screen without
touching their own code: a derived colour, a spacing, a default. Its commit
subject starts `look:` and names its before/after render, which the
`commit-msg` hook in `scripts/githooks/` enforces for the paths listed in
`scripts/githooks/look-paths`.
A look never ships on a patch, so a consumer taking only patches never sees
the screen change under them.
Bento's publish preflight checks the bump against the commits since the
previous release tag and refuses a `look:` commit on a release that keeps the
minor. The marker below opts this repo in.