Skip to content
/ releaser Public

CLI release helper for GitHub, generating releases, tags and release notes from Conventional Commits.

License

Notifications You must be signed in to change notification settings

imbo/releaser

Repository files navigation

Imbo Releaser

⚠️ This project is under active development and is not yet ready for testing. ⚠️

Imbo Releaser is a configurable CLI application designed to simplify the release process for projects hosted on GitHub.

When creating a release, Imbo Releaser will:

  • Create a new Git tag and a corresponding GitHub release for a selected branch
  • Generate release notes based on Conventional Commits since the previous release on that branch

Requirements

Installation

Install as a development dependency using Composer:

composer require --dev imbo/releaser

Or install globally:

composer global require imbo/releaser

Usage

Imbo Releaser is designed to be run from the command line. It makes certain assumptions about the layout of your repository, but it is highly configurable and can be used in a wide variety of scenarios. See the Configuration section below for more details.

The key points regarding how Imbo Releaser works are as follows:

  • Git branches are named main (for development of the latest major version), and X.x (e.g. 1.x) for maintenance of older major versions. The X.x branches may contain an optional v prefix (e.g. v1.x).
  • Git tags are named X.Y.Z (e.g. 1.0.0). Tags may also contain an optional v prefix (e.g. v1.0.0).
  • Only pull requests are used with regards to the generated release notes and calculating the next version to release. Commits pushed directly to branches are ignored. The pull request titles must follow the Conventional Commits specification.
  • Release notes are attached to the GitHub release and annotated tags, and are not committed to the repository.

Configuration

If the above assumptions match your project, you can simply run imbo-releaser from the command line and follow the prompts to generate a new release.

If you need to adjust one or more assumptions, you can customize the behavior of Imbo Releaser by providing a configuration file. The configuration file is a PHP file named .imbo-releaser.php or .imbo-releaser.dist.php, and must exist in the directory where you run the imbo-releaser command.

The file must return an instance of the ImboReleaser\ConfigInterface interface. If you only need to customize a few aspects of the default behavior, you can extend the ImboReleaser\Config class and override only the parts you need.

License

MIT, see LICENSE.

About

CLI release helper for GitHub, generating releases, tags and release notes from Conventional Commits.

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages