https://github.com/ambiere/avae
Create release notes from changelog.md file
https://github.com/ambiere/avae
description release-notes
Last synced: 3 months ago
JSON representation
Create release notes from changelog.md file
- Host: GitHub
- URL: https://github.com/ambiere/avae
- Owner: ambiere
- License: mit
- Created: 2024-01-30T09:04:50.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-03-10T23:57:20.000Z (3 months ago)
- Last Synced: 2025-03-11T00:29:19.189Z (3 months ago)
- Topics: description, release-notes
- Language: JavaScript
- Homepage: https://www.npmjs.com/package/@ambiere/avae
- Size: 694 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# 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`).
[](https://github.com/ambiere/avae/actions/workflows/continue-integration.yml)
[](https://github.com/ambiere/avae/actions/workflows/continue-deployment.yml)## Installation
To install `avae` into your project, run:
```bash
npm i @ambiere/avae
```> NOTE: 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:
```bash
npm i -g @ambiere/avae
```For available commands, run:
```bash
avae help
```## Example
To use it in your npm project, configure `avae` in your package.json file by running the following command:
```bash
npm pkg set scripts.avae=avae
```To generate release text later on, run:
```bash
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.
```js
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:
```bash
[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 || -r`
Specify the dir/filename path from which avae should read from. Example:```bash
npm run avae --read "CHANGELOG.md"
```2: `--out || -o`
Specify the dir/filename path to which avae should output/write. Example:```bash
npm run avae --out "RELEASE.md"
```3: `--count || -c`
Specify the number of releases that should be written to the output file. Example:```bash
npm run avae --count 1
```## CI/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.```yaml
name: Release
on:
push:
tags:
- "v*.*.*"
permissions:
contents: readjobs:
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```
## TODO
Tailor release notes to meet your project's specific requirements using customizable templates and formatting options.
## Contributing
Please refer to the [Contributing Guidelines](https://github.com/ambiere/avae/blob/main/CONTRIBUTING.md).
## license
Licensed under the **[MIT License](https://github.com/ambiere/avae/blob/main/LICENSE)**.