{"record":{"id":"450f84e2c4bc1442","repo":"apache/iceberg","slug":"warning-missing-depsfile-name-in-projectdir","errorCode":null,"errorMessage":"WARNING: Missing ${depsFile.name} in ${projectDir}. Run: ./gradlew ${project.path}:generateRuntimeDeps","messagePattern":"WARNING: Missing (.+?) in (.+?)\\. Run: \\./gradlew (.+?):generateRuntimeDeps","errorType":"console","errorClass":null,"httpStatus":null,"severity":"warning","filePath":"runtime-deps.gradle","lineNumber":88,"sourceCode":"  group = 'verification'\n  description = 'Regenerate the runtime dependency baseline after intentional dependency changes'\n  outputs.file(depsFile)\n  doLast {\n    def deps = resolveRuntimeDeps()\n    depsFile.text = deps.join('\\n') + '\\n'\n    logger.lifecycle(\"Wrote ${deps.size()} dependencies to ${depsFile}\")\n    logger.lifecycle(\"Review the diff, then update LICENSE and NOTICE if licenses changed.\")\n  }\n}\n\ntasks.register('checkRuntimeDeps') {\n  group = 'verification'\n  description = 'Verify runtime dependencies match the checked-in baseline'\n  inputs.files(configurations.runtimeClasspath)\n  outputs.file(depsFile)\n  doLast {\n    if (!depsFile.exists()) {\n      logger.warn(\"WARNING: Missing ${depsFile.name} in ${projectDir}. \" +\n        \"Run: ./gradlew ${project.path}:generateRuntimeDeps\")\n      return\n    }\n\n    def actual = resolveRuntimeDeps()\n    def expected = depsFile.readLines().findAll { it.trim() }.toSorted()\n\n    def groupArtifact = { coord -> coord.substring(0, coord.lastIndexOf(':')) }\n    def actualByModule = actual.collectEntries { [(groupArtifact(it)): it] }\n    def expectedByModule = expected.collectEntries { [(groupArtifact(it)): it] }\n\n    def added = actualByModule.keySet() - expectedByModule.keySet()\n    def removed = expectedByModule.keySet() - actualByModule.keySet()\n    def shared = actualByModule.keySet().intersect(expectedByModule.keySet())\n    def versionChanged = shared.findAll {\n      actualByModule[it] != expectedByModule[it]\n    }\n","sourceCodeStart":70,"sourceCodeEnd":106,"githubUrl":"https://github.com/apache/iceberg/blob/86d9c8fc543e7c56c9f624eb725f76c9baff9570/runtime-deps.gradle#L70-L106","documentation":"The verifyRuntimeDeps task in runtime-deps.gradle checks that a checked-in baseline file of runtime dependencies matches what the configuration actually resolves. If the baseline file does not exist, the task logs a warning and returns instead of failing, telling you to regenerate it first. It exists to catch accidental dependency drift in CI.","triggerScenarios":"Running the verifyRuntimeDeps task in a project whose baseline file (e.g. runtime-deps.txt) has never been generated, or after the file was deleted or is missing from a fresh clone.","commonSituations":"Adding a new subproject that inherited the convention plugin but whose baseline was never committed; CI on a repo where the generated file is gitignored by mistake; contributors running verification before the initial generation step.","solutions":["Run ./gradlew <project.path>:generateRuntimeDeps to create the baseline file","Commit the generated file so verification passes on CI and for other developers","If the file should exist, check that it is not gitignored or located in the wrong projectDir"],"exampleFix":"// before\n./gradlew :iceberg-core:verifyRuntimeDeps  # WARNING: Missing ... \n// after\n./gradlew :iceberg-core:generateRuntimeDeps\n./gradlew :iceberg-core:verifyRuntimeDeps  # passes","handlingStrategy":"validation","validationCode":"if (!file('runtime-deps.txt').exists()) { tasks.named('verifyRuntimeDeps') { dependsOn 'generateRuntimeDeps' } }","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Run generateRuntimeDeps whenever adding a new module","Never gitignore the generated baseline file","Add generation to the module scaffold template"],"tags":["gradle","dependencies","build","missing-file"],"backgroundTag":"file-not-found","analyzedSha":"86d9c8fc543e7c56c9f624eb725f76c9baff9570","analyzedAt":"2026-09-12T00:46:39.097Z","contentChangedAt":"2026-09-12T00:46:39.097Z","schemaVersion":2},"datasetVersion":"2026-09-14T16:17:12.679Z"}