0.3.0 • Published 5 years ago

@masinio/changeloggen v0.3.0

Weekly downloads
-
License
MIT
Repository
github
Last release
5 years ago

Changelog generator for Git projects. The development is in alpha state and it is not yet clear if further features will be added.

This generator will find all releases based on semantic version repository tags. It will then start to associate Markdown .md files with each release. Based on some additional meta information specified in the change files, a complete changelog will be generated.

Is this the right thing for me?

If you don't want to manually write all changes in a single file and mess around with annoying merge conflicts or if you don't like to put all your changes in commit messages, then this might be the tool for you.

Change descriptions

A change file is a Markdown .md document. All change files should be placed somewhere inside of the changelog directory of the git repository toplevel-root. All subdirectories will be scanned, so changes can be organized e.g. by date directories.

Changes that are not ready for release should have the file suffix .draft.md and will be skipped in the changelog generation process, if not defined otherwise.

The change metadata or configuration is described by a YAML Front Matter file header.

  • type - The type of the change
    • feature or enhancement - Description of a new feature or enhancement
    • change - Description of a change (e.g. in the API)
    • deprecation - Description of a deprecation warning
    • deactivation - Description of a feature deactivation
    • patch or bugfix - Description of an issue that was resolved
    • security - Description of security enhancements
    • text - An introductory text or a complete description of all changes
  • pin: Pins this change to the specified version tag
  • precedence: The change with the highest precedence number will be shown first in its type category

Example file

---
type: enhancement
pin: v4.3.7
precedence: 10
---

Description of the enhancement

Output format

The output format is fixed for now, and cannot be changed. Maybe a templating engine will be added in a later version.

# X.Y.Z

All concatenated 'text' changes

## Features

* All 'feature' changes
* ...

## Changes

* All 'change' changes
* ...


## Deprecated

* All 'deprecation' changes
* ...


## Removed

* All 'deactivation' changes
* ...


## Patches

* All 'patch' or 'bugfix' changes
* ...


## Security

* All 'security' changes
* ...


# Predecessor of X.Y.Z

...

Prerequisites

Node.js must be installed.

Getting started

Go to a repository that does contain change files or execute the CLI tool with the path to the repository

node bin/changeloggen <repository_dir>

or install it

npm install -g @masinio/changeloggen
changeloggen <repository_dir>

A changelog will be printed on the console.