fix(release): carry DISCLAIMER-WIP in the npm CLI tarball - #3220
Conversation
Apache Incubator policy requires podling releases to carry the incubating disclaimer, and apache#3141 wired it into every desktop artifact — but the npm CLI publication chain landed on main in parallel, so the next CLI tarball would have shipped without it. The staging copy step now places DISCLAIMER-WIP next to LICENSE/NOTICE, the npm files whitelist and the staging/packed-files assertions require it, the installed-package smoke checks it end to end, and the CLI package validation workflow triggers on changes to the disclaimer itself. Reported by @hqhq1025 in the apache#3141 post-merge review. Generated-by: Claude Code Claude-Session: https://claude.ai/code/session_014ajaRxC4jydavY9nYUFj5J
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (3)
Included review availability: Your plan includes up to 3 reviews per rolling hour; 2 remain after this review. 📝 WalkthroughSummaryThis PR ensures published npm CLI tarballs include The PR extends the existing release pipeline source of truth. It does not create a parallel packaging path. Each validation layer now checks the same required file. The change is the smallest coherent solution. The added checks are necessary to prevent drift between staging, packing, and installed-package validation. No code or tests can be removed without weakening regression coverage. Reported validation passed for packaging, smoke tests, mutation checks, linting, formatting, and release checks. Final check status was not independently verified. Complexity delta
Total maintenance complexity stays justified because the added checks protect the published artifact requirement. Review-relevant risksThe published CLI tarball gains a user-visible file. Release artifact contents therefore change. The file supports Apache Incubator disclaimer coverage. This creates a licensing and governance effect in published packages. Material changes in licensing, governance, or release behavior require independent human review under repository policy. No security or public API effect was identified in the current diff. The person performing the merge must review the final diff. A maintainer makes the final determination. WalkthroughThe CLI release process now includes ChangesCLI package disclaimer
Estimated code review effort: 2 (Simple) | ~10 minutes Merge Risk: ⚪ Minimal · up to The CLI package will include and validate DISCLAIMER-WIP across staging, packing, installation, and workflow triggering; no actionable merge-blocking risk remains after normal checks and review. Suggested reviewers: 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
PR Summary by QodoInclude DISCLAIMER-WIP in npm CLI release artifacts
AI Description
Diagram
High-Level Assessment
Files changed (3)
|
Code Review by Qodo🐞 Bugs (0) 📘 Rule violations (0) 📎 Requirement gaps (0)
Great, no issues found!Qodo reviewed your code and found no material issues that require reviewTip of the day💡 Did you know, you can keep summaries lean with Finding overflow, which tucks the rest behind 'View more' |
Astro-Han
left a comment
There was a problem hiding this comment.
Approved at exact head e07d121f7a362c8da19f50cd87e02d43cf102a59.
This extends the existing release pipeline cleanly: DISCLAIMER-WIP is copied into staging, included in the npm allowlist, verified in both staged and packed inventories, checked again after offline installation, and covered by the relevant workflow triggers. I found no simpler solution that would preserve the same end-to-end release guarantee.
No P0–P3 findings. All current checks pass.
AI-assisted review: Codex coordinated two independent reviewer passes and an OpenCode Go DeepSeek V4 Flash high-effort adversarial pass. I verified the exact head, diff, current CI, and the artifact path from the source document through packing and installation. This approval does not replace the repository's required independent human review for release and governance changes.
中文审查
已审查精确 head e07d121f7a362c8da19f50cd87e02d43cf102a59。
该改动直接扩展现有发布链路:将 DISCLAIMER-WIP 复制到 staging、纳入 npm 白名单、分别校验 staging 与 tarball 内容,并在离线安装后再次验证,同时补齐对应 workflow trigger。没有发现能以更低复杂度提供相同端到端保障的方案。
未发现 P0–P3 问题,当前检查全部通过。
本次为 AI 辅助审查:Codex 协调了两轮独立 reviewer 审查及 OpenCode Go DeepSeek V4 Flash high 对抗性复核,并核验了精确 head、diff、当前 CI,以及文件从源码到打包和安装产物的完整路径。该批准不能替代发布与治理改动所要求的独立人工审查。
Summary
#3141 wired the Apache Incubator DISCLAIMER-WIP into every desktop artifact, but the real npm CLI publication chain landed on
mainin parallel, so the next CLI tarball built frommainwould have shipped without the disclaimer. @hqhq1025 reported this in the #3141 post-merge review with the four exact seams; this PR closes all four:copyReleaseDocuments()copies the rootDISCLAIMER-WIPinto the staging root, next toLICENSE/NOTICEas Incubator policy suggestsfileswhitelist and thevalidateStaging()required-files assertion both include itvalidatePackedFiles()requires it in the packed file list, and the offline install smoke checks it inside the installed package, so the assertion holds at pack time and end to endcli-package-validation.ymltriggers (PR and push) on changes toDISCLAIMER-WIPitself, so editing only the disclaimer can no longer skip CLI package validationVerification
npm run release:cli:packunder the pinned npm toolchain: the tarball carriespackage/DISCLAIMER-WIP, and the.files.jsoninventory lists itnode scripts/smoke-release-cli-package.mjs <tarball>: offline install completes with the new installed-file check greencopyReleaseDocuments()line makes packaging fail withRequired release file is missing: DISCLAIMER-WIPlint,format:check,check:release(28/28) — passBreaking change
None. Release tooling and its assertions only.
AI use
Select exactly one:
Tool(s) and scope: Claude Code — drafted the change and ran the verification above. Reviewed and submitted by the contributor of record.
Generated-by: Claude Codeis on the commit.Checklist
Does this PR entail a change in behavior?
DISCLAIMER-WIPRefs #3141
https://claude.ai/code/session_014ajaRxC4jydavY9nYUFj5J