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

281 lines
No EOL
12 KiB
Markdown

# Changelog
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [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
[5.4.0]: https://github.com/PaulHatch/semantic-version/compare/v5.3.0...v5.4.0
[5.3.0]: https://github.com/PaulHatch/semantic-version/compare/v5.2.1...v5.3.0
[5.2.1]: https://github.com/PaulHatch/semantic-version/compare/v5.2.0...v5.2.1
[5.2.0]: https://github.com/PaulHatch/semantic-version/compare/v5.1.0...v5.2.0
[5.1.0]: https://github.com/PaulHatch/semantic-version/compare/v5.0.3...v5.1.0
[5.0.3]: https://github.com/PaulHatch/semantic-version/compare/v5.0.2...v5.0.3
[5.0.2]: https://github.com/PaulHatch/semantic-version/compare/v5.0.1...v5.0.2
[5.0.1]: https://github.com/PaulHatch/semantic-version/compare/v5.0.0...v5.0.1
[5.0.0]: https://github.com/PaulHatch/semantic-version/compare/v4.0.3...v5.0.0
[4.0.3]: https://github.com/PaulHatch/semantic-version/compare/v4.0.2...v4.0.3
[4.0.2]: https://github.com/PaulHatch/semantic-version/compare/v4.0.1...v4.0.2
[4.0.1]: https://github.com/PaulHatch/semantic-version/compare/v4...v4.0.1
[4.0.0]: https://github.com/PaulHatch/semantic-version/compare/v3.3.1...v4
[3.3.1]: https://github.com/PaulHatch/semantic-version/compare/v3.3...v3.3.1
[3.3.0]: https://github.com/PaulHatch/semantic-version/compare/v3.2.1...v3.3
[3.2.1]: https://github.com/PaulHatch/semantic-version/compare/v3.2...v3.2.1
[3.2.0]: https://github.com/PaulHatch/semantic-version/compare/v3.1.2...v3.2
[3.1.2]: https://github.com/PaulHatch/semantic-version/compare/v3.1.1...v3.1.2
[3.1.1]: https://github.com/PaulHatch/semantic-version/compare/v3.1...v3.1.1
[3.1.0]: https://github.com/PaulHatch/semantic-version/compare/v3...v3.1
[3.0.0]: https://github.com/PaulHatch/semantic-version/compare/v2.1.1...v3
[2.1.1]: https://github.com/PaulHatch/semantic-version/compare/v2.1...v2.1.1
[2.1.0]: https://github.com/PaulHatch/semantic-version/compare/v2...v2.1
[2.0.0]: https://github.com/PaulHatch/semantic-version/compare/v1.0.1...v2
[1.0.1]: https://github.com/PaulHatch/semantic-version/compare/v1...v1.0.1
[1.0.0]: https://github.com/PaulHatch/semantic-version/releases/tag/v1