Monorepo Configuration
Optional for standalone package
Configure monorepo-specific behavior.
versionMode
Choose how versions are managed:
import { defineConfig } from 'relizy'
export default defineConfig({
monorepo: {
versionMode: 'selective', // 'unified' | 'selective' | 'independent'
},
})- unified: All packages share the same version
- selective: Only changed packages bumped (recommended)
- independent: Each package has its own version
Learn more: Version Modes
Independent mode commit messages
In independent mode, Relizy uses shorter release commit titles by default and moves the full package list into the commit body so you stay under commitlint header limits. See Commit Templates for placeholders and examples.
packages
Specify where packages are located:
export default defineConfig({
monorepo: {
packages: [
'packages/*',
'apps/*',
'libs/*',
],
},
})ignorePackageNames
Exclude specific packages:
export default defineConfig({
monorepo: {
ignorePackageNames: [
'example-a',
'docs',
'@myorg/private',
],
},
})includePrivates
Include private packages (packages with "private": true in their package.json) in bump and changelog operations.
By default, private packages are excluded from every pipeline step. When this option is enabled, they participate in version bumping and changelog generation: they get their own version bump, their own CHANGELOG.md, and their commits are included in the aggregated root changelog.
Private packages remain excluded from:
relizy publish(they are never published to a registry)relizy provider-release(no GitHub/GitLab releases are created for them)relizy pr-comment(they are not listed in PR comments)
This is useful for monorepos that contain internal-only packages (apps, examples, private libraries) that still need versioning and changelog tracking.
export default defineConfig({
monorepo: {
versionMode: 'selective',
packages: ['packages/*', 'apps/*'],
includePrivates: true,
},
})You can also enable it ad-hoc from the CLI with the --include-private flag on relizy bump, relizy changelog, and relizy release.
NOTE
ignorePackageNames still takes precedence. A private package listed in ignorePackageNames stays excluded even if includePrivates is true.
Complete Example
export default defineConfig({
monorepo: {
versionMode: 'selective',
packages: ['packages/*', 'apps/*'],
ignorePackageNames: ['example-a', 'docs'],
includePrivates: false,
},
})