@ambiere/avae v0.1.3
avae
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).
Installation
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 helpExample
To 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 avaeAbove 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 ++++++++++++++++++++++++++++++++Options
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 1CI/CD
For 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.mdTODO
Tailor release notes to meet your project's specific requirements using customizable templates and formatting options.
Contributing
Please refer to the Contributing Guidelines.
license
Licensed under the MIT License.