0.17.0
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 insettings.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 |