Class GitSemVerExtension
-
- All Implemented Interfaces:
public class GitSemVerExtensionThe plugin extension with the DSL.
Supports the following properties:
minimumVersion, defaulting to 0.1.0
developmentIdentifier, the identifier for the in-development versions
noTagIdentifier, the identifier for early versions of the project, when no tags are available yet
fullHash, whether to use the full commit hash as build metadata
maxVersionLength, cuts the version to the specified length. Useful for some destinations, e.g., the Gradle Plugin Portal, which limits version numbers to 20 chars.
developmentCounterLength, how many digits to use for the counter
enforceSemanticVersioning, whether the system should fail or just warn in case a non-SemVer compatible version gets produced
preReleaseSeparator, how to separate the pre-relase information. Changing this value may generate non-SemVer-compatible versions.
buildMetadataSeparator, how to separate the pre-relase information. Some destinations (e.g., the Gradle Plugin Portal) do not support the default value '+'. A reasonable alternative is using '-', lifting the build metadata to a pre-release segment.
distanceCounterRadix, the radix for the commit counter. Defaults to base 36. Bases from 2 to 36 allowed.
versionPrefix, to be used in case tags are prefixed with some symbols before the semantic version (e.g., v1.0.0 is prefixed with "v").
includeLightweightTags, to be used in case lightweight tags should be considered.
forceVersionPropertyName, the name of the property that, if set, will force the plugin to use the specified version. By default the property name is "forceVersion".
-
-
Field Summary
Fields Modifier and Type Field Description public final static StringEXTENSION_NAMEprivate final Property<String>minimumVersionprivate final Property<String>developmentIdentifierprivate final Property<String>noTagIdentifierprivate final Property<Boolean>fullHashprivate final Property<Integer>maxVersionLengthprivate final Property<Integer>developmentCounterLengthprivate final Property<Boolean>enforceSemanticVersioningprivate final Property<String>preReleaseSeparatorprivate final Property<String>buildMetadataSeparatorprivate final Property<Integer>distanceCounterRadixprivate final Property<String>versionPrefixprivate final Property<Boolean>includeLightweightTagsprivate final Property<String>forceVersionPropertyName
-
Constructor Summary
Constructors Constructor Description GitSemVerExtension(ProviderFactory providerFactory, ObjectFactory objectFactory, File projectDir, String version, Logger logger, Property<String> minimumVersion, Property<String> developmentIdentifier, Property<String> noTagIdentifier, Property<Boolean> fullHash, Property<Integer> maxVersionLength, Property<Integer> developmentCounterLength, Property<Boolean> enforceSemanticVersioning, Property<String> preReleaseSeparator, Property<String> buildMetadataSeparator, Property<Integer> distanceCounterRadix, Property<String> versionPrefix, Property<Boolean> includeLightweightTags, Property<String> forceVersionPropertyName, Function1<List<String>, UpdateType> updateStrategy)GitSemVerExtension(ProviderFactory providerFactory, ObjectFactory objectFactory, File projectDir, String version, Logger logger, Property<String> minimumVersion, Property<String> developmentIdentifier, Property<String> noTagIdentifier, Property<Boolean> fullHash, Property<Integer> maxVersionLength, Property<Integer> developmentCounterLength, Property<Boolean> enforceSemanticVersioning, Property<String> preReleaseSeparator, Property<String> buildMetadataSeparator, Property<Integer> distanceCounterRadix, Property<String> versionPrefix, Property<Boolean> includeLightweightTags, Property<String> forceVersionPropertyName)GitSemVerExtension(ProviderFactory providerFactory, ObjectFactory objectFactory, File projectDir, String version, Logger logger, Property<String> minimumVersion, Property<String> developmentIdentifier, Property<String> noTagIdentifier, Property<Boolean> fullHash, Property<Integer> maxVersionLength, Property<Integer> developmentCounterLength, Property<Boolean> enforceSemanticVersioning, Property<String> preReleaseSeparator, Property<String> buildMetadataSeparator, Property<Integer> distanceCounterRadix, Property<String> versionPrefix, Property<Boolean> includeLightweightTags)GitSemVerExtension(ProviderFactory providerFactory, ObjectFactory objectFactory, File projectDir, String version, Logger logger, Property<String> minimumVersion, Property<String> developmentIdentifier, Property<String> noTagIdentifier, Property<Boolean> fullHash, Property<Integer> maxVersionLength, Property<Integer> developmentCounterLength, Property<Boolean> enforceSemanticVersioning, Property<String> preReleaseSeparator, Property<String> buildMetadataSeparator, Property<Integer> distanceCounterRadix, Property<String> versionPrefix)GitSemVerExtension(ProviderFactory providerFactory, ObjectFactory objectFactory, File projectDir, String version, Logger logger, Property<String> minimumVersion, Property<String> developmentIdentifier, Property<String> noTagIdentifier, Property<Boolean> fullHash, Property<Integer> maxVersionLength, Property<Integer> developmentCounterLength, Property<Boolean> enforceSemanticVersioning, Property<String> preReleaseSeparator, Property<String> buildMetadataSeparator, Property<Integer> distanceCounterRadix)GitSemVerExtension(ProviderFactory providerFactory, ObjectFactory objectFactory, File projectDir, String version, Logger logger, Property<String> minimumVersion, Property<String> developmentIdentifier, Property<String> noTagIdentifier, Property<Boolean> fullHash, Property<Integer> maxVersionLength, Property<Integer> developmentCounterLength, Property<Boolean> enforceSemanticVersioning, Property<String> preReleaseSeparator, Property<String> buildMetadataSeparator)GitSemVerExtension(ProviderFactory providerFactory, ObjectFactory objectFactory, File projectDir, String version, Logger logger, Property<String> minimumVersion, Property<String> developmentIdentifier, Property<String> noTagIdentifier, Property<Boolean> fullHash, Property<Integer> maxVersionLength, Property<Integer> developmentCounterLength, Property<Boolean> enforceSemanticVersioning, Property<String> preReleaseSeparator)GitSemVerExtension(ProviderFactory providerFactory, ObjectFactory objectFactory, File projectDir, String version, Logger logger, Property<String> minimumVersion, Property<String> developmentIdentifier, Property<String> noTagIdentifier, Property<Boolean> fullHash, Property<Integer> maxVersionLength, Property<Integer> developmentCounterLength, Property<Boolean> enforceSemanticVersioning)GitSemVerExtension(ProviderFactory providerFactory, ObjectFactory objectFactory, File projectDir, String version, Logger logger, Property<String> minimumVersion, Property<String> developmentIdentifier, Property<String> noTagIdentifier, Property<Boolean> fullHash, Property<Integer> maxVersionLength, Property<Integer> developmentCounterLength)GitSemVerExtension(ProviderFactory providerFactory, ObjectFactory objectFactory, File projectDir, String version, Logger logger, Property<String> minimumVersion, Property<String> developmentIdentifier, Property<String> noTagIdentifier, Property<Boolean> fullHash, Property<Integer> maxVersionLength)GitSemVerExtension(ProviderFactory providerFactory, ObjectFactory objectFactory, File projectDir, String version, Logger logger, Property<String> minimumVersion, Property<String> developmentIdentifier, Property<String> noTagIdentifier, Property<Boolean> fullHash)GitSemVerExtension(ProviderFactory providerFactory, ObjectFactory objectFactory, File projectDir, String version, Logger logger, Property<String> minimumVersion, Property<String> developmentIdentifier, Property<String> noTagIdentifier)GitSemVerExtension(ProviderFactory providerFactory, ObjectFactory objectFactory, File projectDir, String version, Logger logger, Property<String> minimumVersion, Property<String> developmentIdentifier)GitSemVerExtension(ProviderFactory providerFactory, ObjectFactory objectFactory, File projectDir, String version, Logger logger, Property<String> minimumVersion)GitSemVerExtension(ProviderFactory providerFactory, ObjectFactory objectFactory, File projectDir, String version, Logger logger)
-
Method Summary
Modifier and Type Method Description final Property<String>getMinimumVersion()final Property<String>getDevelopmentIdentifier()final Property<String>getNoTagIdentifier()final Property<Boolean>getFullHash()final Property<Integer>getMaxVersionLength()final Property<Integer>getDevelopmentCounterLength()final Property<Boolean>getEnforceSemanticVersioning()final Property<String>getPreReleaseSeparator()final Property<String>getBuildMetadataSeparator()final Property<Integer>getDistanceCounterRadix()final Property<String>getVersionPrefix()final Property<Boolean>getIncludeLightweightTags()final Property<String>getForceVersionPropertyName()final UnitcommitNameBasedUpdateStrategy(Function1<List<String>, UpdateType> strategy)Sets the strategy to be used to compute the version increment based on the commit messages since the last tag. final SemanticVersionfindClosestTag()Finds the closest tag compatible with Semantic Version, or returns null if none is available. final StringcomputeVersion()Computes a valid Semantic Versioning 2.0 version based on the status of the current git repository. final StringassignGitSemanticVersion()modifies the version of the current project, assigning the value computed by computeVersion. final UnitexcludeLightweightTags()If called, the system will also consider non-annotated tags. -
-
Constructor Detail
-
GitSemVerExtension
GitSemVerExtension(ProviderFactory providerFactory, ObjectFactory objectFactory, File projectDir, String version, Logger logger, Property<String> minimumVersion, Property<String> developmentIdentifier, Property<String> noTagIdentifier, Property<Boolean> fullHash, Property<Integer> maxVersionLength, Property<Integer> developmentCounterLength, Property<Boolean> enforceSemanticVersioning, Property<String> preReleaseSeparator, Property<String> buildMetadataSeparator, Property<Integer> distanceCounterRadix, Property<String> versionPrefix, Property<Boolean> includeLightweightTags, Property<String> forceVersionPropertyName, Function1<List<String>, UpdateType> updateStrategy)
-
GitSemVerExtension
GitSemVerExtension(ProviderFactory providerFactory, ObjectFactory objectFactory, File projectDir, String version, Logger logger, Property<String> minimumVersion, Property<String> developmentIdentifier, Property<String> noTagIdentifier, Property<Boolean> fullHash, Property<Integer> maxVersionLength, Property<Integer> developmentCounterLength, Property<Boolean> enforceSemanticVersioning, Property<String> preReleaseSeparator, Property<String> buildMetadataSeparator, Property<Integer> distanceCounterRadix, Property<String> versionPrefix, Property<Boolean> includeLightweightTags, Property<String> forceVersionPropertyName)
-
GitSemVerExtension
GitSemVerExtension(ProviderFactory providerFactory, ObjectFactory objectFactory, File projectDir, String version, Logger logger, Property<String> minimumVersion, Property<String> developmentIdentifier, Property<String> noTagIdentifier, Property<Boolean> fullHash, Property<Integer> maxVersionLength, Property<Integer> developmentCounterLength, Property<Boolean> enforceSemanticVersioning, Property<String> preReleaseSeparator, Property<String> buildMetadataSeparator, Property<Integer> distanceCounterRadix, Property<String> versionPrefix, Property<Boolean> includeLightweightTags)
-
GitSemVerExtension
GitSemVerExtension(ProviderFactory providerFactory, ObjectFactory objectFactory, File projectDir, String version, Logger logger, Property<String> minimumVersion, Property<String> developmentIdentifier, Property<String> noTagIdentifier, Property<Boolean> fullHash, Property<Integer> maxVersionLength, Property<Integer> developmentCounterLength, Property<Boolean> enforceSemanticVersioning, Property<String> preReleaseSeparator, Property<String> buildMetadataSeparator, Property<Integer> distanceCounterRadix, Property<String> versionPrefix)
-
GitSemVerExtension
GitSemVerExtension(ProviderFactory providerFactory, ObjectFactory objectFactory, File projectDir, String version, Logger logger, Property<String> minimumVersion, Property<String> developmentIdentifier, Property<String> noTagIdentifier, Property<Boolean> fullHash, Property<Integer> maxVersionLength, Property<Integer> developmentCounterLength, Property<Boolean> enforceSemanticVersioning, Property<String> preReleaseSeparator, Property<String> buildMetadataSeparator, Property<Integer> distanceCounterRadix)
-
GitSemVerExtension
GitSemVerExtension(ProviderFactory providerFactory, ObjectFactory objectFactory, File projectDir, String version, Logger logger, Property<String> minimumVersion, Property<String> developmentIdentifier, Property<String> noTagIdentifier, Property<Boolean> fullHash, Property<Integer> maxVersionLength, Property<Integer> developmentCounterLength, Property<Boolean> enforceSemanticVersioning, Property<String> preReleaseSeparator, Property<String> buildMetadataSeparator)
-
GitSemVerExtension
GitSemVerExtension(ProviderFactory providerFactory, ObjectFactory objectFactory, File projectDir, String version, Logger logger, Property<String> minimumVersion, Property<String> developmentIdentifier, Property<String> noTagIdentifier, Property<Boolean> fullHash, Property<Integer> maxVersionLength, Property<Integer> developmentCounterLength, Property<Boolean> enforceSemanticVersioning, Property<String> preReleaseSeparator)
-
GitSemVerExtension
GitSemVerExtension(ProviderFactory providerFactory, ObjectFactory objectFactory, File projectDir, String version, Logger logger, Property<String> minimumVersion, Property<String> developmentIdentifier, Property<String> noTagIdentifier, Property<Boolean> fullHash, Property<Integer> maxVersionLength, Property<Integer> developmentCounterLength, Property<Boolean> enforceSemanticVersioning)
-
GitSemVerExtension
GitSemVerExtension(ProviderFactory providerFactory, ObjectFactory objectFactory, File projectDir, String version, Logger logger, Property<String> minimumVersion, Property<String> developmentIdentifier, Property<String> noTagIdentifier, Property<Boolean> fullHash, Property<Integer> maxVersionLength, Property<Integer> developmentCounterLength)
-
GitSemVerExtension
GitSemVerExtension(ProviderFactory providerFactory, ObjectFactory objectFactory, File projectDir, String version, Logger logger, Property<String> minimumVersion, Property<String> developmentIdentifier, Property<String> noTagIdentifier, Property<Boolean> fullHash, Property<Integer> maxVersionLength)
-
GitSemVerExtension
GitSemVerExtension(ProviderFactory providerFactory, ObjectFactory objectFactory, File projectDir, String version, Logger logger, Property<String> minimumVersion, Property<String> developmentIdentifier, Property<String> noTagIdentifier, Property<Boolean> fullHash)
-
GitSemVerExtension
GitSemVerExtension(ProviderFactory providerFactory, ObjectFactory objectFactory, File projectDir, String version, Logger logger, Property<String> minimumVersion, Property<String> developmentIdentifier, Property<String> noTagIdentifier)
-
GitSemVerExtension
GitSemVerExtension(ProviderFactory providerFactory, ObjectFactory objectFactory, File projectDir, String version, Logger logger, Property<String> minimumVersion, Property<String> developmentIdentifier)
-
GitSemVerExtension
GitSemVerExtension(ProviderFactory providerFactory, ObjectFactory objectFactory, File projectDir, String version, Logger logger, Property<String> minimumVersion)
-
-
Method Detail
-
getMinimumVersion
final Property<String> getMinimumVersion()
-
getDevelopmentIdentifier
final Property<String> getDevelopmentIdentifier()
-
getNoTagIdentifier
final Property<String> getNoTagIdentifier()
-
getFullHash
final Property<Boolean> getFullHash()
-
getMaxVersionLength
final Property<Integer> getMaxVersionLength()
-
getDevelopmentCounterLength
final Property<Integer> getDevelopmentCounterLength()
-
getEnforceSemanticVersioning
final Property<Boolean> getEnforceSemanticVersioning()
-
getPreReleaseSeparator
final Property<String> getPreReleaseSeparator()
-
getBuildMetadataSeparator
final Property<String> getBuildMetadataSeparator()
-
getDistanceCounterRadix
final Property<Integer> getDistanceCounterRadix()
-
getVersionPrefix
final Property<String> getVersionPrefix()
-
getIncludeLightweightTags
final Property<Boolean> getIncludeLightweightTags()
-
getForceVersionPropertyName
final Property<String> getForceVersionPropertyName()
-
commitNameBasedUpdateStrategy
final Unit commitNameBasedUpdateStrategy(Function1<List<String>, UpdateType> strategy)
Sets the strategy to be used to compute the version increment based on the commit messages since the last tag. The default strategy is to increment the patch version.
- Parameters:
strategy- a function that takes the list of commit messages since the last tag and returns the update type
-
findClosestTag
final SemanticVersion findClosestTag()
Finds the closest tag compatible with Semantic Version, or returns null if none is available.
-
computeVersion
final String computeVersion()
Computes a valid Semantic Versioning 2.0 version based on the status of the current git repository.
-
assignGitSemanticVersion
final String assignGitSemanticVersion()
modifies the version of the current project, assigning the value computed by computeVersion.
-
excludeLightweightTags
final Unit excludeLightweightTags()
If called, the system will also consider non-annotated tags.
-
-
-
-