From 305899e7da1bd3a8bf0cd32be41816ea490b31f3 Mon Sep 17 00:00:00 2001 From: Paul Hatcherian <1835615+PaulHatch@users.noreply.github.com> Date: Thu, 10 Jul 2025 08:21:26 +0200 Subject: [PATCH] Add changelog --- CHANGELOG.md | 281 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 281 insertions(+) create mode 100644 CHANGELOG.md diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..ba9e824 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,281 @@ +# 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 \ No newline at end of file