Skip to content

Conversation

Saadnajmi
Copy link
Contributor

@Saadnajmi Saadnajmi commented Jul 17, 2025

What's the problem this PR addresses?

Addresses #6849

How did you fix it?

Full disclosure, used Github Copilot Agent Mode to generate most of this PR here --> Saadnajmi#2
Since then, lots more manual edits on my side. I took some spirit from #3404 and pack.ts to determine how to print paths and when to call report.reportInfo vs report.reportJson.

This adds a couple of flags to yarn npm publish, so that it matches other package managers like pnpm and bun, and is thus easier for tools like nx release to use (see nrwl/nx#29242 ). We add

  • --dry-run (Bails out right before the final publish to NPM)
  • --json (This takes advantage of StreamReports JSON config)

Using both flags together looks something like this:

sanajmi@Mac foo % yarn npm publish --dry-run       
➤ YN0000: README.md
➤ YN0000: bar.js
➤ YN0000: package.json
➤ YN0000: xyz.js
➤ YN0000: [DRY RUN] Package would be published to https://registry.yarnpkg.com with tag latest
➤ YN0000: Done in 0s 13ms

sanajmi@Mac foo % yarn npm publish --dry-run --json
{"file":"README.md"}
{"file":"bar.js"}
{"file":"package.json"}
{"file":"xyz.js"}
{"name":"foo","version":"1.0.0","registry":"https://registry.yarnpkg.com","tag":"latest","files":["README.md","bar.js","package.json","xyz.js"],"access":null,"dryRun":true,"published":false,"message":"[DRY RUN] Package would be published to https://registry.yarnpkg.com with tag latest","provenance":false,"gitHead":"d4f82af6fdb7f2f81c5910535900c5ad8a70a019"}

Checklist

(TODO)

  • I have set the packages that need to be released for my changes to be effective.
  • I will check that all automated PR checks pass before the PR gets reviewed.

@Saadnajmi Saadnajmi changed the title feat(publish): Add flags to match other package managers feat(publish): Add --dry-run and --json flag to yarn npm publish Jul 18, 2025
@Saadnajmi
Copy link
Contributor Author

I see test are failing because we print out multiple JSON objects instead of just one, which my tests expect. I'll do some conversation in the attached bug.

@arcanis arcanis merged commit 2677251 into yarnpkg:master Jul 31, 2025
26 checks passed
@arcanis
Copy link
Member

arcanis commented Jul 31, 2025

Thanks, @Saadnajmi!

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.

3 participants