Simplify versions, logs, and releases. Standardize git commits with industry templates, automate version advancements using SemVer, maintain changelogs, and generate git host releases. Fully customizable with common defaults.
- Releases: github(default), gitea
- Linting: Angular commit conventions by default
- Versions: bumping with conventional-recommended-bump and SemVer
- Configurable: fully configurable with .clog/ext/[lib]-[func]
pnpm i -D clog-rm
Add this file before installing or reinstalling if husky is not found or other problems occur.
The following .npmrc forces a flat file structure which will hoist all dependencies to the root node_modules folder.
node-linker=hoisted
Create override examples, copy commitlint config, setup commit-msg hook
npx clog-setup
Bump the version, update the changelog, and create & push a release to github or gitea. More git hosts to come.
npx release
A token is required for pushing releases. Add a token and any overrides vari to clog.env in the project root.
# see github or gitea documentation for creating a token.
# Ref:github https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens
# Ref:gitea API doc is the only ref I can find in the docs for creating a token
# - https://docs.gitea.com/development/api-usage
# - In the web interface try: .../user/settings/applications
GIT_TOKEN="personal access token"
SERVICE="" # Set the git host: github|gitea; defaults to github
...
- override config w/
npx release $TOKEN $API $SERVICE
- commit-lint config is currently hard coded
- Monorepo support.
- Pre-release version support v1.0.1-beta.1, v1.2.1-rc.3
Built with dnt.
Changelog Ecosystem The following modules are included.
- conventional-changelog-cli - changelog management interface
- standard-changelog - angular commit linting rules
- conventional-recommended-bump - commit log based recommended version bump
- commitlint - lint commit messages
- for git hook management
From angular.js/DEVELOPERS.md
All commits should start with a type and a colon - ex. git commit -m 'type: message'
Types must be one of the following:
- feat: A new feature
- fix: A bug fix
- docs: Documentation only changes
- 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
- perf: A code change that improves performance
- test: Adding missing or correcting existing tests
- chore: Changes to the build process or auxiliary tools and libraries such as documentation generation