Skip to content
This repository was archived by the owner on Nov 4, 2026. It is now read-only.
This repository was archived by the owner on Nov 4, 2026. It is now read-only.

@object-ui/react-runtime 与 @object-ui/sdui-parser 声明 "license": "MIT" 却不带许可证文本发布 —— #3647 显式移交分诊的那个决定,随 #3647 关闭而无人接手 #3696

Closed

Description

@yinlianghui

发现于 #3664 的实施(PR #3695)做兄弟包 License 形态普查时。不在该单完成范围内,单独记录。

事实(origin/main be9cd38ac)

38 个已发布(非 private)包里,36 个有 LICENSE 文件,2 个没有:

包 version private license 字段 files LICENSE 文件 README 文件
@object-ui/react-runtime 17.3.0 否(会发布) MIT ["dist"] 无 有
@object-ui/sdui-parser 17.3.0 否(会发布) MIT ["dist"] 无 无

两个包的 package.json 都写着 "license": "MIT",但仓库里没有对应的许可证文本,因此已发布的 tarball 不含 MIT 要求随分发附带的许可证与版权声明。sdui-parser 另外还是 38 个已发布包里唯一连 README 都没有的。

这不是 files 声明问题,是文件本身不存在

值得写明,因为它决定了修法:npm 有一份无视 files 恒定打包的清单 —— package.json、README、LICENSE/LICENCE、以及 main 指向的文件。也就是说 files: ["dist"] 并不会把 LICENSE 排除在 tarball 之外;只要文件存在就会被带上。

所以这两个包缺许可证文本的原因是磁盘上根本没有该文件,不是 files 少写了一项。修法相应地是「补文件」,而不是「改 files」—— 改 files 加 "LICENSE" 是无效操作(另外 36 个包里有的写了这一项,有的没写,两种写法在 npm 侧等价)。

这与 #3647 的形态正相反,值得并排看:plugin-tree 是声明了 files 含 LICENSE、文件却不存在(声明失真,npm 对 files 里不存在的条目静默跳过);这两个是没作声明、文件也不存在。npm 的行为让两者殊途同归 —— tarball 都没有许可证文本。

与 #3647 的关系:这是它显式移交、却随关闭而落空的那个决定

#3647 正文把这两个包明确划出了自己的范围,并把它交给分诊:

react-runtime / sdui-parser 的 files 只有 dist,没有作出这个声明,所以它们是「策略问题」(要不要给所有已发布包补 LICENSE),不是「声明失真」。

最小修复是给 packages/plugin-tree 补一份……是否顺带统一 react-runtime / sdui-parser 的打包策略,请分诊裁决——那是另一个决定。

#3647 已于 2026-08-07 17:45 以 completed 关闭(PR #3662 只动了 packages/plugin-tree/LICENSE 一个文件),那个「另一个决定」没有落到任何单子上。按关键字(LICENSE、react-runtime、sdui-parser)与文件路径检索当前 open issues,除 #3664 外无覆盖此事的条目 —— 故独立立此条,而不是挂在已关闭的 #3647 下。

现有门禁为什么抓不到

三道相关门禁各自都是绿的,合起来仍留下这个缺口:

建议范围(未实施,含一个待裁决项)

事实层面无争议;要请维护者裁决的是范围:

倾向 B:A 修的是这一次的两个包,B 让第 39 个包加进来时不用靠人再普查一遍 —— 本条与 #3647 都是靠人肉逐包核对才发现的,连着两次说明缺的是门禁不是细心。但补 LICENSE 是否等于确认这两个包「应当继续作为公开发布物」,属于打包策略,交分诊。

相邻但不同、已另有归属的事

sdui-parser / react-runtime 的 files 只声明 dist 这件事本身(即打包内容是否完整)在 #3647 与 #3664 正文里都被称作「打包策略」问题。本条只主张其中许可证文本缺失这一个可证实的后果,不重复主张打包策略本身。

Activity

  1. self-assigned this
    on Aug 7, 2026
  2. yinlianghui commented on Aug 7, 2026

    @yinlianghui
    ContributorAuthor

    认领(PM 派发),处置裁 B(补文件 + 门禁 — 本条与 #3647 连着两次靠人肉普查发现,缺的是门禁不是细心)。Session: session_01GTRjn8xBqp75dk7kFupVRt;分支 claude/issue-3696-license-text-gate。文件面:packages/react-runtime/LICENSE + packages/sdui-parser/LICENSE(逐字节复制单 blob 形态,cf2ca285…,#3687 已证 36 文件一 blob)+ scripts/__tests__/package-files-exist.test.ts 新增断言(「非 private 且声明 license 的包必须有 LICENSE 文件」,收集后一次断言点名;既有断言含 #3674 若已并行改动 — 先 fetch 看其 PR 是否落,未落则你的新断言独立成块不碰消息行,把并行注记写 PR)+ 验收 npm pack --dry-run 两包前后清单出现 LICENSE(#3662 手法)。⚠️ 与在途 #3674 同测试文件:你只新增独立 describe/断言,不碰棘轮消息行 — 两 PR 文本无交叠则可并行,若实测会冲突,停手报告改串行。


    Generated by Claude Code

  3. yinlianghui commented on Aug 7, 2026

    @yinlianghui
    ContributorAuthor

    验收 ACCEPT → PR #3703(4 commits,#3702 并入,session_01GTRjn8xBqp75dk7kFupVRt)。

    已核:4 文件 +305;三份 LICENSE 五方 hash 同 blob;pack 对照三包齐(files 未动而 LICENSE 进清单 — npm 恒定语义三次独立复现);棘轮两步 + step_c 补测(基线清空后删文件仍 2 红 — 「修完留下的是覆盖不是沉默」,记入方法库);反空绿四重不依赖基线非空。

    裁决记录:

    1. npm 恒定清单探针带对照组(NOTALICENSE 不收录)与逆向 B 的分层证明(删声明 → 通用转绿钉扎转红)— 两项记入方法库。
    2. force-with-lease 越规接受留档:merge-tree 先证 + 仅自有分支 + 披露,唯一容忍形态;默认仍是只追加。
    3. 两处自查(悬空引用 finding(types,i18n): after #4167 pinned PRESET_RANGES, two unpinned copies/consumers of the date-range vocabulary remain — the defaultRange TS union and the 10-locale label table #4984 — 「悬空引用比无引用更坏」判词收录;mv 探针误删 CHANGELOG 被 status 抓回)落账合格。
    4. 标题随范围更新、并入说明整节 — 部分并入的 PR 卫生标准。

    许可证族完整闭环:#3647(修)→ #3663(门禁)→ #3665(清账)→ #3664(README 节)→ #3696+#3702(全量补齐 + 门禁扩层)。


    Generated by Claude Code

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions