Skip to content

Proposal: Rearchitect Release Pipeline for Trusted Publishing#2346

Open
dividedmind wants to merge 3 commits intomainfrom
chore/trusted-publishing
Open

Proposal: Rearchitect Release Pipeline for Trusted Publishing#2346
dividedmind wants to merge 3 commits intomainfrom
chore/trusted-publishing

Conversation

@dividedmind
Copy link
Collaborator

@dividedmind dividedmind commented Feb 4, 2026

While rotating the NPM token and looking into trusted publishing I dug a little bit into pipeline architecture and have ideas on how to improve it. The basic concept is:

Benefits:

  • simple, not racy,
  • supports trusted publishing (we can get rid of the trusted npm token),
  • single source of truth (though npm is currently only used as fallback anyway, we can remove that),
  • makes it easy to support mirroring which is important for some enterprise clients (see doc for details).

@kgilpin @hleb-rubanau wdyt?

Documents a proposal for re-architecting the monorepo's release pipeline.
This plan addresses the challenges of adopting npm trusted publishing (OIDC)
in a multi-package environment with native binary assets.

It proposes using stable, "floating" Git tags for client discovery via the
GitHub Releases API, eliminating the `npm dist-tag` dance and race
conditions. The proposal also includes support for enterprise asset mirroring
and mandates checksum verification for enhanced security.
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds an architecture proposal to modernize the AppMap monorepo release pipeline to support npm trusted publishing (OIDC) by shifting “latest” discovery from npm dist-tags to Git/GitHub constructs (floating/stable tags) and GitHub Releases.

Changes:

  • Introduces a “floating stable tag” model (e.g., appmap-latest, scanner-latest) intended to eliminate the publish/retag race.
  • Proposes CI/CD workflow changes to enable OIDC publishing and to move stable tags only after binaries are uploaded.
  • Proposes IDE client changes to discover/download tools via GitHub Releases API, with enterprise mirroring support.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Updates the trusted publishing architecture proposal (`architecture/trusted-publishing-proposal.md`)
to incorporate several crucial refinements based on feedback and further analysis:

- Changes the architecture to use a dedicated orphan branch instead of
  a floating tag.
- Explicitly notes the removal of the `verifyConditionsCmd` from `.releaserc.js`,
  which previously checked for `YARN_NPM_AUTH_TOKEN`.
- Adds an action item to remove the obsolete generation and uploading of `.sha256`
  files, as digest verification will now occur via the manifest.
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 1 out of 1 changed files in this pull request and generated 8 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

design In design phase

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant