@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:
{
"extends": "@rimac-technology/semantic-release-monorepo"
}
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 Github repository, using just the version as a header introduces ambiguity.
|
tagFormat
Pre-configures the
tagFormat
option to
use the monorepo git tag format.