Skip to content

Changelog

v0.2.8...v0.3.0

compare changes

🚀 Features

  • Add support of registry token in config.tokens.registry and config.publish.token (54b2d26)

🩹 Fixes

  • Prevent git state pollution on publish failure (444006e)

    The release workflow now publishes packages BEFORE creating git commits and tags, preventing state pollution when npm publish fails. What changed:

    • Step order reorganized: Bump → Changelog → Publish → Commit → Tag → Push
    • Automatic rollback of modified files if publish fails (package.json, CHANGELOG.md)
    • Only release-related files are restored, preserving any other local changes Why this matters: Previously, if publish failed (e.g., authentication error, OTP required), the git commit and tags were already created and pushed to remote, making it impossible to retry cleanly. Now, if publish fails, your repository stays in a clean state and you can simply retry the command. The rollback is smart: it only restores files that were modified by the bump and changelog steps, leaving your other work untouched.
  • Detect OTP errors from npm two-factor authentication messages (596dcfe)

    The interactive OTP prompt now works correctly when publishing to npm with two-factor authentication enabled. Previously, it would fail to detect OTP requirements and throw an error instead of asking for your code.

❤️ Contributors

v0.2.7...v0.2.8

compare changes

🩹 Fixes

  • Prevent incorrect version bumps from incompatible future tags (2ca91e4)

    When bumping a stable version (e.g., 4.1.1 → 4.1.2), the system could incorrectly use tags from future major versions (e.g., v5.0.0-beta.0) as reference points, causing version calculation errors. This fix introduces intelligent tag filtering that:

    • Filters out tags with major versions higher than the current version
    • Filters out prerelease tags when bumping stable to stable
    • Preserves prerelease tags when working with prerelease versions Usage: No changes required - the filtering is automatic based on your current package version.

❤️ Contributors

v0.2.6...v0.2.7

compare changes

💅 Refactors

  • Log errors in cli (63d6418)
  • Rename option configName of loadRelizyConfig to configFile (a720569)

📦 Build

❤️ Contributors

v0.2.5...v0.2.6

compare changes

🩹 Fixes

  • docs: Correct config examples (07248ad)
  • Config type declaration - types is not required - #11 (#11)
  • Exclude commits for untracked packages to avoid incorrect version updates (27e3d91)

❤️ Contributors

v0.2.6-beta.1...v0.2.6-beta.2

compare changes

🩹 Fixes

  • docs: Correct config examples (50d1998)
  • Config type declaration - types is not required - #11 (#11)
  • docs: Correct config examples (07248ad)
  • Config type declaration - types is not required - #11 (#11)
  • Exclude commits for untracked packages to avoid incorrect version updates (27e3d91)

❤️ Contributors

v0.2.6-beta.0...v0.2.6-beta.1

compare changes

No relevant changes since last release

v0.2.5...v0.2.6-beta.0

compare changes

🩹 Fixes

  • docs: Correct config examples (50d1998)
  • Config type declaration - types is not required - #11 (#11)

❤️ Contributors

v0.2.4...v0.2.5

compare changes

🚀 Features

  • Add option to skip git tag creation during release (5fe056d)

    Allow users to disable tag creation during release using the --no-git-tag flag. Useful when you want to publish and push commits without creating git tags. Usage: relizy release --no-git-tag

  • docs: Document gitTag option and improve release examples (13f9d32)

  • Publish - add optional safety check to check package registry authentication (0d9c2e0)

    • Only for npm and pnpm (not yarn and bun)
    • Is disabled by default
    • To enable it, set 'config.publish.safety' to true

🩹 Fixes

  • Changelog generation with wrong tags (15154ad)
  • Exclude modify files from commit body (9f60547)
  • Improve checking of package to bump before running release (f70e1eb)
  • Do not compute new version of root package in independent mode (17a6ff2)
  • Get github user profiles only if its github release (d38e61e)
  • docs: Correct package.json config example (0ac9b1b)
  • Publish - print new version instead the old in publish log (ead28af)
  • Don't throw an error when a folder in glob patterns has not package.json, ignore the package instead (0f341aa)
  • Don't throw an error when a folder in glob patterns has not package.json, ignore the package instead (271ce5f)
  • Bump - don't exit with error when no relevant commits to bump (a5a58f5)
  • Release - errors when release stable version from prerelease (a86a2e4)

💅 Refactors

  • Use a log debug when version has changed preid" (f0e658c)
  • Improve circular dependencies detection (bde3725)
  • Bump - improve confirm prompt with data (c49f111)
  • Improve logs while bumping package version (89f5f73)
  • Improve publication logs to know exactly what is being published (aa602ba)

