Repository navigation
feat(npm): publish pup to npm - #879
Closed
tedkahwaji wants to merge 1 commit into
Closed
tedkahwaji wants to merge 1 commit into
tedkahwaji wants to merge 1 commit into
Conversation
| @@ -0,0 +1,92 @@ | |||
| name: Publish to npm | |||
Collaborator
There was a problem hiding this comment.
you'll probably want to hook release.yml to trigger this automatically
Contributor
Author
There was a problem hiding this comment.
👋 I don't intend to merge this PR in, creating this PR draft for a POC i'm working on for migrating my team's AI-CLI into pup
tedkahwaji
force-pushed
the
teddy.kahwaji/npm-distribution
branch
5 times, most recently
from
October 13, 2026 18:09
85a68cc to
0021e3d
Compare
tedkahwaji
force-pushed
the
teddy.kahwaji/npm-distribution
branch
from
October 14, 2026 13:59
0021e3d to
f36620b
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 14:31
f36620b to
5d3397f
Compare
|
✅ All CI checks and tests passed. Datadog automation helped this PR pass. 🔄 Datadog auto-retried 1 job - 1 passed on retry 🔗 Commit SHA: 5d3397f | Docs | View more details | Give us feedback! |
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
This PR is #5 in a 5-part stack that moves Datadog's AI Setup CLI behind
pup setup. Publishing pup to npm lets new users runnpx @datadog/pup setupin one command, without Homebrew or a manual binary install.Design doc (Datadog internal): Consolidating the AI Setup CLI with Pup
Related PRs (5-stack)
Changes
@datadog/puplauncher package plus per-platform packages built from the signed GitHub release archives.latestdist-tag. Prereleases go tonextand older releases tobackfill.Testing
node --testfor the launcher and package builder, including checksum, notices and SIGPIPE cases. Publish decisions checked with a fakenpm(not published, already published, registry errors).pup setuptesting.🤖 Generated with Claude Code