This is a pre-release tagged as next on npm, so nobody will get it by default. You have to explicitly install it:
npm i -D semantic-release@next
Features
This is a complete rewrite of semantic-release with a new structure and architecture. Everything is more modular and more extensible. It's easier than ever to write plugins, there are more plugins and semantic-release itself consists of plugins.
On top of that there are a lot new features. For example private module support (for real this time) and support for release channels, which means you can maintain multiple releases like "latest" and "next", or "beta", "canary" and the stable "latest".
Another huge thing is that the setup got about 4937 times easier and semantic-release is no longer using the old npm auth token format. There is even a single command setup that takes care of everything (Thank you @christophwitzko).
npm install -g semantic-release-cli
cd your-module
semantic-release-cli setupIf you want to get a feeling for how much easier it got, then compare the .travis.yml of master and the .travis.yml of next.
Tests
There is now a unit test suite and integration tests were rewritten so they run against the official npm-registry-couchapp and not sinopia anymore. The problem is that they don't yet run on Travis. Let me know if you want to help with this.
Breaking Changes
Ironically the changelog generation doesn't work here, because this a complete rewrite with no shared history. I'll write them up manually, but there is a migration guide already.
Migrate from semantic-release <=3.x to 4.x
package.json
- Remove
semantic-release prefrom theprepublishscript. - Remove
semantic-release postfrom thepostpublishscript.
.travis.yml
- If you had a setup with multiple node versions and travis_after_all remove
python travis_after_all.pyandexport $(cat .to_export_back)from theafter_failurescript and removerm -f travis_after_all.py .to_export_backfrombefore_deploy. - Add
npm run semantic-releaseat the end of yourafter_successscript. - If you had a custom script in the
before_deployscript, then move it right in front ofnpm run semantic-release. - If you had a custom script in the
after_deployscript, then move it right afternpm run semantic-release. - Entirely delete the
deploysection.
semantic-release-cli
If you haven't already install the new semantic-release-cli.
npm install -g semantic-release-cliRun semantic-release-cli setup inside your module's folder and enter your details.
When it comes to "What kind of .travis.yml do you want?" select "Create no .travis.yml".
This PR to pouchdb-hoodie-api is an execution of above guide so you can see what the diff looks like.
One More Thing
semantic-release has its own GitHub Organisation and a beautfiul logo now. Thank you @lewiscowper!