📖 Documentation

❤️ Contributors

v0.2.5-beta.13...v0.2.5-beta.14

compare changes

💅 Refactors

  • Improve publication logs to know exactly what is being published (56e0a9b)

❤️ Contributors

v0.2.5-beta.12...v0.2.5-beta.13

compare changes

🚀 Features

  • Publish - add optional safety check to check package registry authentication (ff81c7a)
    • Only for npm and pnpm (not yarn and bun)
    • Is disabled by default
    • To enable it, set 'config.publish.safety' to true

💅 Refactors

  • Improve logs while bumping package version (493d403)

❤️ Contributors

v0.2.5-beta.6...v0.2.5-beta.12

compare changes

🚀 Features

  • Add option to skip git tag creation during release (9700ccf)

    Allow users to disable tag creation during release using the --no-git-tag flag. Useful when you want to publish and push commits without creating git tags. Usage: relizy release --no-git-tag

  • docs: Document gitTag option and improve release examples (91ee4c3)

🩹 Fixes

  • docs: Correct package.json config example (2294e31)
  • Publish - print new version instead the old in publish log (3fc5c07)
  • Don't throw an error when a folder in glob patterns has not package.json, ignore the package instead (757acae)
  • Don't throw an error when a folder in glob patterns has not package.json, ignore the package instead (337303f)
  • Bump - don't exit with error when no relevant commits to bump (f0cf9ce)
  • Release - errors when release stable version from prerelease (ee87638)

💅 Refactors

  • Bump - improve confirm prompt with data (d8b5788)

❤️ Contributors

v0.2.5-beta.6...v0.2.5-beta.10

compare changes

🚀 Features

  • Add option to skip git tag creation during release (9700ccf)

    Allow users to disable tag creation during release using the --no-git-tag flag. Useful when you want to publish and push commits without creating git tags. Usage: relizy release --no-git-tag

  • docs: Document gitTag option and improve release examples (91ee4c3)

🩹 Fixes

  • docs: Correct package.json config example (2294e31)
  • Publish - print new version instead the old in publish log (3fc5c07)
  • Don't throw an error when a folder in glob patterns has not package.json, ignore the package instead (757acae)
  • Don't throw an error when a folder in glob patterns has not package.json, ignore the package instead (337303f)

💅 Refactors

  • Bump - improve confirm prompt with data (d8b5788)

❤️ Contributors

v0.2.5-beta.6...v0.2.5-beta.9

compare changes

🚀 Features

  • Add option to skip git tag creation during release (9700ccf)

    Allow users to disable tag creation during release using the --no-git-tag flag. Useful when you want to publish and push commits without creating git tags. Usage: relizy release --no-git-tag

  • docs: Document gitTag option and improve release examples (91ee4c3)

🩹 Fixes

  • docs: Correct package.json config example (2294e31)
  • Publish - print new version instead the old in publish log (3fc5c07)
  • Don't throw an error when a folder in glob patterns has not package.json, ignore the package instead (757acae)

💅 Refactors

  • Bump - improve confirm prompt with data (d8b5788)

❤️ Contributors

v0.2.5-beta.6...v0.2.5-beta.8

compare changes

🚀 Features

  • Add option to skip git tag creation during release (9700ccf)

    Allow users to disable tag creation during release using the --no-git-tag flag. Useful when you want to publish and push commits without creating git tags. Usage: relizy release --no-git-tag

  • docs: Document gitTag option and improve release examples (91ee4c3)

🩹 Fixes

  • docs: Correct package.json config example (2294e31)
  • Publish - print new version instead the old in publish log (3fc5c07)

❤️ Contributors

v0.2.5-beta.6...v0.2.5-beta.7

compare changes

🚀 Features

  • Add option to skip git tag creation during release (9700ccf)

    Allow users to disable tag creation during release using the --no-git-tag flag. Useful when you want to publish and push commits without creating git tags. Usage: relizy release --no-git-tag

  • docs: Document gitTag option and improve release examples (91ee4c3)

🩹 Fixes

  • docs: Correct package.json config example (2294e31)

❤️ Contributors

v0.2.5-beta.5...v0.2.5-beta.6

compare changes

🩹 Fixes

  • Get github user profiles only if its github release (9f7c67c)

📖 Documentation

❤️ Contributors

v0.2.5-beta.4...v0.2.5-beta.5

compare changes

🩹 Fixes

  • Do not compute new version of root package in independent mode (3be33db)

❤️ Contributors

v0.2.5-beta.3...v0.2.5-beta.4

compare changes

💅 Refactors

  • Improve circular dependencies detection (1cd0ec7)

❤️ Contributors

