Streamline the generation of release notes/text from your changelog file effortlessly. Whether you're managing a large-scale project or a smaller development effort, avae empowers you to create professional and comprehensive release notes/text with ease.
avae read the changelog file from top to bottom and create release file from it. avae relies on version tags in the changelog as the parsing boundary. The version tags should follow sermantic versioning (vX.Y.Z).
To install avae into your project, run:
npm i @ambiere/avaeNOTE: avae is also available as a command line interface which enables you to generate release notes effortlessly from the terminal. To install avae cli run:
npm i -g @ambiere/avaeFor available commands, run:
avae helpTo use it in your npm project, configure avae in your package.json file by running the following command:
npm pkg set scripts.avae=avaeTo generate release text later on, run:
npm run avae
Above command will read CHANGELOG.md and generate RELEASE.md file in the root directory of the project. By default, the file to read from is CHANGELOG.md and output file to write to is RELEASE.md
Optionally, you can import avae into your javascript file and create release text by calling createReleasetText function.
import * as createReleasetText from "avae"
const read = path.join(__dirname, "CHANGELOG.md")
const out = path.join(__dirname, "RELEASE.md")
createReleasetText(read, out, 1)terminal logs:
[RELEASE]: writing RELEASE.md
[RELEASE]: saved RELEASE.md
+ RELEASE.md ++++++++++++++++++++++++++++++++To customize the default behaviour of avae, you can pass several options when runing avae.
1: --read<path> || -r<path>
Specify the dir/filename path from which avae should read from. Example:
npm run avae --read "CHANGELOG.md"2: --out<path> || -o<path>
Specify the dir/filename path to which avae should output/write. Example:
npm run avae --out "RELEASE.md"3: --count<number> || -c<number>
Specify the number of releases that should be written to the output file. Example:
npm run avae --count 1For automation purposes, avae can be used together with softprops/action-gh-release to generate release notes on tags push.
Below is the workflow example that impliment avae and softprops/action-gh-release to generate release notes.
name: Release
on:
push:
tags:
- "v*.*.*"
permissions:
contents: read
jobs:
releae:
permissions:
contents: write # for softprops/action-gh-release to create GitHub release
runs-on: ubuntu-latest
environment: release
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install Node.js
uses: actions/setup-node@v4
with:
node-version: 21
name: Install dependencies
run: npm ci
- name: Publish Packages
env:
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
run: |
npm config set "//registry.npmjs.org/:_authToken" "${NPM_TOKEN}" # pnpm config set is broken
pnpm release
- name: Generate release description
run: pnpm run avae
- name: Release
uses: softprops/action-gh-release@v1
with:
draft: true
files: dist/*
body_path: RELEASE.md
Tailor release notes to meet your project's specific requirements using customizable templates and formatting options.
Please refer to the Contributing Guidelines.
Licensed under the MIT License.