You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat(publish): Add --dry-run and --json flag to yarn npm publish (#6850)
## 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:
```shell
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
- [x] I have read the [Contributing
Guide](https://yarnpkg.com/advanced/contributing).
(TODO)
<!-- See
https://yarnpkg.com/advanced/contributing#preparing-your-pr-to-be-released
for more details. -->
<!-- Check with `yarn version check` and fix with `yarn version check
-i` -->
- [ ] I have set the packages that need to be released for my changes to
be effective.
<!-- The "Testing chores" workflow validates that your PR follows our
guidelines. -->
<!-- If it doesn't pass, click on it to see details as to what your PR
might be missing. -->
- [ ] I will check that all automated PR checks pass before the PR gets
reviewed.
---------
Co-authored-by: copilot-swe-agent[bot] <[email protected]>
Co-authored-by: Saadnajmi <[email protected]>
description: `Generate provenance for the package. Only available in GitHub Actions and GitLab CI. Can be set globally through the \`npmPublishProvenance\` setting or the \`YARN_NPM_CONFIG_PROVENANCE\` environment variable, or per-package through the \`publishConfig.provenance\` field in package.json.`,
47
48
});
48
49
50
+
dryRun=Option.Boolean(`-n,--dry-run`,false,{
51
+
description: `Show what would be published without actually publishing`,
0 commit comments