Skip to content
/ clog-rm Public

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.

License

Notifications You must be signed in to change notification settings

mrteye/clog-rm

Repository files navigation

Commit Log Release Management: clog-rm

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.

Supports

  • 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]

Install

    pnpm i -D clog-rm

.npmrc for pnpm

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

Setup

Create override examples, copy commitlint config, setup commit-msg hook

npx clog-setup

Usage

Bump the version, update the changelog, and create & push a release to github or gitea. More git hosts to come.

npx release

Config: clog.env

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

Contributing

...

Pending Features

  • 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

Resources

Package Build

Built with dnt.

Conventional Changelog

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

husky

  • for git hook management

Version Control (git)

Commit Guidelines

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

About

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.

Resources

License

Stars

Watchers

Forks

Packages

No packages published