All Projects β†’ adamtabrams β†’ change

adamtabrams / change

Licence: GPL-3.0 License
A simple tool that automates generating and updating a changelog

Programming Languages

shell
77523 projects

Projects that are alternatives of or similar to change

Gh Release
Create a github release for a node package.
Stars: ✭ 132 (+180.85%)
Mutual labels:  changelog, semver, release, tag
Cli
πŸ†‘πŸ“ Setup automated semver compliant package publishing
Stars: ✭ 272 (+478.72%)
Mutual labels:  changelog, semver, release
Releaser Tools
Create a GitHub/GitLab/etc. release using a project's commit messages and metadata.
Stars: ✭ 283 (+502.13%)
Mutual labels:  changelog, release, tag
Release It
πŸš€ Automate versioning and package publishing
Stars: ✭ 4,773 (+10055.32%)
Mutual labels:  changelog, semver, release
git
πŸ”€ semantic-release plugin to commit release assets to the project's git repository
Stars: ✭ 235 (+400%)
Mutual labels:  changelog, release, conventional-commits
cocogitto
The Conventional Commits toolbox
Stars: ✭ 242 (+414.89%)
Mutual labels:  changelog, semver, conventional-commits
Bump
Bump updates the project's version, updates/creates the changelog, makes the bump commit, tags the bump commit and makes the release to GitHub. Opinionated but configurable.
Stars: ✭ 327 (+595.74%)
Mutual labels:  changelog, release, tag
Keep A Changelog
If you build software, keep a changelog.
Stars: ✭ 5,065 (+10676.6%)
Mutual labels:  changelog, release, tag
Standard Version
πŸ† Automate versioning and CHANGELOG generation, with semver.org and conventionalcommits.org
Stars: ✭ 5,806 (+12253.19%)
Mutual labels:  changelog, release, tag
perfekt
Release, changelog and version your packages with perfe(k)t πŸ‘Œ ease!
Stars: ✭ 15 (-68.09%)
Mutual labels:  changelog, semver, release
Fugitive
Simple command line tool to make git more intuitive, along with useful GitHub addons.
Stars: ✭ 20 (-57.45%)
Mutual labels:  workflow, changelog, release
Semantic Release
πŸ“¦πŸš€ Fully automated version management and package publishing
Stars: ✭ 14,364 (+30461.7%)
Mutual labels:  changelog, semver, release
Bumped
πŸ“¦ Makes easy release software
Stars: ✭ 222 (+372.34%)
Mutual labels:  workflow, semver, release
attribution
Generate changelogs from commit tags and shortlogs
Stars: ✭ 20 (-57.45%)
Mutual labels:  changelog, release
wisdom
🎁 Tool for publishing releases to github and npm
Stars: ✭ 16 (-65.96%)
Mutual labels:  changelog, release
dont-crack
semantic-release plugin checking if the new semantic release is breaking dependent projects
Stars: ✭ 14 (-70.21%)
Mutual labels:  semver, release
get-changelog
A CLI tool to easily find changelogs
Stars: ✭ 21 (-55.32%)
Mutual labels:  changelog, release
studio-changes
πŸ“¦ Generate a changelog as part of the npm versionΒ command
Stars: ✭ 49 (+4.26%)
Mutual labels:  changelog, release
releasify
A tool to release in a simpler way your module
Stars: ✭ 54 (+14.89%)
Mutual labels:  changelog, release
keep-changelog-maven-plugin
Maven plugin to help creating CHANGELOG by keeping one format and solving merge request conflicts problem by extraction of new CHANGELOG entries to seperate files.
Stars: ✭ 22 (-53.19%)
Mutual labels:  changelog, release
  ______________________________
 / __// // / _ | / |/ / ___/ __/
/ /__/ _  / __ |/    / (_ / _/
\___/_//_/_/ |_/_/|_/\___/___/

pre-commit lint Linux macOS

About

The goal of change is to take the grunt work out of creating and updating changelogs. It combines the ideas from Keep a Changelog and Conventional Commits to help you generate and update a changelog template. This tool can't do all the work of writing a great changelog for you. But change can do a lot of it!

Generate a changelog

generate-changelog

Update, tag, and release a new version

change-all

Usage

First generate a changelog with change init

  • You need to have a least one commit tagged with valid SemVer (like 0.1.0 or even v0.0.1).

  • change probably won't work well with a changelog that's formatted differently. So it's better to let change generate one. You can transfer existing messages afterward.

Now populate the rest of it with change

  • change can add multiple versions to your changelog, but those version tags should already exist. Otherwise, it will assume everything since the previous version tag is part of the newest version.
  • change figures out what your next version should be based on your commits and will add it to the changelog.
  • Optionally, adding --bump PATH can pass the newest version as an argument to a script. You can customize that script to update version info anywhere in your repo.

Fill in the details

  • You should validate what was generated and add details where ever more are needed.

Tag the latest commit with change tag

  • This looks at the latest version recorded in the changelog and tags the latest commit with that version.
  • Optionally, you can add -p to automatically push the new version.

Save a token with change auth

  • This is only needed if you want to use change post.
  • A personal access token is saved for use when posting a release.
  • Here are instructions for creating a Github token.
  • Optionally, you can use --token TOKEN to provide the token non-interactively.

Post a release to GitHub with change post

  • This will post the section from the latest version in the changelog as a GitHub release.
  • Optionally, you can provide --dry-run to see the URL, version, and message body without actually creating the release: change post --dry-run

Combine multiple commands with change all

  • First it runs the change command.
  • Then it opens your changelog with $EDITOR (or vi if that isn't set).
  • As long as you modify the changelog in some way, it commits and pushes.
  • Lastly, it runs change tag -p and change post.
  • I use this command most often.
  • Optionally, you can use the --bump flag.

Workflow

This is the general workflow I use with this tool:

  • make changes to the project
  • record those changes in commits
    • smaller, more focused commits will help when generating the changelog
  • run change all
  • improve the new section of the changelog
  • save and close the file

Tips

With the help of curl, you can even run this tool without installing it:

  • curl -s "https://raw.githubusercontent.com/adamtabrams/change/master/change" | sh -s -- [args]
  • If you're using change like this for CICD, you may want to pick a specific version (instead of master).

If you use change often, add it to your path. Here are some options for how:

  • Create a symlink somewhere already in your path that point to change (my favorite):
    • ln -s /path/to/change/script ~/.local/bin/change
  • Add the script's directory to your path:
    • export PATH="/path/to/change/repo:${PATH};"
    • You would probably put this in a file like: .bashrc, .profile, .zprofile, etc
  • Copy the script to your current path:
    • cp /path/to/change/script ~/.local/bin/
    • Drawback: the change executable will remain at its version when this command was used.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].