A most basic cli that gets the next semantic release, looking at the last commit and package.json version.
npm install semantiq
semantiq
Expected output is the next release if the last commit follows the Angular commits convention and a package.json exists.
Given you have a commit of:
feat: My brand new feature!
And a package with:
{
"version": "1.0.1"
}
When you call semantiq
, the result will be:
$ 1.1.0
Semver: major.minor.patch
eg. 1.4.5
Flag | Description | Semver |
---|---|---|
feat | A new feature | Minor |
fix | A bug fix | patch |
docs | Documentation only changes | patch |
style | Changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc) | - |
refactor | A code change that neither fixes a bug nor adds a feature | patch |
perf | A code change that improves performance | patch |
test | Adding missing or correcting existing tests | patch |
chore | Changes to the build process or auxiliary tools and libraries such as documentation generation | patch |
My current thinking is that major releases shouldn't be automated. If you think it should, create an issue.
- Create artefacts
- Push or pull branches
- Updates your package.json
- Use any other semantic versioning
npm test
- Unleash - a fully fledged publishing system for GitHub and npm
- Semantic release - Another automated publisher
- Eric Elliot - Still not using his good functional programming principles but his lessons on modularity are awesome
- Jest - Especially code coverage.
- Typescript - It's not a Typescript project but the
--checkJs
option catches lots of code correctness issues when using docblock comments. - Husky - Preventing me from committing errors
- ESLint - Keeps my code tidy
- Prettier - Prevents me from having to worry about style issues.