[0.2.3]
Added
mix publish current— uploads the version already inmix.exs, without bumping, committing or tagging. It requires the tag to exist locally, to be on the remote, to point at the same commit in both, andHEADto still be on it; the tarball is built from the working tree, so aHEADpast the tag would upload code the tag does not point at.--yesskips the confirmation prompt.
Changed
- Confirmation is asked once the checks have passed and before anything is written. Declining leaves the repository untouched.
Fixed
- A release completes its upload rather than stopping after the push.
[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.