Skip to content

fix: remove stale 2015 biz.aQute.launcher jar breaking bnd export (release.yml)#48

Merged
craigpnnl merged 1 commit into
developfrom
fix/gadp028-releaseyml-gradle
Jul 10, 2026
Merged

fix: remove stale 2015 biz.aQute.launcher jar breaking bnd export (release.yml)#48
craigpnnl merged 1 commit into
developfrom
fix/gadp028-releaseyml-gradle

Conversation

@craigpnnl

Copy link
Copy Markdown
Contributor

Problem

.github/workflows/release.yml's "Build release artifacts" step (the bnd export.goss-core task) has failed for every release: v15.0.3, v15.0.2, and v12.1.0 all died there, so no GitHub release with artifacts has ever published from this workflow.

Root cause

A stale checked-in launcher, cnf/buildrepo/biz.aQute.launcher/biz.aQute.launcher-latest.jar (Bundle-Version 3.0.0.201509101327, from 2015), is served by bnd's Build FileRepo and selected for the export runpath. Its ProjectLauncherImpl.executable() calls void Project.addClose(Closeable), a method removed in modern bndlib, so the export throws NoSuchMethodError. This is not a Gradle 9 issue (release.yml already uses the pinned ./gradlew 8.10 wrapper); the failure reproduces locally at 8.10.

Fix

Delete the vestigial jar. Nothing references it (grep across all .bnd/.bndrun/.gradle is clean; the FileRepo is a directory scan with no index to dangle). With it gone, bnd falls back to the bnd plugin's embedded biz.aQute.launcher-7.1.0, which matches the bndlib. No workflow edit, no plugin bump.

Verification

./gradlew :pnnl.goss.core.runner:export.goss-core BUILD SUCCESSFUL locally, producing a valid 14.6MB goss-core.jar with Main-Class: aQute.launcher.pre.EmbeddedLauncher and the embedded 7.1.0 launcher. Reviewed and approved (Dutch): unreferenced, FileRepo-safe, no non-export consumer, deletion correct over replace.

Note

The v15.0.3 tag is frozen without this fix; the release will be cut as v15.0.4 off develop after this merges. Follow-up worth considering: whether cnf/buildrepo should carry any launcher at all, since the plugin supplies the right one.

cnf/buildrepo/biz.aQute.launcher/biz.aQute.launcher-latest.jar (Bundle-Version 3.0.0.201509101327, 2015) was served by bnd's Build FileRepo and selected for the export runpath. Its ProjectLauncherImpl.executable() calls Project.addClose(Closeable), a method removed in modern bndlib, so :pnnl.goss.core.runner:export.goss-core threw NoSuchMethodError. This broke the release.yml build-artifacts step for v15.0.3, v15.0.2, and v12.1.0. Deleting the vestigial jar lets bnd use the plugin's embedded biz.aQute.launcher-7.1.0, which matches the bndlib. Verified: export.goss-core BUILD SUCCESSFUL, produces a valid executable goss-core.jar.
@craigpnnl craigpnnl merged commit b0bb800 into develop Jul 10, 2026
8 checks passed
@craigpnnl craigpnnl deleted the fix/gadp028-releaseyml-gradle branch July 10, 2026 21:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant