Skip to content

Releases: ajoberstar/reckon

0.17.0-beta.1

14 Aug 03:35
b85f526
Compare
Choose a tag to compare
0.17.0-beta.1 Pre-release
Pre-release

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

18 Feb 04:51
Compare
Choose a tag to compare

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

  • #147 and #174 Soft fail if reckon extension isn't configured instead of throwing an exception

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

12 Feb 23:58
a0f894b
Compare
Choose a tag to compare

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

12 Feb 17:24
67a17ea
Compare
Choose a tag to compare

Many new configuration options on the ReckonExtension addressing long asked for features.

Breaking Changes

None

Enhancements

  • #54 Added reckon.tagParser and reckon.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

10 Feb 18:43
Compare
Choose a tag to compare

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() and reckon.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

10 Feb 05:44
86ae034
Compare
Choose a tag to compare
0.14.0-rc.1 Pre-release
Pre-release

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() and reckon.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

09 Feb 15:59
Compare
Choose a tag to compare

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

06 Dec 21:05
Compare
Choose a tag to compare

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

06 Dec 20:53
Compare
Choose a tag to compare
0.13.1-rc.3 Pre-release
Pre-release

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

20 Sep 00:23
3e92d81
Compare
Choose a tag to compare

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