Project has a build manifest
kotlin/build-manifest@v1
The project declares a recognised build manifest, so the build is reproducible and tooling can find it.
| Id | kotlin/build-manifest |
| Version | v1 |
| Category | kotlin |
| Default severity | error |
| Interpreter | python3 |
| Timeout | 30 seconds |
| Violations tolerated | 0 |
| Collects | gradle, maven |
Collectors
This guardrail gathers nothing itself. It depends on the collectors below, which the CLI runs once per build before any check, and reads what they found out of GUARDRAIL_FACTS. A collector that collects nothing skips this guardrail rather than failing it.
| Collector | Gathers | Inputs it is given |
|---|---|---|
gradle | The 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 |
maven | The Maven build in the project directory: the root pom.xml coordinates, its modules, its properties and every dependency it and its modules declare, with the versions its imported BOMs supply. | projectDir |
The inputs above are this guardrail's own, passed straight through. Configuring one in buildnote.json changes what is collected, and two guardrails configured the same way share the one collection.
Configuration
{
"guardrails": {
"failOn": "error",
"comment": true,
"checks": [
{
"use": "kotlin/build-manifest@v1",
"severity": "error",
"with": {
"projectDir": "."
},
"exemptions": []
}
]
}
}Inputs
| Input | Description | Default | Environment variable |
|---|---|---|---|
projectDir | Directory holding the project, relative to the directory the CLI runs in. | . | GUARDRAIL_INPUT_PROJECTDIR |
How to fix
Add a build manifest at the project root: build.gradle.kts (Gradle Kotlin DSL), build.gradle (Gradle Groovy DSL) or pom.xml (Maven). A checkout without one cannot be built by anybody who did not write it.
More in kotlin
kotlin/dependencies-locked. The Gradle build commits the lock files that resolve its dependencies, so the same commit builds from the same versions.kotlin/gradle-wrapper. A Gradle project commitsgradlewand the wrapper properties that pin the Gradle version.kotlin/kotlin-version-pinned. The Kotlin compiler version is declared in the build, and is no older than the configured floor.