#semver #changelog #versioning #git-repository #automation #command-line-tool #version-control

bin+lib gitscribe

A simple command line tool to generate a change log from a git repository and control the versioning of a project

13 releases

0.2.13 Mar 1, 2024
0.2.8 Feb 13, 2024
0.1.17 Feb 12, 2024

#495 in Development tools

Download history 37/week @ 2024-02-06 151/week @ 2024-02-13 6/week @ 2024-02-20 135/week @ 2024-02-27 42/week @ 2024-03-05 34/week @ 2024-03-12 27/week @ 2024-03-26 163/week @ 2024-04-02

228 downloads per month

MIT/Apache

560KB
887 lines

GitScribe

  • A tool to help you maintain a changelog file in your project with semantic versioning. currently it is under development and not ready for use.

Installation

Requirements

rust toolchain

install from cates.io

  • cargo install gitscribe

For A Better Experience

enforce the use of Conventional Commits in your project

Usage

gitscribe --help

make a new release

# depending on the changes you made, you can use the following commands to make a new release version
gitscribe patch | minor | major

behind the scenes, it will do the following:

  • if no config file is found, it will create a new one
  • update the version in gitscribe.json
  • update or create a new changelog file
    • default file name is CHANGELOG.md and is placed in the root of the project
  • add and commit the changes

failed_patch

As seen above, you must have a clean working tree.

Below you can see a successful example

successful_patch

With the default configuration you get a new markdown changelog generated at the root of your project and new commit on your working branch that is a chore commit with the new version.

This tool will only output valid commits following conventional commit spec.

Setting aliases

to make it easier to use, you can set an alias in your shell configuration file

alias gs="gitscribe"

features

  • create a new changelog file

  • create multiple changelog files for different output formats

  • sync other package management files (pyproject.toml, package.json, cargo.toml) with the gitscribe.json version.

  • more to come..

Dependencies

~10–22MB
~287K SLoC