Skip to content

Guardrails / kotlin

Gradle wrapper is committed ​

kotlin/gradle-wrapper@v1

A Gradle project commits gradlew and the wrapper properties that pin the Gradle version.

Idkotlin/gradle-wrapper
Versionv1
Categorykotlin
Default severitywarning
Interpreterpython3
Timeout30 seconds
Violations tolerated0
Collectsgradle

Collectors ​

This guardrail doesn't gather anything itself. It relies on the collectors below, which the CLI runs once per build before any check, and reads what they found from GUARDRAIL_FACTS. If a collector collects nothing, this guardrail is skipped, not failed.

CollectorGathersInputs it is given
gradleThe Gradle build in the project directory: its settings and manifest, every included project, the wrapper and the distribution it pins, the version catalog, and every dependency the build files declare or the lock files resolve, with the versions its platforms supply.projectDir

The inputs above are this guardrail's own inputs, passed straight through to the collector. Setting one in buildnote.json changes what is collected, and two guardrails configured the same way share a single collection.

Configuration ​

json
{
  "guardrails": {
      "failOn": "error",
      "checks": [
          {
              "use": "kotlin/gradle-wrapper@v1",
              "severity": "warning",
              "with": {
                  "projectDir": "."
              },
              "exemptions": []
          }
      ]
  }
}

Inputs ​

InputDescriptionDefaultEnvironment variable
projectDirDirectory holding the project, relative to the directory the CLI runs in..GUARDRAIL_INPUT_PROJECTDIR

How to fix ​

Generate the wrapper and commit every file it writes:

bash
gradle wrapper --gradle-version 8.14
git add gradlew gradlew.bat gradle/wrapper

The wrapper pins the Gradle version, so the checkout builds the same way on a laptop and on CI, without installing Gradle first.

More in kotlin ​

  • kotlin/build-manifest. The project declares a recognised build manifest, so the build is reproducible and tooling can find it.
  • kotlin/dependencies-locked. The Gradle build commits the lock files that resolve its dependencies, so the same commit builds from the same versions.
  • kotlin/kotlin-version-pinned. The build declares the Kotlin compiler version, and it is no older than the configured floor.

All 4 kotlin guardrails

Buildnote Limited
Registered in England and Wales, Reg: 16140412