Scribe is a powerful CLI tool designed to streamline the creation of your changelog by leveraging Conventional Commits. It features an interactive TUI for commit message curation, ensuring a cleaner and more organized CHANGELOG.md. Enhance your release workflow effortlessly with automatic tagging and versioning.
Scribe is a command-line interface (CLI) tool designed to automate the generation of CHANGELOG.md files by utilizing the Conventional Commits specification. This tool enhances the changelog creation process through an interactive terminal user interface (TUI) that streamlines the curation of commit messages, allowing users to include, edit, and re-categorize their commits effortlessly.
Key Features
- Interactive TUI: Intuitively select the commit messages to include in the changelog.
- Conventional Commits Compliance: Automatically skips non-conforming commits ensuring a clean changelog.
- Markdown Section Generation: Creates organized Markdown sections according to commit types such as features and bug fixes.
- Release Workflows: Facilitates the entire release process by prepending the new entries to
CHANGELOG.md, committing the changes, and creating a corresponding Git tag for tracking releases.
Usage Examples
To generate a preview of the changelog without modifying any files, use:
scribe new --path . [--from-ref <git_ref>]
To create a new release, which will prepend to the CHANGELOG.md, commit the changes, and tag the release:
scribe release 1.2.0 --path . [--no-interactive]
Note that the git tag will automatically be named v1.2.0 as Scribe prefixes tags with v. For continuous integration (CI) or fully automated setups, use the --no-interactive option.
Configuration
Scribe offers a customizable configuration file, .scribe.yml, where users can define the structure of their changelog:
sections:
- { title: "Breaking Changes", types: [] }
- { title: "New Features", types: ["feat"] }
- { title: "Bug Fixes", types: ["fix"] }
ignore_scopes: []
Commit messages marked with a ! will be routed to the Breaking Changes section, while specific scopes can be filtered out through the ignore_scopes feature.
TUI Keybindings
Efficiently navigate and manage commit selections in the TUI with the following keybindings:
- Space: Toggle inclusion/exclusion of the commit.
- e: Edit the selected commit description.
- c: Change the commit type, cycling through defined categories.
- Enter: Confirm the selection.
- q / Esc: Abort the operation.
Scribe simplifies the changelog maintenance process, making it an essential tool for enhancing project management and release tracking.
No comments yet.
Sign in to be the first to comment.