changelog-automation-core

Core library for continuous CHANGELOG.md generation from YAML entries

License

License

Categories

Categories

Auto Application Layer Libs Code Generators
GroupId

GroupId

org.zkovari.changelog
ArtifactId

ArtifactId

changelog-automation-core
Last Version

Last Version

0.4.0
Release Date

Release Date

Type

Type

jar
Description

Description

changelog-automation-core
Core library for continuous CHANGELOG.md generation from YAML entries
Project URL

Project URL

https://github.com/zkovari/gradle-changelog-automation-plugin
Source Code Management

Source Code Management

https://github.com/zkovari/gradle-changelog-automation-plugin

Download changelog-automation-core

How to add to project

<!-- https://jarcasting.com/artifacts/org.zkovari.changelog/changelog-automation-core/ -->
<dependency>
    <groupId>org.zkovari.changelog</groupId>
    <artifactId>changelog-automation-core</artifactId>
    <version>0.4.0</version>
</dependency>
// https://jarcasting.com/artifacts/org.zkovari.changelog/changelog-automation-core/
implementation 'org.zkovari.changelog:changelog-automation-core:0.4.0'
// https://jarcasting.com/artifacts/org.zkovari.changelog/changelog-automation-core/
implementation ("org.zkovari.changelog:changelog-automation-core:0.4.0")
'org.zkovari.changelog:changelog-automation-core:jar:0.4.0'
<dependency org="org.zkovari.changelog" name="changelog-automation-core" rev="0.4.0">
  <artifact name="changelog-automation-core" type="jar" />
</dependency>
@Grapes(
@Grab(group='org.zkovari.changelog', module='changelog-automation-core', version='0.4.0')
)
libraryDependencies += "org.zkovari.changelog" % "changelog-automation-core" % "0.4.0"
[org.zkovari.changelog/changelog-automation-core "0.4.0"]

Dependencies

compile (1)

Group / Artifact Type Version
org.yaml : snakeyaml jar 1.24

Project Modules

There are no modules declared in this project.

GitLab pipeline status Maven central Documentation Status codecov Maintainability Gitter

Gradle Changelog Automation Plugin

Inspired by GitLab: https://about.gitlab.com/2018/07/03/solving-gitlabs-changelog-conflict-crisis/

What does this plugin do

This plugin is able to generate CHANGELOG.md from YAML files. One YAML file represents one unreleased changelog entry. For example, a new added feature's entry would look like this:

title: My new feature
reference: GH-1
author: John Doe
type: added

Then the plugin can process the unreleased YAML entries and combine them into CHANGELOG.md. The changelog is based on Keep a Changelog.

As an example, see this project's changelog which is automatically generated by this plugin: CHANGELOG.md.

Getting started

How to apply the plugin

Using the plugins DSL:

plugins {
    id 'org.zkovari.changelog' version '0.4.0'
}

Or using legacy plugin application:

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'org.zkovari.changelog:changelog-automation-gradle-plugin:0.4.0'
    }
}

apply plugin: 'org.zkovari.changelog'

How to generate YAML entries

The plugin contains a generator script that you can fetch with the fetchChangelogScript task:

gradle fetchChangelogScript
# result: scripts/changelog.sh

# add permission
chmod +x scripts/changelog.sh

To generate a new unreleased changelog entry (YAML), run changelog.sh:

./scripts/changelog.sh --type added "My new feature"

As a result, a new changelog entry is generated under changelogs/unreleased, in this case the following one:

title: My new feature
reference:
author:
type: added

See changelog.sh --help or the detailed documentation for further information.

How to process unreleased changelog entries

If you already have unreleased YAML entries under changelogs/unreleased, you can combine them into your CHANGELOG.md with the task processChangelogEntries:

gradle processChangelogEntries

As a result, your CHANGELOG.md is updated with a new release entry. As an exmaple, see this project's changelog which is automatically generated by this plugin: CHANGELOG.md.

The task processChangelogEntries also removes your unreleased entries from changelogs/unreleased.

Further documentation

Please visit our detailed documentation for further information.

License

GitHub

Versions

Version
0.4.0
0.3.0
0.2.2
0.2.1