@rimac-technology/semantic-release-monorepo
This project is a TypeScript-based fork of the original
semantic-release-monorepo. It enhances the original project by
incorporating TypeScript for stronger type safety, updated dependencies, a simplified codebase, and support for ECMAScript Modules
(ESM).
Install
Both semantic-release
and semantic-release-monorepo
must be accessible in each monorepo package.
yarn add --dev @rimac-technology/semantic-release-monorepo
In the
release config:
semantic-release-monorepo [options]
For example:
semantic-release-monorepo --extends @semantic-release/gitlab-config --dry-run
ℹ️ As the allowUnknownFlags
is enabled, all flags will be passed to
internal semantic-release
call as options
argument.
Advanced
This library modifies the context
object passed to semantic-release
plugins in the following way to make them compatible with
a monorepo.
Step | Description |
---|
analyzeCommits | Filters context.commits to only include the given monorepo package's commits. |
generateNotes | - Filters
context.commits to only include the given monorepo package's commits. - Modifies
context.nextRelease.version to use the monorepo git tag format. The wrapped (default) generateNotes implementation uses this variable as the header for the release notes. Since all release notes end up in the same Git repository, using just the version as a header introduces ambiguity.
|
tagFormat
Pre-configures the
tagFormat
option to
use the monorepo git tag format.