2.0.2 • Published 5 months ago

simple-conventional-release v2.0.2

Weekly downloads
-
License
AGPL-3.0
Repository
github
Last release
5 months ago

šŸš€ simple-conventional-release

CI Pipeline NPM Version License

A simple automated release notes generator for Git repositories using Conventional Commits.

Supports GitHub & GitLab and integrates seamlessly with CI/CD pipelines.

✨ Features

āœ… Automated Release Notes – Generates a release note markdown file based on commit messages. āœ… Supports Conventional Commits – Categorizes commits into features, fixes, chores, etc. āœ… GitHub & GitLab Compatible – Generates correct compare links based on the repository host. āœ… Use via JavaScript API or CLI. āœ… Ideal for CI/CD pipelines.

šŸ“¦ Installation & Usage

šŸ“€ Using the CLI

You can use the CLI via npx without installing the package globally.

šŸ”„ Run via npx

npx simple-conventional-release --repository . --output RELEASE_NOTES.md --from v1.0.0 --to v1.1.0

šŸ¦ Install Globally

npm install -g simple-conventional-release

šŸš€ Usage

simple-conventional-release --repository . --output RELEASE_NOTES.md --from v1.0.0 --to v1.1.0

šŸ”§ Available Options

OptionDescriptionDefault
-r, --repositoryPath to the Git repository.
-o, --outputOutput file for release notesRELEASE_NOTES.md
--fromStarting tag for release notes generationAuto-detected
--toEnding tag for release notes generationLatest tag
--with-titleInclude title in the output (true or false)true

šŸ“œ Using the JavaScript API

You can integrate this tool directly into your JavaScript/TypeScript projects.

šŸ“„ Install the package:

npm install simple-conventional-release

šŸš€ Generate release notes programmatically:

import { generateReleaseNotes } from 'simple-conventional-release';

generateReleaseNotes({
  repositoryPath: '.',
  tags: { from: 'v1.0.0', to: 'v1.1.0' },
  outputPath: 'RELEASE_NOTES.md'
})
  .then((notes) => console.log('Release Notes:\n', notes))
  .catch((error) => console.error('Error:', error));

šŸ“œ Conventional Commits Support

This tool supports the Conventional Commits specification to categorize commits automatically:

TypeDescription
buildChanges that affect the build system or dependencies
choreRoutine tasks like refactoring, maintenance, or tooling updates
ciChanges to CI/CD configuration or automation scripts
docsDocumentation updates only (e.g., README changes)
featIntroduction of a new feature
fixBug fixes and patches
perfPerformance improvements that do not affect functionality
refactorCode changes that do not add features or fix bugs
revertReverts a previous commit
styleCode style changes (formatting, whitespace, etc.)
testAdding or updating tests

šŸ“‹ Roadmap

  • Case Sensitivity – Support for case-insensitive commit types and messages.
  • Customizable Templates – Allow users to define custom release note templates.
  • Angular Commit Style – Support for Angular commit message style.
  • Customizable Categories – Allow users to define custom commit categories.
  • Full Generation – Generate full release notes with all tags.

šŸ“ License

This project is licensed under the AGPL-3.0 License. See the LICENSE file for details.

šŸ¤ Contributing

Contributions are welcome! Please follow the contribution guidelines.

šŸ“¬ Issues & Feedback

If you encounter any issues, feel free to report them on our GitHub Issues.

2.0.2

5 months ago

2.0.1

5 months ago

2.0.0

5 months ago

1.0.3

5 months ago

1.0.2

5 months ago

1.0.1

5 months ago

1.0.0

5 months ago