Expublish provides a mix task that helps package maintainers keeping a clean, meaningful and trackable version history. It follows semantic versioning conventions while executing a series of best practices before releasing a new package version.
Those include verifying a clean git working directory, passing tests, a new git commit and tag as well as a new curated change log entry.
The mix task makes it straight forward for contributors or colleagues to get their changes out of the door, not having to manually perform a list of steps that might vary from project to project and are easy to get wrong.
Use it from a CI server to continuously release new package versions, especially useful when your repository receives frequent updates.
Things like a ready github action might follow in the future.
Yes it would. One can control the tasks behaviour with a bunch of different options like --disable-publish, --disable-push, of course --dry-run and more.
The docs are a bit all over the place but most of the things should be in there. All kind of feedback and ideas are appreciated here or in a github issue! Thanks @axelson !
Hi @elitau, i haven’t used the semantic-release npm package, but glancing over the highlights it seems to achieve the same thing while being much more feature complete and polished than expublish is (:
Also, expublish exlusively helps streamlining elixir package releases to public or private hex repositories, while semantic-release seems to help you publish libraries in the js ecosystem, namely npm. You’ll want to be using one or the other!