Record the published jars as linked artifacts - #51
Merged
Conversation
The Packages panel has been empty since the GitHub Packages publication was removed, and it is the right place for something quite different from what was removed. GitHub Packages was a second distribution channel: it hosted copies of the jars, needed a token to resolve, and had to be kept green at every release. A linked artifact hosts nothing. It says this repository built this jar, the jar lives on Maven Central, and here is the attestation that proves the two are the same file. It keys on the same digest the provenance attestation already uses, so the two compose: what was built, where it went, and that it is verifiable. Only the main jars are recorded. Sources and javadoc would triple the record count without adding a claim, and the API documents no DELETE, so a record is permanent and worth being deliberate about. The BOM has no jar and is skipped. Whether the workflow's own GITHUB_TOKEN may write to an organisation-level endpoint is not documented; the first tagged release after this merge answers it. A failure there means the metadata is missing, not that the release broke, and a red run is the right way to find that out.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fills the Packages panel that has been empty since #49, with something quite different from what #49
removed. GitHub Packages was a second distribution channel: it hosted copies of the jars, needed a
token to resolve, and had to be kept green at every release. A linked artifact hosts nothing — it
records that this repository built this jar, that the jar lives on Maven Central, and that the
attestation from #47's provenance work proves the two are the same file. Both are keyed on the
artifact digest, so they compose.
Verified before writing the step
GET /orgs/NaCode-Studios/artifacts/{digest}/metadata/storage-recordsanswers
no artifacts foundwith the artifact-metadatadocumentation_url— the endpoint exists andhas no records, which is not the same as the endpoint not existing.
this records only the six main jars and not their sources and javadoc siblings.
kdrant-core-1.2.0.jardownloaded fromrepo1.maven.orghashesto
sha256:ea487ed5…, the same digest the build produced, and that digest already resolves to onein-toto attestation on this repository.
Left open on purpose
Whether the workflow's
GITHUB_TOKENmay write to an organisation-level endpoint is not documented —the docs state
artifact-metadata:readfor reading and say nothing about writing. The first taggedrelease after this merges answers it. The step runs after the publish, so a failure means the metadata
is missing rather than the release being broken, and a red run is the right way to learn that. If a PAT
turns out to be required it becomes the first secret added for this, which is worth knowing rather than
guessing.
One difference from Kmemo
Kmemo starts at its
1.2.0because that release has not happened yet, so provenance and storage recordland in the same workflow run. Kdrant's
1.2.0is already out — it is our first attested release, andthis step will not reach it, because the workflow only runs on a tag push. So
1.3.0onward isautomatic, and
1.2.0needs a decision: backfill its six records by hand, or start the page at1.3.0.Nothing in this PR does the backfill.