Repository navigation
feat(npm): Publish pup as npm package - #915
Draft
tedkahwaji wants to merge 1 commit into
Draft
tedkahwaji wants to merge 1 commit into
tedkahwaji wants to merge 1 commit into
Conversation
This comment has been minimized.
This comment has been minimized.
tedkahwaji
force-pushed
the
teddy.kahwaji/npm-distribution
branch
from
October 14, 2026 16:42
5d3397f to
7ae0684
Compare
Publish pup as @datadog/pup so it can run with `npx @datadog/pup` on any machine with Node.js, without Homebrew or a manual download. The root package is a small launcher; each release binary ships in its own optionalDependencies package (@datadog/pup-<platform>) so npm installs only the one matching the host. - npm/pup: launcher that resolves the platform package, passes arguments and exit codes through, forwards SIGINT/SIGTERM/SIGHUP, and exits nonzero when the binary is killed by a signal Node ignores (SIGPIPE) - npm/scripts/build-packages.js: builds the platform and root packages from GitHub release archives and stamps the version. Every archive must be listed in the release checksums and match them, and each platform package keeps the archive's third-party notices - npm-publish.yml: manual-only publish of an existing release, dry run by default. It verifies the cosign-signed checksums, builds with the packaging code from the workflow's own revision so older releases can be published, and skips packages already published with matching contents so a failed run can be retried. Only a newer stable release moves the `latest` dist-tag; prereleases go to `next` and older releases to `backfill`. Runs are serialized, and a registry lookup error other than not-found stops the publish - ci.yml: runs the launcher and builder tests Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
tedkahwaji
force-pushed
the
teddy.kahwaji/npm-distribution
branch
from
October 14, 2026 16:44
7ae0684 to
ed29e2e
Compare
This branch has not been deployed
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.
Purpose
The following change publishes pup to npm as
@datadog/pup, so users can runnpx @datadog/pup setup.We're migrating the AI Setup CLI into pup, and today users run AI Setup with
npx @datadog/ai-setup-cli, so pup needs to support the samenpxpath. The package follows the standard npm pattern for native binaries: a small launcher plus one package per platform, so npm installs only the matching binary. The binaries are the same ones attached to each GitHub release.PR Stack
You can find implementation details in the design doc (Datadog internal) and test cases in the test plan (Datadog internal).
Changes
NPM_TOKENaren't set up yet, and we want to watch the first real publish.release.ymlcan call it once a manual publish has worked.latestdist-tag, prereleasesnext, and older releasesbackfill.