Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update plugin org.ajoberstar.reckon to v0.18.1 #15

Merged
merged 2 commits into from
Dec 8, 2023

Conversation

renovate[bot]
Copy link

@renovate renovate bot commented Dec 7, 2023

Mend Renovate

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
org.ajoberstar.reckon 0.13.0 -> 0.18.1 age adoption passing confidence

Release Notes

ajoberstar/reckon (org.ajoberstar.reckon)

v0.18.1

Compare Source

Small patch release to update dependencies and resolve a deprecation.

Breaking Changes

None

Enhancements

None

Fixes

  • #​199 Update Gradle and dependencies
  • #​198 Remove use of deprecated forUseAtConfigurationTime function from Gradle

Deprecations

None

Compatibility

Tested against the following versions.

Java Version Gradle Versions
11 7.0.2, 7.6.1, 8.0.2, 8.4
17 7.3.3, 7.6.1, 8.0.2, 8.4
21 8.4

v0.18.0

Compare Source

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)
  • #​195 defaultInferredScope 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

v0.17.0

Compare Source

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

v0.16.1

Compare Source

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

v0.16.0

Compare Source

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

v0.15.0

Compare Source

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

v0.14.0

Compare Source

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

v0.13.2

Compare Source

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

v0.13.1

Compare Source

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

Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Enabled.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Mend Renovate. View repository job log here.

@renovate renovate bot enabled auto-merge December 7, 2023 14:12
@renovate renovate bot force-pushed the renovate/org.ajoberstar.reckon-0.x branch 3 times, most recently from d5aca74 to 8b24be8 Compare December 8, 2023 09:09
@renovate renovate bot force-pushed the renovate/org.ajoberstar.reckon-0.x branch from 8b24be8 to 197a952 Compare December 8, 2023 09:10
Copy link
Author

renovate bot commented Dec 8, 2023

Edited/Blocked Notification

Renovate will not automatically rebase this PR, because it does not recognize the last commit author and assumes somebody else may have edited the PR.

You can manually request rebase by checking the rebase/retry box above.

Warning: custom changes will be lost.

@renovate renovate bot merged commit c79ab1a into main Dec 8, 2023
4 checks passed
@renovate renovate bot deleted the renovate/org.ajoberstar.reckon-0.x branch December 8, 2023 09:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant