Skip to content

xenoterracide/gradle-semver

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

README

This repo hosts 2 plugins, semver and git.

This plugin expects that you will git tag in the format of v0.1.1 and with only one number on prerelease versions, e.g. v0.1.1-rc.1. It also expects that you will use annotated tags.

FAQ

Shallow Clones

shallow clone detected! git only has {} commits

Shallow clones will not work properly with calculating the distance and thus you must not use them. The usual reason for doing a shallow clone is that repositories can grow quiet large, and it can be quite slow to download a 100Mb repository. What most people don't realize is that git is lazy and will fetch blobs as it needs them for a checkout if you do things correctly. git add remote <origin> <https://...> and then doing git fetch --all --filter blob:none followed by an operation like git checkout <branch> will not retrieve any files until you do the git checkout but it will have your full history. This will achieve the correct behavior on github.

- uses: actions/checkout@v4
  with:
    ref: ${{ github.event.workflow_run.head_branch}}
    filter: "blob:none"
    fetch-depth: 0

Annotated Tags

You can use this snippet or another workaround documented on the issue

- uses: actions/checkout@v4
  with:
    ref: ${{ github.ref }}

Goals

Provide Semantic versioning for Maven publishing with Gradle.

Future: Provide a way to determine what the next version should be using your projects ABI.

Contributing

Languages

asdf is suggested, you can use whatever you'd like to get

  • Java 11+
  • NodeJs

add a way to export these to your PATH in your ~/.profile

Build Tools

Run npm ci && ./gradlew dependencies to install dependencies.

Fetching Dependencies

In order to get snapshots of dependencies, you must have a GitHub token in your ~/.gradle/gradle.properties file. This file should look like:

ghUsername = <your username>
ghPassword = <your token>

You should generate your PAT as Github Documents here.

a personal access token (classic) with at least read:packages scope to install packages associated with other private repositories (which GITHUB_TOKEN can't access).

Then run.

Run npm ci && ./gradlew dependencies to install dependencies.

Committing

Use Conventional Commits.

Releasing

npm run release --semver="0.10.0"

License

Copyright © 2024 - 2025 Caleb Cushing