Skip to content

0.17.0

Compare
Choose a tag to compare
@ajoberstar ajoberstar released this 22 Apr 03:09
· 21 commits to main since this release

This release implements a new org.ajoberstar.reckon.settings plugin that can be used as an alternative to org.ajoberstar.reckon. This is applied in a settings.gradle instead of a build.gradle but is otherwise configured the same. By applying to Settings, it will run and be configured before any projects are evaluated, which should avoid the timing issues uncovered in #147. The settings plugin does not have the same "soft-fail" workaround that the project plugin has, as it should not be needed.

Additionally we have improvements to version inference logic. 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, you are able to set a parallelBranchScope to indicate how you use your parallel branches. For example, people use branches like maintenance/1.2.x should set it to MINOR. Users of branches like maintenance/2.x should set it to MAJOR.

When reckon identifies a conflict with a parallel branch, it will increment by the greater of the user-provided scope and parallelBranchScope.

 O abc123
 O abc124 (v1.2.0)
 | \
 |  O abc125 (v1.2.1)
 O abc126

In the old logic, commit abc126 would infer as 1.2.2-alpha.0.1+abc126 where in the new logic (with parallelBranchScope=MINOR) it would infer as 1.3.0-alpha.0.1+abc126.

Breaking Changes

  • #183 Insignificant versions will never use the parallel version avoidance logic. This is mainly targeted to benefit feature branches that aren't up to date with your main branch, however it can also affect the main branch if it hasn't been tagged since a parallel branch was created and tagged.

Enhancements

  • New org.ajoberstar.reckon.settings plugin that can be applied in settings.gradle as an alternative to the normal plugin. This ensures reckon gets configured before project plugins.

Fixes

  • #180 Parallel branch with two released versions will cause failure due to claimed version
  • #194 Version inference exceptions are no longer buried by the "soft-fail" logic in the project plugin

Deprecations

None

Compatibility

Tested against the following versions.

Java Version Gradle Versions
11 7.0.2, 7.6.1, 8.0.2, 8.1.1
17 7.3.3, 7.6.1, 8.0.2, 8.1.1