v0.2.5-beta.2...v0.2.5-beta.3

compare changes

🩹 Fixes

  • Improve checking of package to bump before running release (560dbe1)

❤️ Contributors

v0.2.5-beta.1...v0.2.5-beta.2

compare changes

💅 Refactors

  • Use a log debug when version has changed preid" (1350fc4)

❤️ Contributors

v0.2.5-beta.0...v0.2.5-beta.1

compare changes

🩹 Fixes

  • Exclude modify files from commit body (e51fab7)

❤️ Contributors

v0.2.4...v0.2.5-beta.0

compare changes

🩹 Fixes

  • Changelog generation with wrong tags (03f3959)

❤️ Contributors

v0.2.4

compare changes

💅 Refactors

  • Add missing 'v' charac before version in default commit message template (57f5376)

📖 Documentation

  • Update README with documentation links (458ab03)

❤️ Contributors

v0.2.3

compare changes

💅 Refactors

  • Use isInCI utility method to disable OTP prompt (npm) (171f957)
  • Use isInCI utility method to disable OTP prompt (npm) (34f3262)

❤️ Contributors

v0.2.3-alpha.0

compare changes

💅 Refactors

  • Use isInCI utility method to disable OTP prompt (npm) (171f957)

❤️ Contributors

v0.2.2

compare changes

🩹 Fixes

  • Changelog title and compare link generation (690dcaf)

  • Handle prerelease version preid changes correctly (31ab35e)

    When changing prerelease preid (e.g. alpha → beta), the function was incorrectly detecting the release type from commits and bumping the version (e.g. 1.0.0-alpha.5 → 1.1.0-beta.0 instead of 1.0.0-beta.0). Now it correctly returns 'prerelease' to keep the version in the same release line while only updating the preid identifier.

  • Changelog title and compare link generation (9b8fcfc)

  • Handle prerelease version preid changes correctly (1e566a9)

    When changing prerelease preid (e.g. alpha → beta), the function was incorrectly detecting the release type from commits and bumping the version (e.g. 1.0.0-alpha.5 → 1.1.0-beta.0 instead of 1.0.0-beta.0). Now it correctly returns 'prerelease' to keep the version in the same release line while only updating the preid identifier.

💅 Refactors

  • Rename 'after' hook to 'success' (a0fe54c)

    The 'after' prefix was ambiguous and could be confused with timing. 'success' is more explicit and clearly indicates that the hook is executed when a step completes successfully. This aligns with the existing 'error' hook for failed steps.

  • Rename 'after' hook to 'success' (b238ad5)

    The 'after' prefix was ambiguous and could be confused with timing. 'success' is more explicit and clearly indicates that the hook is executed when a step completes successfully. This aligns with the existing 'error' hook for failed steps.

❤️ Contributors

v0.2.2-beta.1

compare changes

🩹 Fixes

  • Handle prerelease version preid changes correctly (31ab35e)

    When changing prerelease preid (e.g. alpha → beta), the function was incorrectly detecting the release type from commits and bumping the version (e.g. 1.0.0-alpha.5 → 1.1.0-beta.0 instead of 1.0.0-beta.0). Now it correctly returns 'prerelease' to keep the version in the same release line while only updating the preid identifier.

❤️ Contributors

v0.2.2-beta.0

compare changes

No relevant changes since last release

v0.2.1-alpha.0

compare changes

🩹 Fixes

  • Changelog title and compare link generation (690dcaf)

💅 Refactors

  • Rename 'after' hook to 'success' (a0fe54c)

    The 'after' prefix was ambiguous and could be confused with timing. 'success' is more explicit and clearly indicates that the hook is executed when a step completes successfully. This aligns with the existing 'error' hook for failed steps.

❤️ Contributors

v0.1.0...v0.2.0

🚀 Features

  • relizy: Add lifecycle hooks system (20633be)

    Implement comprehensive lifecycle hooks system allowing users to execute custom scripts at specific stages of the release workflow. Hooks support:

    • String commands (shell scripts)
    • JavaScript/TypeScript functions
    • Three hook types: before, after, error
    • Six lifecycle steps: bump, changelog, commit-and-tag, push, publish, provider-release
    • Special hook: generate:changelog for customizing changelog generation Add CI environment detection utilities (isInCI, getCIName) to support conditional hook execution in CI/CD pipelines.
  • relizy: Add lifecycle hooks system (eedda3a)

    Implement comprehensive lifecycle hooks system allowing users to execute custom scripts at specific stages of the release workflow. Hooks support:

    • String commands (shell scripts)
    • JavaScript/TypeScript functions
    • Three hook types: before, after, error
    • Six lifecycle steps: bump, changelog, commit-and-tag, push, publish, provider-release
    • Special hook: generate:changelog for customizing changelog generation Add CI environment detection utilities (isInCI, getCIName) to support conditional hook execution in CI/CD pipelines.

