reckon

Infer a project's version from your Git repository.

APACHE-2.0 License

Stars
185

Bot releases are visible (Hide)

reckon -

Published by ajoberstar over 5 years ago

A small change to allow pre-release versions to be built from a tagged final version. For example, if the current HEAD is tagged as 1.0.0 you previously could only rebuild 1.0.0 or release another final version like 1.0.1. Now you can release 1.0.1-SNAPSHOT or 1.1.0-rc.1.

Breaking Changes

None

Enhancements

  • Allow pre-releases to be built from a tagged final version.

Fixes

None

Deprecations

None

Compatibility

Tested against the following versions.

Java Version Gradle Versions
8 3.0, 3.5.1, 4.0, 4.10.3, 5.0, 5.4.1
11 5.0, 5.4.1
reckon -

Published by ajoberstar over 5 years ago

A small change to allow pre-release versions to be built from a tagged final version. For example, if the current HEAD is tagged as 1.0.0 you previously could only rebuild 1.0.0 or release another final version like 1.0.1. Now you can release 1.0.1-SNAPSHOT or 1.1.0-rc.1.

Breaking Changes

None

Enhancements

  • Allow pre-releases to be built from a tagged final version.

Fixes

None

Deprecations

None

Compatibility

Tested against the following versions.

Java Version Gradle Versions
8 3.0, 3.5.1, 4.0, 4.10.3, 5.0, 5.4.1
11 5.0, 5.4.1
reckon -

Published by ajoberstar over 5 years ago

This release is mainly to fix an issue with rebuilding an older version. However, there's also a change to more strictly enforce that history must contain contiguous versions.

