semantic-version/CHANGELOG.md
Paul Hatcherian 305899e7da Add changelog
2025-07-10 08:21:26 +02:00

12 KiB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

5.4.0 - 2024-01-31

Changed

  • Updated to Node.js v20 runtime
  • Updated all dependencies to latest versions

5.3.0 - 2023-09-30

Added

  • Branch-based versioning mode (version_from_branch input) - Major/minor versions can now be derived from branch names (e.g., release/v1, release/1.2). Only considers tags matching the branch version, useful for maintaining multiple release lines
  • Enhanced diagnostics documentation in contributing guide
  • Improved warning messages to clarify when no tags are found vs when tags exist but don't match criteria

Fixed

  • GITHUB_REF_NAME environment variable no longer causes failures during testing
  • bump_each_commit now properly respects enable_prerelease_mode setting
  • Non-version branches are properly ignored when using branch-based versioning

Changed

  • Updated Jest configuration for better test isolation
  • Rebuilt distribution files with latest changes

Deprecated

  • use_branches input is deprecated and will be removed in v6.0.0 - use version_from_branch instead

5.2.1 - 2023-08-24

Fixed

  • Diagnostic mode output was not being properly included in the action's output, preventing debugging

5.2.0 - 2023-08-20

Added

  • Debug/diagnostic mode (debug input) - Captures and outputs diagnostic information for troubleshooting version calculations. Useful when the source repository isn't available for direct inspection

5.1.0 - 2023-08-09

Added

  • Patch pattern filtering (bump_each_commit_patch_pattern input) - When using bump_each_commit, patch version only increments if commit matches specified pattern. Supports JavaScript regex syntax with flags (e.g., /fix\(.*\)/i)
  • Pre-release mode (enable_prerelease_mode input) - Prevents automatic major version bumps for 0.x.x versions. When enabled, "major" changes become "minor" and "minor" become "patch", preventing premature 1.0.0 releases
  • is_tagged output - Boolean indicating if the current commit already has a version tag
  • Previous version commit information outputs (previous_commit, previous_version) for better version tracking

Fixed

  • Corrected tag ordering when determining previous version (was using reverse order incorrectly)
  • Increased test timeout for Windows environments to prevent CI failures
  • Fixed test failures in environments with global GPG signing enabled
  • Documentation typo: "version" output name was incorrectly documented

5.0.3 - 2023-01-10

Fixed

  • Pre-release tags on current commit were not being handled correctly when determining version increments
  • Fixed incorrect parameter name mapping that was causing action failures

Changed

  • Updated dependencies to latest versions

5.0.2 - 2022-12-31

Fixed

  • Build output mapping was incorrect, causing the action to fail when generating outputs

5.0.1 - 2022-12-27

Fixed

  • Tag prefix and namespace values are now properly escaped when constructing regex patterns, preventing regex errors with special characters
  • Fixed unescaped dots in regex patterns that could cause incorrect matching
  • Test suite now consistently uses 'master' as branch name to avoid CI failures

Added

  • Syntax highlighting for code examples in documentation
  • Contributing.md guide for developers
  • Test coverage for namespaces containing forward slashes

Changed

  • Documentation updated to reflect correct input parameter names
  • Version calculation no longer limits the number of tags retrieved, ensuring accurate version determination in repos with many tags

5.0.0 - 2022-12-20 - Major Rewrite

Added

  • Complete TypeScript rewrite - Action rewritten from JavaScript to TypeScript with modular architecture
  • Author tracking - New authors output lists all commit authors since last release, formatted as CSV (JSON option available via user_format_type)
  • Commit body searching - search_commit_body input allows searching commit message bodies for version patterns, not just the subject line
  • Branch support - Can now use branch names instead of tags for versioning with use_branches input
  • Improved outputs - Additional metadata including version_type, commit hashes, and more detailed version information
  • Namespace support without tags - Namespaces now work even when no existing tags match the namespace

Fixed

  • Pre-release tags (alpha, beta, rc) are now properly excluded from version calculations unless explicitly included
  • Fixed issue where current commit's tag wasn't properly considered when calculating previous version
  • Tag ordering now uses git's version sort instead of author date, providing more accurate version ordering

Changed

  • Architecture completely redesigned with providers, resolvers, classifiers, and formatters for better extensibility
  • Short tag support has been completely removed (was deprecated in v4)
  • Updated to actions/core@1.10.0 and modernized all dependencies
  • Node.js 16 compatibility

4.0.3 - 2021-10-29

