Releases: PaulHatch/semantic-version
v5.0.0-beta
Second Alpha Release for Version 5.0.0
This update includes a breaking change for version 5, versions will now be sorted using the version number rather than author date. This method should be more reliable overall for a large number of edge cases, however it comes with the caveat that if your tags are not in order for some reason, the "wrong" tag could be chosen. This change is part of a change to the method that fixes issues reported in issue 49, last version tag is incorrect where tags on commits immediately preceding merged branches were not detected.
This release also includes the additional metadata for issue #38.
Version 5.0.0
Version 5 is a full rewrite of semantic-version which restructures the action as a set of modular components, switching from JavaScript to TypeScript to make further development and extension easier by providing interfaces to implement distinct functions. This action started as a short, relatively opinionated script. As more features have been requested and added, this approach has proven insufficient. In version 5, functionality is implemented in three providers/resolvers that obtain the repository data, a classifier that interprets that data and produces the result data, and three formatters that transform the result into the version tag, the version string itself, and turns a list of commit authors into an output string. Overall this version is intended to be easier to extend, test, fork, and understand and contribute to.
Important Changes
- A list of authors for a commit for a release are now included in the output, by default formatted as a CSV but JSON is also available, sorted in descending order of the number of commits they made since the last release. This can be useful to include in a release, for example as a Kubernetes annotation, to route alerts or allow a change author to be quickly contacted.
- Commit message body can now be searched as well. This defaults to off right now to avoid breaking existing builds.
- Short Tags support has been fully dropped. The tagging convention is not part of the semver spec and in retrospect I think I misunderstood how the most common conventions used. It may reappear in a future release. This is the only major breaking change.
This is an alpha release, feedback is appreciated.
Change Output Text
Output version will now be created from the supplied version template.
Allow Slashes in Tag Prefixes
This release fixes an issue with tag prefixes that prevented them from containing a forward slash.
Fix for Short Tags Disabled
This version fixes an issue where certain "full" tags were not recognized when the short_tags flag was disabled.
Deprecate Branch Option
This release (re)introduces support for HEAD as the branch parameter, which is now the default and recommended setting.
The branch setting should be considered deprecated and may be removed in a future release. If you have a use case that requires branch support, please open an issue.
Fix Tag Output
This version fixes the tag output to include the namespace if set.
Thanks to @dannysauer for this contribution.
Support for Regular Expressions
major_pattern
andminor_pattern
inputs now support regular expression if wrapped in/
- Fix logic bug that prevented matching tags from being properly identified for increment calculations of tagged commits
Fix for Tagged Commits
This release fixes issue #16. When a commit is already tagged with a version at the time the action runs, that tag version is used, however previously this also caused the increment value to always be zero. With this change the increment value will be preserved only if the tagged version matches what the expected version would have been. If the tag applied to the current commit overrides the version expected, the increment will be set to zero since this is a new version.