Skip to content

Bump Configuration ​

Configure version bumping behavior.

type ​

Set version type:

ts
import { defineConfig } from 'relizy'

export default defineConfig({
  bump: {
    type: 'minor', // 'major' | 'minor' | 'patch' | 'prerelease' | 'release' | 'prepatch' | 'preminor' | 'premajor'
  },
})

preid ​

Set prerelease identifier:

ts
import { defineConfig } from 'relizy'

export default defineConfig({
  bump: {
    preid: 'beta', // For pre-releases like 1.0.0-beta.1
  },
})

dependencyTypes ​

Set dependency types to consider for version bumping:

ts
import { defineConfig } from 'relizy'

export default defineConfig({
  bump: {
    dependencyTypes: ['dependencies', 'devDependencies', 'peerDependencies'],
  },
})

clean ​

Check if there are any uncommitted changes before bumping. If the working directory is not clean, the bump will be aborted:

  • Type: boolean
  • Default: true
ts
import { defineConfig } from 'relizy'

export default defineConfig({
  bump: {
    clean: true,
  },
})

yes ​

Skip the confirmation prompt about bumping packages:

  • Type: boolean
  • Default: false
ts
import { defineConfig } from 'relizy'

export default defineConfig({
  bump: {
    yes: true,
  },
})

capZeroMajor ​

Cap commit-detected major bumps to minor while the current version is in the 0.x.y range (semver §4, initial development). This prevents a breaking change from graduating a 0.x package to 1.0.0 automatically.

  • Type: boolean
  • Default: true
ts
import { defineConfig } from 'relizy'

export default defineConfig({
  bump: {
    capZeroMajor: false, // a breaking change bumps 0.x.y straight to 1.0.0
  },
})

With the default (true), a breaking commit on 0.5.2 bumps to 0.6.0. Set it to false when a 0.x package is production-ready and you want breaking changes to follow strict semver (0.5.2 → 1.0.0).

TIP

This only affects commit-based detection. Explicit CLI release types (--major, --premajor, …) always graduate and are never capped. Once the package reaches 1.x, this option is a no-op.

Canary Mode ​

When using --canary, the preid option is used as the canary prerelease identifier. If not set, it defaults to canary.

bash
# Uses default preid "canary"
relizy release --canary
# → 1.3.0-0.canary-a3f4b2c

# Uses custom preid from config or CLI
relizy release --canary --preid snapshot
# → 1.3.0-0.snapshot-a3f4b2c

The preid value is also used as the npm dist-tag for canary releases. See the Canary Releases guide for full details.

Complete Example ​

ts
import { defineConfig } from 'relizy'

export default defineConfig({
  bump: {
    type: 'prerelease',
    preid: 'beta',
    dependencyTypes: ['dependencies', 'devDependencies', 'peerDependencies'],
    yes: true,
  },
})

Usage:

bash
relizy bump
# Results in: 1.0.0 → 1.0.0-beta.0

Released under the MIT License.