From ca465861fbbc361c1f1d59dbe553497688c5557c Mon Sep 17 00:00:00 2001 From: Craig <3979063+craig8@users.noreply.github.com> Date: Sat, 1 Aug 2026 10:53:26 -0700 Subject: [PATCH 1/3] fix(release): scope release asset upload glob to current tag's jars The release.yml asset glob (cnf/releaserepo/**/*.jar) attaches every historical release jar in the repo (1278 jars across all versions back to v2.0.45), not just the jars for the tag being released. The 16.0.0 release upload hit GitHub's secondary rate limit inside softprops/action-gh-release and got stuck in Draft. Derive the release version from the tag (github.ref_name, leading 'v' stripped) and narrow the glob to cnf/releaserepo/**/*-.jar, so only the current release's jars (16, one per module) are attached instead of the full history. The dist/*.tar.gz source and binary archive attachments are unchanged; they were not part of the bloat. The separate GOSS-Repository Maven index push (push-to-local-goss-repository.py) is untouched. --- .github/workflows/release.yml | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 4f0a0e2c..c1e6c5dc 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -84,6 +84,15 @@ jobs: README.md \ pnnl.goss.core/LICENSE + - name: Determine release version + id: release_version + run: | + # Strip the leading 'v' from the tag (v16.0.0 -> 16.0.0) so the + # asset glob below matches only this release's jars, not the + # full cnf/releaserepo/ history of every prior release. + version="${{ github.ref_name }}" + echo "version=${version#v}" >> "$GITHUB_OUTPUT" + - name: Create GitHub Release uses: softprops/action-gh-release@v2 with: @@ -94,7 +103,7 @@ jobs: prerelease: ${{ contains(github.ref_name, 'rc') || contains(github.ref_name, 'beta') || contains(github.ref_name, 'alpha') }} files: | dist/*.tar.gz - cnf/releaserepo/**/*.jar + cnf/releaserepo/**/*-${{ steps.release_version.outputs.version }}.jar generate_release_notes: true env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} From 8135711857b869067d8fa5a7b54319949f0c2a44 Mon Sep 17 00:00:00 2001 From: Craig <3979063+craig8@users.noreply.github.com> Date: Sat, 1 Aug 2026 10:53:41 -0700 Subject: [PATCH 2/3] fix(ci): stop swallowing spotless exit code in code-quality workflow ./gradlew spotlessCheck --no-daemon || true in the spotless job made the 'Code Formatting Check' check permanently green regardless of outcome, letting a real formatting violation merge on PR #50 while the separate honest gate in format-check.yml reported the failure correctly. Remove the || true so this job fails honestly on a real formatting violation. The quality-gate job already excludes spotless.result from its pass/fail decision (it only hard-fails on dependency-check), so this does not turn spotless into an unintended new blocker on the overall pipeline; it only fixes the per-check status shown on the PR. --- .github/workflows/code-quality.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/code-quality.yml b/.github/workflows/code-quality.yml index 5d18d66c..471e1456 100644 --- a/.github/workflows/code-quality.yml +++ b/.github/workflows/code-quality.yml @@ -62,7 +62,7 @@ jobs: run: chmod +x gradlew - name: Check code formatting - run: ./gradlew spotlessCheck --no-daemon || true + run: ./gradlew spotlessCheck --no-daemon env: GRADLE_OPTS: -Xmx2g -Dorg.gradle.daemon=false From 671c85722014a146f723968c9dc2c4525e16a32f Mon Sep 17 00:00:00 2001 From: Craig <3979063+craig8@users.noreply.github.com> Date: Sat, 1 Aug 2026 11:53:25 -0700 Subject: [PATCH 3/3] chore(version): revert premature 16.0.1-SNAPSHOT bump back to 16.0.0-SNAPSHOT v16.0.0 never actually shipped (the release stuck in Draft, tag deleted). This reverts the version-only content of ef1826c8 (Prepare next development iteration (16.0.1-SNAPSHOT)) and restores the SNAPSHOT qualifier across all 17 OSGi bundle .bnd files so develop reflects an in-progress 16.0.0, not a released 16.0.0 or a premature 16.0.1. --- pnnl.goss.core.itests/bnd.bnd | 2 +- pnnl.goss.core.itests/itest.bnd | 2 +- pnnl.goss.core.runner/bnd.bnd | 2 +- pnnl.goss.core.testutil/bnd.bnd | 2 +- pnnl.goss.core/core-api.bnd | 2 +- pnnl.goss.core/goss-client.bnd | 2 +- pnnl.goss.core/goss-core-commands.bnd | 2 +- pnnl.goss.core/goss-core-exceptions.bnd | 2 +- pnnl.goss.core/goss-core-security.bnd | 2 +- pnnl.goss.core/goss-core-server-api.bnd | 2 +- pnnl.goss.core/goss-core-server-registry.bnd | 2 +- pnnl.goss.core/goss-core-server-web.bnd | 2 +- pnnl.goss.core/goss-core-server.bnd | 2 +- pnnl.goss.core/security-jwt.bnd | 2 +- pnnl.goss.core/security-ldap.bnd | 2 +- pnnl.goss.core/security-propertyfile.bnd | 2 +- pnnl.goss.core/security-system.bnd | 2 +- 17 files changed, 17 insertions(+), 17 deletions(-) diff --git a/pnnl.goss.core.itests/bnd.bnd b/pnnl.goss.core.itests/bnd.bnd index 3e8426dd..d96d70fa 100644 --- a/pnnl.goss.core.itests/bnd.bnd +++ b/pnnl.goss.core.itests/bnd.bnd @@ -1,4 +1,4 @@ -Bundle-Version: 16.0.1-SNAPSHOT +Bundle-Version: 16.0.0-SNAPSHOT # Build dependencies - JUnit 5 # Note: Using osgi-core-buildpath only (not full osgi-buildpath) to avoid javax.jms from osgi.enterprise diff --git a/pnnl.goss.core.itests/itest.bnd b/pnnl.goss.core.itests/itest.bnd index aa62f65b..3f6d507e 100644 --- a/pnnl.goss.core.itests/itest.bnd +++ b/pnnl.goss.core.itests/itest.bnd @@ -1,5 +1,5 @@ # Modern OSGi Integration Test Configuration -Bundle-Version: 16.0.1-SNAPSHOT +Bundle-Version: 16.0.0-SNAPSHOT # Use JUnit 5 and OSGi Test # Note: Using osgi-core-buildpath to avoid javax.jms from osgi.enterprise diff --git a/pnnl.goss.core.runner/bnd.bnd b/pnnl.goss.core.runner/bnd.bnd index 85661069..7acf484a 100644 --- a/pnnl.goss.core.runner/bnd.bnd +++ b/pnnl.goss.core.runner/bnd.bnd @@ -1,4 +1,4 @@ -Bundle-Version: 16.0.1-SNAPSHOT +Bundle-Version: 16.0.0-SNAPSHOT -buildpath: \ org.apache.felix.gogo.command,\ org.apache.felix.gogo.runtime,\ diff --git a/pnnl.goss.core.testutil/bnd.bnd b/pnnl.goss.core.testutil/bnd.bnd index 82b29b1a..652a5b34 100644 --- a/pnnl.goss.core.testutil/bnd.bnd +++ b/pnnl.goss.core.testutil/bnd.bnd @@ -1,4 +1,4 @@ -Bundle-Version: 16.0.1-SNAPSHOT +Bundle-Version: 16.0.0-SNAPSHOT -buildpath: \ ${configadmin-buildpath},\ pnnl.goss.core.core-api,\ diff --git a/pnnl.goss.core/core-api.bnd b/pnnl.goss.core/core-api.bnd index 87879d59..9c4676c4 100644 --- a/pnnl.goss.core/core-api.bnd +++ b/pnnl.goss.core/core-api.bnd @@ -1,4 +1,4 @@ Export-Package: \ com.northconcepts.exception,\ pnnl.goss.core -Bundle-Version: 16.0.1-SNAPSHOT \ No newline at end of file +Bundle-Version: 16.0.0-SNAPSHOT \ No newline at end of file diff --git a/pnnl.goss.core/goss-client.bnd b/pnnl.goss.core/goss-client.bnd index c443be45..81155a5e 100644 --- a/pnnl.goss.core/goss-client.bnd +++ b/pnnl.goss.core/goss-client.bnd @@ -1,3 +1,3 @@ Export-Package: \ pnnl.goss.core.client -Bundle-Version: 16.0.1-SNAPSHOT \ No newline at end of file +Bundle-Version: 16.0.0-SNAPSHOT \ No newline at end of file diff --git a/pnnl.goss.core/goss-core-commands.bnd b/pnnl.goss.core/goss-core-commands.bnd index 8b7ffe3a..c60c8c9c 100644 --- a/pnnl.goss.core/goss-core-commands.bnd +++ b/pnnl.goss.core/goss-core-commands.bnd @@ -1,3 +1,3 @@ Private-Package: \ pnnl.goss.core.commands -Bundle-Version: 16.0.1-SNAPSHOT \ No newline at end of file +Bundle-Version: 16.0.0-SNAPSHOT \ No newline at end of file diff --git a/pnnl.goss.core/goss-core-exceptions.bnd b/pnnl.goss.core/goss-core-exceptions.bnd index 6b7396e0..ebb9a3bd 100644 --- a/pnnl.goss.core/goss-core-exceptions.bnd +++ b/pnnl.goss.core/goss-core-exceptions.bnd @@ -1,5 +1,5 @@ Private-Package: \ pnnl.goss.core.exception -Bundle-Version: 16.0.1-SNAPSHOT +Bundle-Version: 16.0.0-SNAPSHOT Export-Package: \ com.northconcepts.exception \ No newline at end of file diff --git a/pnnl.goss.core/goss-core-security.bnd b/pnnl.goss.core/goss-core-security.bnd index a5410449..c462df41 100644 --- a/pnnl.goss.core/goss-core-security.bnd +++ b/pnnl.goss.core/goss-core-security.bnd @@ -5,7 +5,7 @@ Private-Package: \ # The Activator class provides SecurityManager via @Component annotation Export-Package: \ pnnl.goss.core.security -Bundle-Version: 16.0.1-SNAPSHOT +Bundle-Version: 16.0.0-SNAPSHOT # Require FileInstall to be present in the runtime # FileInstall watches the conf directory for .cfg files and loads them into ConfigAdmin diff --git a/pnnl.goss.core/goss-core-server-api.bnd b/pnnl.goss.core/goss-core-server-api.bnd index 214e3703..83ce3634 100644 --- a/pnnl.goss.core/goss-core-server-api.bnd +++ b/pnnl.goss.core/goss-core-server-api.bnd @@ -1,3 +1,3 @@ Export-Package: \ pnnl.goss.core.server -Bundle-Version: 16.0.1-SNAPSHOT \ No newline at end of file +Bundle-Version: 16.0.0-SNAPSHOT \ No newline at end of file diff --git a/pnnl.goss.core/goss-core-server-registry.bnd b/pnnl.goss.core/goss-core-server-registry.bnd index 0f49dfb1..61a3eae1 100644 --- a/pnnl.goss.core/goss-core-server-registry.bnd +++ b/pnnl.goss.core/goss-core-server-registry.bnd @@ -1,4 +1,4 @@ -Bundle-Version: 16.0.1-SNAPSHOT +Bundle-Version: 16.0.0-SNAPSHOT Private-Package: \ pnnl.goss.server.registry DynamicImport-Package: * \ No newline at end of file diff --git a/pnnl.goss.core/goss-core-server-web.bnd b/pnnl.goss.core/goss-core-server-web.bnd index 8d91642a..4abed7a3 100644 --- a/pnnl.goss.core/goss-core-server-web.bnd +++ b/pnnl.goss.core/goss-core-server-web.bnd @@ -2,7 +2,7 @@ DynamicImport-Package: * Private-Package: \ pnnl.goss.core.server.web -Bundle-Version: 16.0.1-SNAPSHOT +Bundle-Version: 16.0.0-SNAPSHOT # Import webroot folder to path resources/webroot Include-Resource: resources/webroot=webroot diff --git a/pnnl.goss.core/goss-core-server.bnd b/pnnl.goss.core/goss-core-server.bnd index 581582ee..014c66ef 100644 --- a/pnnl.goss.core/goss-core-server.bnd +++ b/pnnl.goss.core/goss-core-server.bnd @@ -9,4 +9,4 @@ Import-Package: \ * #Include-Resource: \ # OSGI-INF/blueprint/blueprint.xml=config/blueprint.xml -Bundle-Version: 16.0.1-SNAPSHOT \ No newline at end of file +Bundle-Version: 16.0.0-SNAPSHOT \ No newline at end of file diff --git a/pnnl.goss.core/security-jwt.bnd b/pnnl.goss.core/security-jwt.bnd index d685d2fa..7271bf92 100644 --- a/pnnl.goss.core/security-jwt.bnd +++ b/pnnl.goss.core/security-jwt.bnd @@ -1,2 +1,2 @@ Private-Package: pnnl.goss.core.security.jwt -Bundle-Version: 16.0.1-SNAPSHOT +Bundle-Version: 16.0.0-SNAPSHOT diff --git a/pnnl.goss.core/security-ldap.bnd b/pnnl.goss.core/security-ldap.bnd index 74d7d926..1e52272b 100644 --- a/pnnl.goss.core/security-ldap.bnd +++ b/pnnl.goss.core/security-ldap.bnd @@ -1,3 +1,3 @@ Private-Package: \ pnnl.goss.core.security.ldap -Bundle-Version: 16.0.1-SNAPSHOT +Bundle-Version: 16.0.0-SNAPSHOT diff --git a/pnnl.goss.core/security-propertyfile.bnd b/pnnl.goss.core/security-propertyfile.bnd index b7f1a0db..f9b25b5b 100644 --- a/pnnl.goss.core/security-propertyfile.bnd +++ b/pnnl.goss.core/security-propertyfile.bnd @@ -1,3 +1,3 @@ Private-Package: \ pnnl.goss.core.security.propertyfile -Bundle-Version: 16.0.1-SNAPSHOT +Bundle-Version: 16.0.0-SNAPSHOT diff --git a/pnnl.goss.core/security-system.bnd b/pnnl.goss.core/security-system.bnd index f42efa70..7c442976 100644 --- a/pnnl.goss.core/security-system.bnd +++ b/pnnl.goss.core/security-system.bnd @@ -1,2 +1,2 @@ Private-Package: pnnl.goss.core.security.system -Bundle-Version: 16.0.1-SNAPSHOT +Bundle-Version: 16.0.0-SNAPSHOT