[0.2.0]
Added
- A README install-snippet check, run as a gate before anything is written. A
README naming
~> 0.1.1when you publish0.2.0sends everyone following it to the old release, and nothing else catches that: the code compiles, the tests pass, the docs build. - Two modes, configured with
plumb: [readme: ...]inproject/0and off by default.:satisfiesrequires the new version to satisfy the stated requirement and imposes no style;:exactrequires the README to name~> MAJOR.MINORof the new version, which is what a 0.x project wants, since a minor bump there is a breaking change.:readme_pathdefaults toREADME.md. readmejoinsformat,testanddocsas a value--skipaccepts.--allow-untracked, which lets untracked files through the clean-tree check. Tracked changes still block it, and untracked files are still not committed — onlymix.exsis. The failure message names the flag.
The check reads the version being released, not the one in mix.exs, so a
release that would leave the install instructions wrong fails before the bump
rather than after the upload.
[0.1.0]
First release.
mix publish (major | minor | patch | VERSION)— verifies, bumpsmix.exs, commits, tags, pushes, and runsmix hex.publish.- Every check runs before anything is written, so a failed run leaves the
repository untouched: clean working tree, tag free locally, tag free on the
remote, then
mix format --check-formatted,mix testandmix docs. - The tag is pushed before the upload, so
source_refin the published docs resolves as soon as they are live. - The version is read from a
@versionattribute or a literalversion:in the project config. A version that is not a literal string is refused rather than guessed at. --dry-run,--remote NAME,--skip CHECKS.