Releases: ajoberstar/reckon
0.17.0-beta.1
Our prior parallel version logic allowed reckon to increment by the requested scope a second time in order to avoid a parallel
version. However, if that version is also in the parallel branch, it would fail saying the version was already claimed.
In the new logic, if we bump the target normal in order to avoid a parallel version and that version is still in the parallel versions
list, we increment by a higher scope (i.e. by MAJOR if they requested MINOR or by MINOR if they requested PATCH).
This may resolve many of the bugs we had with parallel version handling.
The two unintuitive parts are that it may still not increment as far as someone wants in some cases. And in others someone could be surprised that we incremented by a higher scope than they asked for.
To deal with the latter, we may want to consider making a distinction between "soft" and "hard" scopes (i.e. did they explicitly ask for the scope or did it get inferred). This was clearer in the past, when "inferred" really only meant no input from the scope calc. However, with the new commit message scope calc, that's really more of a "soft" scope request than an explicit one. It's trickier because to the Reckoner there's no difference between commit message scope calcs and explicit user-requested scope calcs.
Breaking Changes
- #181 results in cases where reckon may increment with a higher scope than the user provided in order to avoid parallel versions. In past versions, this would have failed instead saying the version was already claimed
Enhancements
- None
Fixes
- #180 Parallel branch with two released versions will cause failure due to claimed version
Deprecations
None
Compatibility
Tested against the following versions.
Java Version | Gradle Versions |
---|---|
11 | 7.0.2, 7.5.1 |
17 | 7.3.3, 7.5.1 |
0.16.1
This provides a fix for NullPointerExceptions that have become more common with changes in Gradle 7.4 that stem from evaluation order issues and other plugins that call project.getVersion().toString()
at configuration time. This allows builds to work, though there is some small risk that some config in the project will have the incorrect version unspecified
instead of the desired version reckon would calculate.
In the cases where you see the following warning:
Project version evaluated before reckon was configured. Run with --info to see cause.
You can rerun the build with --info
to see the exception that would have been thrown in prior versions. This can help you track down which plugin is too eagerly evaluating the version, in case you want to try to fix that.
Breaking Changes
None
Enhancements
- None
Fixes
Deprecations
None
Compatibility
Tested against the following versions.
Java Version | Gradle Versions |
---|---|
11 | 7.0.2, 7.4 |
17 | 7.3.3, 7.4 |
0.16.0
The highlight of 0.16.0 is support for scope inference via commit messages. See the README for details.
General commit message format reckon looks for:
<scope>(optional area of codebase): rest of message
body is not used
Example:
major: Dropped support for Gradle 5
This is a breaking change reoving support for Gradle 5 due to use of a new feature in Gradle 6.
This feature is not limited to this convention alone, but this is the one I made easy to turn on.
Breaking Changes
None
Enhancements
- #172 Supports inferring scope from commit messages
- #72 Expose custom strategy methods for scope and stage calculation
Fixes
None
Deprecations
None
Compatibility
Tested against the following versions.
Java Version | Gradle Versions |
---|---|
11 | 7.0.2, 7.4 |
17 | 7.3.3, 7.4 |
0.15.0
Many new configuration options on the ReckonExtension
addressing long asked for features.
Breaking Changes
None
Enhancements
- #54 Added
reckon.tagParser
andreckon.tagWriter
to customize how versions are found from tags and named when created. This can be useful for monrepos. - #158 Added
reckon.tagMessage
to customize how tag messages are created - #115 Added
reckon.defaultInferredScope
to customize what scope is used if no input is provided - #89 Added
reckon.remote
to override which remote the tag is pushed to
Fixes
- #97 Grgit is applied via class now, which enables using reckon from a script plugin
Deprecations
None
Compatibility
Tested against the following versions.
Java Version | Gradle Versions |
---|---|
11 | 7.0.2, 7.4 |
17 | 7.3.3, 7.4 |
0.14.0
Upgrades to Grgit 5 and supports Gradle's configuration cache
Breaking Changes
- Upgrades to Grgit 5
- Drops support for Java 8 (due to Grgit upgrade)
- Drops support for Gradle <7
- Removes deprecated
reckon.setNormal()
andreckon.setStage()
methods
Enhancements
- Supports
--configuration-cache
- Reckon extension now has a
Provider<Version>
to allow access to the metadata of the version #156
Fixes
None
Deprecations
None
Compatibility
Tested against the following versions.
Java Version | Gradle Versions |
---|---|
11 | 7.0.2, 7.4 |
17 | 7.3.3, 7.4 |
0.14.0-rc.1
Upgrades to Grgit 5 and supports Gradle's configuration cache
Breaking Changes
- Upgrades to Grgit 5
- Drops support for Java 8 (due to Grgit upgrade)
- Drops support for Gradle <7
- Removes deprecated
reckon.setNormal()
andreckon.setStage()
methods
Enhancements
- Supports
--configuration-cache
- Reckon extension now has a
Provider<Version>
to allow access to the metadata of the version #156
Fixes
None
Deprecations
None
Compatibility
Tested against the following versions.
Java Version | Gradle Versions |
---|---|
11 | 7.0.2, 7.4 |
17 | 7.3.3, 7.4 |
0.13.2
Drop publishing directly to Gradle plugin portal to really ensure POM references static versions. Plugin is still published to Maven Central (which the Gradle plugin portal proxies), so no changes should be needed from consumers.
Breaking Changes
None
Enhancements
None
Fixes
- POM really no longer has a dynamic version reference, which could cause unexpected failures #168
Deprecations
None
Compatibility
Tested against the following versions.
Java Version | Gradle Versions |
---|---|
8 | 4.0.2, 4.10.3, 5.0, 5.6.4, 6.0.1, 6.9.2, 7.0.2, 7.4 |
11 | 5.0, 5.6.4, 6.0.1, 6.9.2, 7.0.2, 7.4 |
17 | 7.3.3, 7.4 |
0.13.1
Publish to Maven Central and ensure POM references static versions.
Breaking Changes
None
Enhancements
None
Fixes
- POM no longer has a dynamic version reference, which could cause unexpected failures
Deprecations
None
Compatibility
Tested against the following versions.
Java Version | Gradle Versions |
---|---|
8 | 4.0.2, 4.10.3, 5.0, 5.6.4, 6.0.1, 6.6.1, 6.7-rc-1 |
11 | 5.0, 5.6.4, 6.0.1, 6.6.1, 6.7-rc-1 |
15 | 6.3, 6.6.1, 6.7-rc-1 |
0.13.1-rc.3
Publish to Maven Central and ensure POM references static versions.
Breaking Changes
None
Enhancements
None
Fixes
- POM no longer has a dynamic version reference, which could cause unexpected failures
Deprecations
None
Compatibility
Tested against the following versions.
Java Version | Gradle Versions |
---|---|
8 | 4.0.2, 4.10.3, 5.0, 5.6.4, 6.0.1, 6.6.1, 6.7-rc-1 |
11 | 5.0, 5.6.4, 6.0.1, 6.6.1, 6.7-rc-1 |
15 | 6.3, 6.6.1, 6.7-rc-1 |
0.13.0
Update dependencies and confirming support for Gradle 6.6 and Java 15.
Breaking Changes
None
Enhancements
- Dependency updates
Fixes
None
Deprecations
None
Compatibility
Tested against the following versions.
Java Version | Gradle Versions |
---|---|
8 | 4.0.2, 4.10.3, 5.0, 5.6.4, 6.0.1, 6.6.1, 6.7-rc-1 |
11 | 5.0, 5.6.4, 6.0.1, 6.6.1, 6.7-rc-1 |
15 | 6.3, 6.6.1, 6.7-rc-1 |