Changed

  • Version output now properly uses the user-supplied version format template combined with namespace
  • Updated dependencies and improved test coverage
  • Documentation clarifications for better user understanding

4.0.2 - 2021-04-22

Fixed

  • Tag prefixes can now contain forward slashes (e.g., releases/v), enabling more flexible tagging schemes

4.0.1 - 2021-02-25

Fixed

  • Fixed regex pattern for matching full version tags when short_tags is disabled

4.0.0 - 2021-02-08

Changed

  • Breaking: Branch parameter now defaults to HEAD instead of requiring explicit branch name
  • Branch names no longer include origin/ prefix, simplifying branch-based versioning
  • Reintroduced support for using HEAD as branch parameter (was removed in v3)

Deprecated

  • branch input is now deprecated in favor of automatic HEAD detection

3.3.1 - 2021-01-28

Added

  • version_tag output now includes namespace value, making it easier to identify versioned releases in multi-project repositories

Changed

  • Improved documentation clarity for namespace feature
  • Enhanced readme formatting and examples

3.3.0 - 2021-01-23

Added

  • Regular expression support for major_pattern and minor_pattern - Wrap patterns in / to use regex (e.g., /breaking:\s/i)

Fixed

  • Fixed logic that prevented version tags from being properly matched when calculating increments

3.2.1 - 2021-01-16

Fixed

  • Tagged commits now properly preserve their increment value instead of resetting to 0
  • SVG diagrams now have proper background color for better visibility

Changed

  • Updated dependencies
  • Documentation improvements

3.2.0 - 2020-12-20

Added

  • bump_each_commit mode - Every commit creates a new patch version, useful for continuous deployment scenarios
  • short_tags toggle - When set to false, only full semantic version tags (e.g., v1.2.3) are considered, ignoring short tags (e.g., v1)

Changed

  • Improved documentation with visual diagrams
  • Removed deprecated parameters from documentation
  • Enhanced readme clarity with better examples

3.1.2 - 2020-10-07

Fixed

  • Full Windows support - Fixed line ending issues and command execution on Windows
  • Action now properly exits when current commit already has a version tag
  • Current commit's tag is now used as the version when applicable

Added

  • Complete Windows support in test suite with OS-specific temp directories
  • Windows runner added to CI pipeline alongside Linux

Changed

  • Commands now run silently to reduce log noise
  • Improved error handling for command execution failures
  • Added warning about actions/checkout@v2 shallow clone behavior that can affect version detection

3.1.1 - 2020-09-05

Fixed

  • Change detection now works correctly when no previous tags exist in the repository

3.1.0 - 2020-09-05

Added

  • version_tag output - Returns the complete version tag including prefix and namespace

Changed

  • Improved logging for change detection to help with debugging
  • Command execution failures are now logged as info rather than errors (they're handled gracefully)
  • Updated package dependencies

3.0.0 - 2020-09-02 - Multi-Project Support

Added

  • Namespace support (namespace input) - Enables multiple projects/components in same repo with isolated versioning
  • Improved mono-repo support - Each namespace maintains its own version sequence

Changed

  • Breaking: change_path input now filters which paths trigger version changes rather than just detecting changes
  • Removed verbose action output for cleaner logs
  • Modernized codebase and dependencies for GitHub Actions runner compatibility

Removed

  • Deprecated action inputs from v2

2.1.1 - 2020-02-07

Fixed

  • Release link generation now uses correct branch name format

2.1.0 - 2020-01-25

Added

  • Path-based change detection (change_path input) - Specify paths to monitor for changes, useful for mono-repos where not all changes should trigger version bumps

Changed

  • Release link now uses branch name from action input rather than GitHub environment variable
  • Release link is now output to action logs for visibility

2.0.0 - 2019-12-24

Changed

  • Breaking: Now uses git describe for more reliable tag detection instead of git log
  • Added warning when repository has no tags, helping users understand why versioning starts at 0.0.0

1.0.1 - 2019-12-11

Fixed

  • Empty tag prefixes are now supported (useful for repos that use plain version numbers without 'v' prefix)

Added

  • Documentation for version_format input parameter

1.0.0 - 2019-12-11 - Initial Release

Added

  • Automatic semantic versioning based on git commit history
  • Version bumping through commit message markers: (MAJOR) and (MINOR)
  • Customizable version output format via version_format input
  • Support for both short (v1) and full (v1.0.0) version tags
  • Increment counter for commits since last version tag
  • No manual version maintenance required - fully automated from git history