Skip to content

feat: sign all release package tags with Lerna - #50

Merged
omermorad merged 1 commit into
nextfrom
fix/signed-package-tags
Oct 31, 2026
Merged

omermorad merged 1 commit into
nextfrom
fix/signed-package-tags

Conversation

@omermorad

Copy link
Copy Markdown
Contributor

The tagging workflow currently creates only the supplied tag and leaves package tags unsigned. Replace that single-tag operation with a signed batch covering every public package discovered by Lerna, plus an optional global beta tag, at an explicitly approved commit on next.

Use lerna list and lerna exec with native Git/GPG signing so tagging preserves the approved commit and existing package versions. Verify all new signatures and push the complete batch atomically. Preserve existing tags for unchanged independent packages; reject conflicting global tags or changed packages that reuse an existing version. Retries create only missing tags, and historical unsigned tags are not rewritten.

Keep the existing release environment approval and serialized release concurrency. Import the dedicated signing key only for a nonempty batch, validate its fingerprint/email, and clean the runner keyring even after failure. The release environment's key, identity variables, and recovery certificate are configured; the public key is registered to Omer's GitHub account with a verified no-reply email and expires on 2027-10-31. Update the release documentation with setup and usage.

Validation: pnpm build, pnpm lint, pnpm test (14 passed), and pnpm test:e2e (361 passed, 1 skipped). Temporary repositories and a disposable key exercised Lerna package discovery, private-package exclusion, signed package/global tags, signature verification, retries, preservation of old tags, conflicting package/global targets, version reuse, missing keys, mismatched email, cleanup, and atomic rejection of a concurrent remote tag conflict. Workflow YAML, shell syntax, and actionlint 1.7.12 passed.

No real release tags were created or pushed, and the workflow has not been dispatched. Publishing remains separately approved; its existing requirement that package tags match the approved publishing commit is unchanged.

@omermorad
omermorad merged commit 674d47e into next Oct 31, 2026
9 checks passed
@omermorad
omermorad deleted the fix/signed-package-tags branch October 31, 2026 05:16
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