💅 Refactors

  • relizy: Improve type definitions and documentation (ddd2d82)

    Improve TypeScript type definitions and JSDoc documentation across core modules. Export utility types (HookType, HookStep) for external use. Clarify configuration interfaces with better naming and comments.

  • relizy: Improve type definitions and documentation (4a3792f)

    Improve TypeScript type definitions and JSDoc documentation across core modules. Export utility types (HookType, HookStep) for external use. Clarify configuration interfaces with better naming and comments.

❤️ Contributors

v0.1.0...v0.2.0-beta.0

🚀 Features

  • relizy: Add lifecycle hooks system (20633be)

    Implement comprehensive lifecycle hooks system allowing users to execute custom scripts at specific stages of the release workflow. Hooks support:

    • String commands (shell scripts)
    • JavaScript/TypeScript functions
    • Three hook types: before, after, error
    • Six lifecycle steps: bump, changelog, commit-and-tag, push, publish, provider-release
    • Special hook: generate:changelog for customizing changelog generation Add CI environment detection utilities (isInCI, getCIName) to support conditional hook execution in CI/CD pipelines.

🩹 Fixes

  • Exclude resources files (svg, png, etc) from commit body in generated changelog (6094991)

💅 Refactors

  • relizy: Add lifecycle hooks system (5b090f6)

    Add comprehensive hook system for all release lifecycle events:

    • New hooks: before/after/error for bump, changelog, commit-and-tag, push, publish, provider-release
    • Support both function and shell command hooks
    • Hooks configurable in relizy.config.ts under hooks property
    • Automatic hook execution at each lifecycle step
  • relizy: Add safety checks for provider releases (c7c37b5)

    Add safety validation before executing provider releases:

    • Check Git provider token availability before release
    • Validate provider type (github/gitlab)
    • New CLI flag: --no-safety-check to disable checks
    • Safety checks configurable via safetyCheck option in config
    • Fail fast with clear error messages when tokens missing
  • relizy: Make monorepo config optional for standalone packages (6b3f7ef)

    Allow relizy to work without monorepo configuration for standalone packages:

    • Config file now optional - falls back to standalone mode
    • loadRelizyConfig renamed from loadMonorepoConfig
    • No error when config file missing (unless --config explicitly provided)
    • Display "standalone" when no versionMode defined
    • Update all imports and type references across codebase
  • relizy: Improve CLI options and naming consistency (2473280)

    Improve CLI interface with better naming and new options:

    • Rename --no-release to --no-provider-release for clarity
    • Add --provider flag to manually specify git provider (github/gitlab)
    • Make --config flag optional (defaults to standalone mode)
    • Update all related config properties: release.release → release.providerRelease
    • Consistent option naming across all commands
  • relizy: Add interactive OTP prompt for npm publish (cc8233a)

    Add automatic OTP handling for npm packages requiring 2FA:

    • Prompt user for OTP when npm returns OTP error
    • Store OTP in session to reuse across multiple package publishes
    • 90-second timeout on OTP input prompt
    • Detect CI environment and fail gracefully without prompting
    • Retry publish with --otp flag after receiving code
    • Support OTP priority: dynamic > session > config
  • relizy: Extract OTP logic into focused functions (73eae0b)

    Improve code maintainability by breaking down publishPackage:

    • Extract isOtpError(): detect OTP-related errors
    • Extract promptOtpWithTimeout(): handle OTP input with timeout
    • Extract handleOtpError(): manage CI detection and OTP prompting
    • Extract executePublishCommand(): execute npm publish command
    • Reduce complexity of main publishPackage function
  • relizy: Improve type definitions and documentation (ddd2d82)

    Improve TypeScript type definitions and JSDoc documentation across core modules. Export utility types (HookType, HookStep) for external use. Clarify configuration interfaces with better naming and comments.

📖 Documentation

  • docs: Global documentation improvements (d8572dd)

  • Update configuration examples and references (748140a)

    Update documentation to reflect new naming conventions:

    • Replace changelog.config.ts references with relizy.config.ts
    • Update CLAUDE.md config references
  • docs: Update and improve documentation (e1eb533)

  • Add CONTRIBUTING.md doc (1ec1bea)

❤️ Contributors

v0.0.0...v0.1.0

🚀 Features

📖 Documentation

  • Add documentation website of Relizy (ec156b0)

❤️ Contributors

Released under the MIT License.