Repository navigation
Publish recorded core SDKs with resumable verified asset reuse - #424
Merged
Merged
Conversation
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.
Core SDK publication is still a separate dispatch, and the shared snapshot publisher deletes unfinished drafts and returns immediately for an existing published tag. Add
release.py publish-sdk --record ... --waitto publish the candidate's existing three Release SDK archives with verified reuse and per-destination completion evidence.Retain the selected Daemon run/attempt, immutable artifact IDs/digests, core selection and per-platform producer identities in an SDK input metadata commit. Dispatch the existing workflow on main with that immutable reference. Its common manual/coordinated fetch path checks the existing Holder source tag and root version, successful source run, pins/ZIP hashes, archive hashes/sizes, cached producer core-tree/version identity, and internal SDK manifests through the production indexer. Exactly Linux/Windows x86_64 and macOS arm64 Release SDKs are accepted. No SDK is rebuilt or executed during publication.
The release publisher verifies/resumes the SDK draft, uploads only missing files, preserves matching assets and notes, and publishes only after all three archives and the compatible schema-1 index match. It rejects conflicting/unexpected/incomplete published sets; it never deletes a draft or replaces an existing asset. A matching legacy index is checked as JSON and retained with its actual bytes/hash. Source-tag identity is checked before each write. Already-complete published releases are read-only. Keep the existing stable/prerelease/latest policy and SDK-repository tag target behavior, while recording that target separately from the Holder candidate and cached SDK producer commits.
Persist the workflow input/publication receipts and independently verify destination release/asset IDs, hashes, index and SDK tag target in the coordinator. Support uncertain-dispatch reconciliation, failed-job retries, partial uploads, publication-response/cleanup failures, and completion recognition after source artifact expiry without another publishing run. SDK input or accepted destination drift stops the operation. Update the runbook and add the SDK publication/recovery guide.
Extract the release/asset primitives shared with Linux promotion into
github-release.py; all existing Linux promotion tests still pass. Core CI's development-snapshot publisher, including its Ubuntu package payload, is unchanged. The SDK workflow retains its existing publishing environment and publisher configuration; live inspection confirms its branch policy remains in place and no reviewer gate is configured.Validation: 141 release tests and 41 staging tests pass. SDK coverage includes real tar/ZIP manifest indexing, producer/candidate/tag separation, profile/manifest/source-tree/version rejection, source attempt/pin drift, partial draft reuse, response loss, conflicts, legacy index formatting, independent completion/expiry, accepted ID/tag/hash drift and CLI resume. Boundary, root version, YAML and diff checks pass. Read-only live inspection found no published
holder-v*SDK releases yet, and verified the existing public 0.2.6 development index's schema/fields without downloading SDK archives. No actual release/build/publishing dispatch, SDK draft/tag creation or upload was performed; validate the protected stable SDK path through the next actual release using this tooling.Continues #120 and #122. Remaining platform delivery, Launchpad binary availability and website completion remain subsequent work.