Breaking Changes

  • Reckoner now fails if the base normal and base version are more than 1 major/minor/increment apart (related to #102).

Enhancements

None

Fixes

  • #108 Rebuilding an older tag could fail if the next highest minor is already released

Deprecations

None

Compatibility

Tested against the following versions.

Java Version Gradle Versions
8 3.0, 3.5.1, 4.0, 4.10.3, 5.0, 5.4.1
11 5.0, 5.4.1
reckon -

Published by ajoberstar over 5 years ago

This release is mainly to fix an issue with rebuilding an older version. However, there's also a change to more strictly enforce that history must contain contiguous versions.

Breaking Changes

  • Reckoner now fails if the base normal and base version are more than 1 major/minor/increment apart (related to #102).

Enhancements

None

Fixes

  • #108 Rebuilding an older tag could fail if the next highest minor is already released

Deprecations

None

Compatibility

Tested against the following versions.

Java Version Gradle Versions
8 3.0, 3.5.1, 4.0, 4.10.3, 5.0, 5.4.1
11 5.0, 5.4.1
reckon -

Published by ajoberstar almost 6 years ago

This is a breaking release to get to Grgit 3. Other than grgit's breaking changes everything else is staying the same.

Breaking Changes

  • Upgrade to grgit 3 for Gradle 5 support

Enhancements

None

Fixes

None

Deprecations

None

Compatibility

Tested against the following versions.

Java Version Gradle Versions
8 3.0, 3.5.1, 4.0, 4.10.2, 5.0-rc-3
9 4.2.1, 4.10.2, 5.0-rc-3
10 4.2.1, 4.10.2, 5.0-rc-3
reckon -

Published by ajoberstar almost 6 years ago

This is a breaking release to get to Grgit 3. Other than grgit's breaking changes everything else is staying the same.

Breaking Changes

  • Upgrade to grgit 3 for Gradle 5 support

Enhancements

None

Fixes

None

Deprecations

None

Compatibility

Tested against the following versions.

Java Version Gradle Versions
8 3.0, 3.5.1, 4.0, 4.10.2, 5.0-rc-3
9 4.2.1, 4.10.2, 5.0-rc-3
10 4.2.1, 4.10.2, 5.0-rc-3
reckon -

Published by ajoberstar over 6 years ago

This is a feature release to clean up some details of the build metadata and handling of snapshots.

Breaking Changes

  • #86 For clean repos, build metadata uses an abbreviated hash instead of the full hash.
  • #90 For unclean repos, build metadata uses a UTC timestamp instead of <hash>.uncommitted.
  • Reckoner$Builder#stages no longer accepts snapshot as an input. stages and snapshot are mutually exclusive options.
  • Stage names provided to stages or returned from your stageCalc are lowercased for consistency.

Enhancements

  • #83 Task names are now available as public constants in ReckonPlugin.

Fixes

  • #85 Snapshots will no longer trigger "Cannot release final or significant from dirty repo" errors.

Deprecations

None

Compatibility

Tested against the following versions.

Java Version Gradle Versions
8 3.0, 3.5.1, 4.0, 4.9-rc-1
9 4.2.1, 4.9-rc-1
10 4.2.1, 4.9-rc-1
reckon -

Published by ajoberstar over 6 years ago

This is a feature release to clean up some details of the build metadata and handling of snapshots.

Breaking Changes

  • #86 For clean repos, build metadata uses an abbreviated hash instead of the full hash.
  • #90 For unclean repos, build metadata uses a UTC timestamp instead of <hash>.uncommitted.
  • Reckoner$Builder#stages no longer accepts snapshot as an input. stages and snapshot are mutually exclusive options.
  • Stage names provided to stages or returned from your stageCalc are lowercased for consistency.

Enhancements

  • #83 Task names are now available as public constants in ReckonPlugin.

Fixes

  • #85 Snapshots will no longer trigger "Cannot release final or significant from dirty repo" errors.

Deprecations

None

Compatibility

Tested against the following versions.

Java Version Gradle Versions
8 3.0, 3.5.1, 4.0, 4.9-rc-1
9 4.2.1, 4.9-rc-1
10 4.2.1, 4.9-rc-1
reckon -

Published by ajoberstar over 6 years ago

This release does some syntax cleanup and provides some improvements to building historical commits.

Syntax changes from:

reckon {
  normal = scopeFromProp()
  preRelease = stageFromProp('beta', 'rc', 'final')
}

To:

reckon {
  scopeFromProp()
  stageFromProp('beta', 'rc', 'final')
}

The old syntax will continue to be available until 1.0.0, but will generate a deprecation message.

Breaking Changes

  • If you used reckon { vcs = <whatever> } to provide your own VcsInventorySupplier, that will no longer work.
  • If you were directly using reckon-core, a lot of formerly public APIs changed there. I wouldn't consider the core JAR to be terribly stable. The Gradle plugin should hopefully stay pretty stable.

Enhancements

  • #78 Historical commits can now be built (as long as it's either an insignificant version or a rebuild of a tagged version) without an error about the target normal being claimed.
  • org.ajoberstar.grgit is now applied by default, you don't need to apply this yourself

Fixes

  • Publish static versions in POM file on Gradle Plugin Portal

Deprecations

None

Compatibility

Tested against the following versions.

Java Version Gradle Versions
8 3.0, 3.5.1, 4.0, 4.8.3
9 4.2.1, 4.8.3
10 4.2.1, 4.8.3
reckon -

Published by ajoberstar over 6 years ago

This release does some syntax cleanup and provides some improvements to building historical commits.

Syntax changes from:

reckon {
  normal = scopeFromProp()
  preRelease = stageFromProp('beta', 'rc', 'final')
}

To:

reckon {
  scopeFromProp()
  stageFromProp('beta', 'rc', 'final')
}

The old syntax will continue to be available until 1.0.0, but will generate a deprecation message.

Breaking Changes

  • If you used reckon { vcs = <whatever> } to provide your own VcsInventorySupplier, that will no longer work.
  • If you were directly using reckon-core, a lot of formerly public APIs changed there. I wouldn't consider the core JAR to be terribly stable. The Gradle plugin should hopefully stay pretty stable.

Enhancements

  • #78 Historical commits can now be built (as long as it's either an insignificant version or a rebuild of a tagged version) without an error about the target normal being claimed.
  • org.ajoberstar.grgit is now applied by default, you don't need to apply this yourself

Fixes

  • Publish static versions in POM file on Gradle Plugin Portal

Deprecations

None

Compatibility

Tested against the following versions.

Java Version Gradle Versions
8 3.0, 3.5.1, 4.0, 4.8.3
9 4.2.1, 4.8.3
10 4.2.1, 4.8.3
reckon -

Published by ajoberstar over 6 years ago

This release does some syntax cleanup and provides some improvements to building historical commits.

Syntax changes from:

reckon {
  normal = scopeFromProp()
  preRelease = stageFromProp('beta', 'rc', 'final')
}

To:

reckon {
  scopeFromProp()
  stageFromProp('beta', 'rc', 'final')
}

The old syntax will continue to be available until 1.0.0, but will generate a deprecation message.

Breaking Changes

  • If you used reckon { vcs = <whatever> } to provide your own VcsInventorySupplier, that will no longer work.
  • If you were directly using reckon-core, a lot of formerly public APIs changed there. I wouldn't consider the core JAR to be terribly stable. The Gradle plugin should hopefully stay pretty stable.

Enhancements

  • #78 Historical commits can now be built (as long as it's either an insignificant version or a rebuild of a tagged version) without an error about the target normal being claimed.
  • org.ajoberstar.grgit is now applied by default, you don't need to apply this yourself

Fixes

  • Publish static versions in POM file on Gradle Plugin Portal

Deprecations

None

Compatibility

Tested against the following versions.

Java Version Gradle Versions
8 3.0, 3.5.1, 4.0, 4.8.3
9 4.2.1, 4.8.3
10 4.2.1, 4.8.3
reckon -

Published by ajoberstar over 6 years ago

This release does some syntax cleanup and provides some improvements to building historical commits.

Syntax changes from:

reckon {
  normal = scopeFromProp()
  preRelease = stageFromProp('beta', 'rc', 'final')
}

To:

reckon {
  scopeFromProp()
  stageFromProp('beta', 'rc', 'final')
}

The old syntax will continue to be available until 1.0.0, but will generate a deprecation message.

Breaking Changes

  • If you used reckon { vcs = <whatever> } to provide your own VcsInventorySupplier, that will no longer work.
  • If you were directly using reckon-core, a lot of formerly public APIs changed there. I wouldn't consider the core JAR to be terribly stable. The Gradle plugin should hopefully stay pretty stable.

Enhancements

  • #78 Historical commits can now be built (as long as it's either an insignificant version or a rebuild of a tagged version) without an error about the target normal being claimed.
  • org.ajoberstar.grgit is now applied by default, you don't need to apply this yourself

Fixes

None

Deprecations

None

Compatibility

Tested against the following versions.

Java Version Gradle Versions
8 3.0 through 4.7
9 4.2.1. through 4.7
10 4.2.1 through 4.7
reckon -

Published by ajoberstar over 6 years ago

This release introduces use of reckon.stage for snapshotFromProp() (deprecating reckon.snapshot) and fixing an issue with reckon in composite builds.

reckon.stage accepts snapshot and final when snapshotFromProp() is used.

Breaking Changes

None

Enhancements

  • #71 reckon.stage is now supported for snapshotFromProp() and reckon.snapshot is deprecated, to be removed in 1.0.0 (see #75).
  • #65 The inference algorithm has been documented by example.

Fixes

  • #74 Included builds in a composite build no longer respect the reckon.* properties. Only the main build will use them.

Deprecations

None

Compatibility

Tested against the following versions.

Java Version Gradle Versions
8 3.0 through 4.7
9 4.2.1. through 4.7
10 4.2.1 through 4.7
reckon -

Published by ajoberstar over 6 years ago

This release introduces use of reckon.stage for snapshotFromProp() (deprecating reckon.snapshot) and fixing an issue with reckon in composite builds.

reckon.stage accepts snapshot and final when snapshotFromProp() is used.

Breaking Changes

None

Enhancements

  • #71 reckon.stage is now supported for snapshotFromProp() and reckon.snapshot is deprecated, to be removed in 1.0.0 (see #75).
  • #65 The inference algorithm has been documented by example.

Fixes

  • #74 Included builds in a composite build no longer respect the reckon.* properties. Only the main build will use them.

Deprecations

None

Compatibility

Tested against the following versions.

Java Version Gradle Versions
8 3.0 through 4.7
9 4.2.1. through 4.7
10 4.1 through 4.7
reckon -

Published by ajoberstar over 6 years ago

This release introduces use of reckon.stage for snapshotFromProp() (deprecating reckon.snapshot) and fixing an issue with reckon in composite builds.

reckon.stage accepts snapshot and final when snapshotFromProp() is used.

Breaking Changes

None

Enhancements

  • #71 reckon.stage is now supported for snapshotFromProp() and reckon.snapshot is deprecated, to be removed in 1.0.0 (see #75).
  • #65 The inference algorithm has been documented by example.

Fixes

  • #74 Included builds in a composite build no longer respect the reckon.* properties. Only the main build will use them.

Deprecations

None

Compatibility

Tested against the following versions.

Java Version Gradle Versions
8 3.0 through 4.7-rc-2
9 4.2.1. through 4.7-rc-2
10 4.1 through 4.7-rc-2
reckon -

Published by ajoberstar over 6 years ago

This release made some major improvements to handling of dirty repos and rebuild logic.

  • If a repo is dirty, it will never be considered a rebuild
  • If a repo is dirty, it will always result in the string "uncommitted" being in the build metadata (for stage pre-release users) or a SNAPSHOT (for snapshot pre-release users)
  • If a repo is clean and you provide no input, you will get a rebuild (assuming the HEAD is tagged)

Breaking Changes

  • #46 Reimplemented rebuild behavior
  • #67 Indicate uncommitted changes in version strings

Enhancements

None

Fixes

  • #68 Projects with no commits fail with IllegalArgumentException

Deprecations

None

Compatibility

Tested against the following versions.

Java Version Gradle Versions
8 3.0 through 4.7-rc-1
9 4.2.1. through 4.7-rc-1
10 4.1 through 4.6
reckon -

Published by ajoberstar over 6 years ago

This release made some major improvements to handling of dirty repos and rebuild logic.

  • If a repo is dirty, it will never be considered a rebuild
  • If a repo is dirty, it will always result in the string "uncommitted" being in the build metadata (for stage pre-release users) or a SNAPSHOT (for snapshot pre-release users)
  • If a repo is clean and you provide no input, you will get a rebuild (assuming the HEAD is tagged)

Breaking Changes

  • #46 Reimplemented rebuild behavior
  • #67 Indicate uncommitted changes in version strings

Enhancements

None

Fixes

  • #68 Projects with no commits fail with IllegalArgumentException

Deprecations

None

Compatibility

Tested against the following versions.

Java Version Gradle Versions
8 3.0 through 4.7-rc-1
9 4.2.1. through 4.7-rc-1
10 4.1 through 4.6
reckon -

Published by ajoberstar over 6 years ago

This release made some major improvements to handling of dirty repos and rebuild logic.

  • If a repo is dirty, it will never be considered a rebuild
  • If a repo is dirty, it will always result in the string "uncommitted" being in the build metadata (for stage pre-release users) or a SNAPSHOT (for snapshot pre-release users)
  • If a repo is clean and you provide no input, you will get a rebuild (assuming the HEAD is tagged)

Breaking Changes

  • #46 Reimplemented rebuild behavior
  • #67 Indicate uncommitted changes in version strings

Enhancements

None

Fixes

  • #68 Projects with no commits fail with IllegalArgumentException

Deprecations

None

Compatibility

Tested against the following versions.

Java Version Gradle Versions
8 3.0 through 4.7-rc-1
9 4.2.1. through 4.7-rc-1
10 4.1 through 4.6
reckon -

Published by ajoberstar over 6 years ago

This release made some major improvements to handling of dirty repos and rebuild logic.

  • If a repo is dirty, it will never be considered a rebuild
  • If a repo is dirty, it will always result in the string "uncommitted" being in the build metadata (for stage pre-release users) or a SNAPSHOT (for snapshot pre-release users)
  • If a repo is clean and you provide no input, you will get a rebuild (assuming the HEAD is tagged)

Breaking Changes

  • #46 Reimplemented rebuild behavior
  • #67 Indicate uncommitted changes in version strings

Enhancements

None

Fixes

  • #68 Projects with no commits fail with IllegalArgumentException

Deprecations

None

Compatibility

Tested against the following versions.

Java Version Gradle Versions
8 3.0 through 4.7-rc-1
9 4.2.1. through 4.7-rc-1
10 4.1 through 4.6
reckon -

Published by ajoberstar over 6 years ago

This release makes some documentation improvements and makes a couple improvements to user input.

Breaking Changes

None

Enhancements

  • #57 Improved error message when an invalid scope is provided
  • #60 Allow empty strings to be provided as a stage. These will be treated as if none was provided, rather than as a literal empty string value to be validated against the possible stage names.

Fixes

None

Deprecations

None

Compatibility

Java: requires 8 or higher
Gradle: tested against 3.0, 3.1, 3.2, 3.2.1. 3.3, 3.4, 3.5, 3.5.1, 4.0, 4.0.1, 4.0.2, 4.1, 4.2, 4.2.1, 4.3, 4.3.1, 4.4, 4.4.1, 4.5, 4.5.1

Package Rankings
Top 18.22% on Repo1.maven.org
Badges
Extracted from project README
CI