This release decouples reckon from grgit, using direct JGit for version inference and CLI Git for tag creation and pushes. The motivation is selfishly just to simplify maintenance of reckon.
For most cases, this should be a transparent change, but it does have a few potentially user-facing effects:
You have to have git installed (which you almost certainly do)
If you use reckonTagPush, you must have your credentials set up already in some way that won't require a prompt (basic auth creds, SSH agent, whatever). The old org.ajoberstar.grgit.* properties or GRGIT_* environment variables are no longer used.
Generally, we will be using the current user's identity (user.email and user.name) to create the tag. In cases where that information is not present (for example, in GitHub Actions), we'll use the author identity from the most recent commit.
This release contains a couple other small changes as well, see below.
Breaking Changes
#196 grgit is completely removed from reckon (affecting authentication and tagging)
#195defaultInferredScope no longer defaults to minor and must be set explicitly
Enhancements
#175 The Scope enum is now accepted for defaultInferredScope and parallelBranchScope
Fixes
#91 You can run your build with --info to see status details from JGit if reckon fails due to an unclean repo
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
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)
</tr></table>
... (truncated)
Commits
c279905 Merge pull request #196 from ajoberstar/no-grgit
cd28d1e patch: Close Git repo when done parsing version
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Bumps org.ajoberstar.reckon:reckon-gradle from 0.16.1 to 0.18.0.
Release notes
Sourced from org.ajoberstar.reckon:reckon-gradle's releases.
... (truncated)
Commits
c279905
Merge pull request #196 from ajoberstar/no-grgitcd28d1e
patch: Close Git repo when done parsing versiond3d5070
Update documentationb2f51fb
major: Remove default setting for defaultInferredScopea4490a8
minor: Support the Scope enum on the extension5ed6f3b
patch: Log status when repo is uncleandae336c
major: Remove all use of grgit5a5eb77
Use reckon settings plugin0fc3530
Remove unused imports3398bb8
Update actions in workflowsDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)