Repository navigation
legal: audit LICENSE and NOTICE for the first release artifacts #3270
Description
English
Part of #2974 — G3: source-release legal files.
Outcome
Make the legal files match the exact contents of the extracted ASF source
candidate, apache-maka-<version>-incubating-src.tar.gz.
G3 owns only the artifact voted on by the podling and IPMC. The npm and
macOS/Windows convenience artifacts have different byte inventories and are
reviewed independently under G8 and G9; they do not expand this source-release
gate.
Exit criteria
- Build the source candidate with the release workflow and inventory the
bytes in the extracted archive, rather than treating the repository or a
dependency graph as the artifact. - Confirm the candidate's root
LICENSE,NOTICE, andDISCLAIMER-WIPare
accurate for those bytes: Apache License 2.0 is present, third-party terms and
attributions are complete,NOTICEcontains only legally required notices,
and the disclaimer's disclosures remain current. - Identify every vendored, adapted, or generated source/data input in the
candidate and record its origin, pinned revision or reproducible snapshot,
license, and any required attribution. Merged PR fix: attribute the adapted opencode sources and the models.dev snapshot #3325 covers the known
opencode adaptations and models.dev snapshot; the candidate inventory must
still establish completeness. - Confirm the source candidate contains no Category X material and no
compiled third-party binaries; handle any permitted source-form third-party
material according to ASF third-party license policy. - Re-run the release checks against the extracted candidate and obtain the
required human and mentor/PPMC review of this source-artifact closure, with ASF
Legal Affairs input where applicable.
Existing work
- Merged PR fix: attribute the adapted opencode sources and the models.dev snapshot #3325 adds the known opencode/models.dev attribution and pins the
models.dev snapshot digest. Its notice generator still walks npm dependency
trees, so it is evidence for known inputs, not proof that the source inventory
is complete. scripts/asf-source-release.mjsalready creates the isolatedgit archive,
rejectsnode_modules, and requires root legal files.- docs: declare the bundled Geist webfonts in LICENSE #3140, fix(licenses): regenerate the notices after the bundled-font declaration #3155, and docs: add DISCLAIMER-WIP for podling releases #3141 are useful history for fonts, generated notices, and
DISCLAIMER-WIP; only material that actually enters the source candidate is
in G3 scope.
Boundary rationale
Apache OpenDAL's incubating releases provide a useful practice reference: its
ASF dist directories contain one source archive plus signature/checksum, while
npm publishing is a separate post-tag workflow. Maka follows the same artifact
boundary here. This is evidence for scoping the work, not a substitute for
Maka's mentor/PPMC or ASF Legal review.
Out of scope
- npm package contents and npm-specific legal files (G8).
- macOS/Windows package contents and platform-specific legal files (G9).
- ASF source headers and the RAT-equivalent audit (G4).
- Implementing packaging behavior outside the source legal-file boundary.
References
- ASF release policy
- ASF third-party license policy
- Incubator distribution guidelines
- OpenDAL 0.36.0 incubating dist
- OpenDAL 0.44.0 incubating dist
- OpenDAL 0.44.0 source release script
- OpenDAL 0.44.0 release guide
- OpenDAL 0.44.0 npm workflow
Ownership
Leave this issue unassigned until someone explicitly claims the source-candidate
legal review. Prior work in this area does not imply ownership.
简体中文
#2974 的一部分——G3:源码 release 法律文件。
目标结果
使法律文件与解压后的 ASF 源码候选
apache-maka-<version>-incubating-src.tar.gz 的实际内容完全匹配。
G3 只负责 podling 与 IPMC 投票的 artifact。npm 与 macOS/Windows convenience
artifacts 的字节清单不同,分别在 G8、G9 中独立审查;它们不扩大源码 release gate。
完成条件
- 用正式 release workflow 构建源码候选,并盘点解压后归档中的实际字节;不能拿仓库或
dependency graph 代替 artifact 本身。 - 确认候选根目录的
LICENSE、NOTICE、DISCLAIMER-WIP对这些字节准确:包含
Apache License 2.0 全文,第三方条款与署名完整,NOTICE仅保留依法必须的 notice,
disclaimer 的披露仍然成立。 - 识别候选中的全部 vendored、adapted、generated 源码/数据输入,并记录其来源、固定
revision 或可复现 snapshot、许可证和必要署名。已合并 PR fix: attribute the adapted opencode sources and the models.dev snapshot #3325 处理了目前已知的
opencode 改编与 models.dev snapshot;仍须通过候选清单证明完整性。 - 确认源码候选不含 Category X 材料和编译后的第三方二进制;任何获准进入的源码形态
第三方材料均按 ASF 第三方许可证政策处理。 - 对解压后的候选重新运行 release checks,并取得该 source-artifact 闭环所需的人工及
mentor/PPMC 审查;适用时取得 ASF Legal Affairs 意见。
已有工作
- 已合并 PR fix: attribute the adapted opencode sources and the models.dev snapshot #3325 补充了已知的 opencode/models.dev 署名,并固定 models.dev snapshot
digest。其 notice generator 仍遍历 npm dependency tree,因此它能证明已知输入已处理,
不能证明源码清单完整。 scripts/asf-source-release.mjs已用隔离的git archive生成候选,拒绝
node_modules,并要求根法律文件存在。- docs: declare the bundled Geist webfonts in LICENSE #3140、fix(licenses): regenerate the notices after the bundled-font declaration #3155、docs: add DISCLAIMER-WIP for podling releases #3141 是字体、生成 notices 与
DISCLAIMER-WIP的有用历史;G3
只处理真正进入源码候选的材料。
边界依据
Apache OpenDAL 的孵化期发版可作为实际实践参考:其 ASF dist 目录只包含一个源码归档及
签名/校验和,npm 则由独立的正式 tag 后置 workflow 发布。Maka 在这里采用同样的 artifact
边界。该实践用于界定工作范围,不能替代 Maka mentors/PPMC 或 ASF Legal 的判断。
不在范围内
- npm 包内容及 npm 专属法律文件(G8)。
- macOS/Windows 包内容及平台专属法律文件(G9)。
- ASF 源码 headers 与 RAT 等价审计(G4)。
- 源码法律文件边界之外的打包实现。
参考资料
- ASF 发版政策
- ASF 第三方许可证政策
- Incubator 分发指南
- OpenDAL 0.36.0 孵化期 dist
- OpenDAL 0.44.0 孵化期 dist
- OpenDAL 0.44.0 源码 release 脚本
- OpenDAL 0.44.0 release 指南
- OpenDAL 0.44.0 npm workflow
负责人边界
在有人明确认领 source-candidate 法律审查前保持 unassigned。此前参与过该区域的工作不代表
自动承担本 issue。
Activity
[-]legal: audit LICENSE and rewrite NOTICE for the first source release[/-][+]legal: audit LICENSE and NOTICE for the first release artifacts[/+]Astro-Han commentedon Aug 20, 2026
English
Two pieces of incoming third-party material are missing attribution. Recording them here because they advance the first exit criterion (inventory third-party material) without closing this gate. Full evidence is in the code origin audit report on #2907.
One shared cause
scripts/generate-third-party-notices.mjsderives its inventory by walking npm production dependency trees. Vendored source, adapted source, and generated data are therefore invisible to it by construction — not missed by accident — andnpm run check:third-party-noticescannot guard what the generator never enumerates. Both gaps below follow from that, and so will the next one.1. Adapted opencode source
packages/runtime/src/tool-output.tsandpackages/runtime/src/edit-replace.tsboth state in a header comment that they are adapted from opencode. The statements are accurate and the adaptation is substantial: the truncation helper follows upstream line for line down to its local names and its asymmetric newline accounting, and the escape-normalizing regular expression is identical character for character with its nine branches in upstream order. Maka's additions are real, but the material is a derivative work.Upstream is MIT, Copyright (c) 2025 opencode, compared at commit
fc80874(the repository now resolves toanomalyco/opencode). "opencode" appears in none ofLICENSE,NOTICE,packages/cli/THIRD_PARTY_NOTICES.txt, or the desktop notices, while both files ship in@maka/runtime.2. models.dev data snapshot
packages/core/src/model-metadata.generated.tsandpackages/runtime/src/telemetry/model-pricing.generated.tsare checked-in, shipped derivations ofhttps://models.dev/api.json, together about 27,800 lines. Upstreamsst/models.devis MIT, Copyright (c) 2025 models.dev.The individual entries are facts and are not themselves copyrightable; what comes from upstream is the selection and arrangement. The generated headers record no snapshot date or revision, so the fixed source cannot currently be identified.
Proposed work
packages/ui/src/astryx-chat-reasoning.tsxis the in-repo precedent.LICENSEentries for opencode and models.dev, following the existingtrycua/cuaformat.scripts/sync-model-metadata.mjswrite the snapshot revision and date into the generated headers.Items 1–3 are mechanical once the wording is agreed. Item 4 is the one that stops this recurring, and it changes a checked artifact's contract, so it deserves its own review.
简体中文
有两处引入的第三方材料缺少署名。记录在此是因为它们推进了第一条完成条件(盘点第三方材料),但并不关闭这个 gate。完整证据在 #2907 的代码来源审计报告中。
共同根因
scripts/generate-third-party-notices.mjs通过遍历 npm production 依赖树来生成清单。因此 vendored 源码、改编源码和生成数据在结构上就不可能被它发现——不是偶然遗漏——而npm run check:third-party-notices也无法守护生成器从未枚举过的东西。下面两处都源于此,以后新增的也会一样。1. 改编自 opencode 的源码
packages/runtime/src/tool-output.ts和packages/runtime/src/edit-replace.ts的文件头注释都写明改编自 opencode。这两处陈述准确,且改编程度很深:截断函数与上游逐行对应,连局部变量名和非对称的换行计数都一致;转义归一化的正则逐字符相同,九个分支的顺序也与上游一致。Maka 确有自己的增强,但这些材料构成 derivative work。上游为 MIT,Copyright (c) 2025 opencode,比对基于 commit
fc80874(该仓库现已指向anomalyco/opencode)。而LICENSE、NOTICE、packages/cli/THIRD_PARTY_NOTICES.txt和 desktop notices 中都没有出现 "opencode",这两个文件却随@maka/runtime一起分发。2. models.dev 数据快照
packages/core/src/model-metadata.generated.ts和packages/runtime/src/telemetry/model-pricing.generated.ts是https://models.dev/api.json的派生结果,已入库并随产品分发,合计约 27,800 行。上游sst/models.dev为 MIT,Copyright (c) 2025 models.dev。其中单条记录属于事实,本身不受版权保护;来自上游的是选择与编排。生成文件头也没有记录快照日期或上游修订,因此目前无法确定固定来源。
建议的工作
packages/ui/src/astryx-chat-reasoning.tsx是仓库内已有的先例。LICENSE中添加 opencode 和 models.dev 条目,格式参照现有的trycua/cua。scripts/sync-model-metadata.mjs把快照修订和日期写入生成文件头。第 1–3 项在措辞确定后属于机械工作。第 4 项才是阻止此类问题重演的那一项,且它改变了受检 artifact 的契约,应当单独评审。
docs: attribute the adapted opencode sources and the models.dev snapshot
docs: attribute the adapted opencode sources and the models.dev snapshot
docs: attribute the adapted opencode sources and the models.dev snapshot
docs: attribute the adapted opencode sources and the models.dev snapshot
docs: attribute the adapted opencode sources and the models.dev snapshot
docs: attribute the adapted opencode sources and the models.dev snapshot
Astro-Han commentedon Aug 21, 2026
Guarding the attribution is not in #3325.
#3325 lands the attribution itself — LICENSE entries and in-file notices for the adapted opencode sources and the models.dev snapshot. It does not add anything that fails when an attribution is dropped.
The generator is structurally blind here: it walks npm production dependency trees, and none of this material is an npm package. Two designs were tried and both were rejected in review — restating the inventory in code creates a second authority that drifts from LICENSE, and parsing LICENSE imposes an undocumented grammar on a legal file that a human edits.
What a working guard needs is a per-artifact declaration. The CLI package and the desktop app carry different material — the fonts and the cursor overlay are desktop-only — and today no single place says which artifact carries what; that knowledge is split across
electron-builder.config.mjs,release-cli-package.mjs, and the npm closure. Until that exists, any check either over-claims in the CLI notice or has to be hand-maintained.Filing this as the remaining half of the G3 exit criterion rather than stretching #3325 to cover it.
docs: attribute the adapted opencode sources and the models.dev snapshot
docs: close code origin audit
docs: attribute the adapted opencode sources and the models.dev snapshot
fix: attribute the adapted opencode sources and the models.dev snapsh…
M4n5ter commentedon Aug 23, 2026
English
The issue body has been narrowed from a four-artifact matrix to the ASF source candidate only. This follows observed Apache OpenDAL incubating-release practice and keeps legal authority aligned with the bytes under review.
Practice evidence
*-src.tar.gzplus its signature and SHA-512 checksum. The source vote does not bundle npm or platform packages into one legal-file matrix.Boundary adopted here
apache-maka-*-incubating-src.tar.gzand its rootLICENSE/NOTICE/DISCLAIMER-WIP.This removes the cross-artifact matrix and notice-leakage concepts from G3; it does not declare G3 complete. Merged PR #3325 addresses the known opencode adaptations and models.dev snapshot, but the source candidate still needs a complete byte inventory, accurate legal files, confirmation that no Category X or compiled third-party binaries enter the source archive, and human mentor/PPMC closure. OpenDAL is practice evidence for the boundary, not a substitute for Maka's own review or ASF policy.
The parent tracker #2974 has been synchronized so G8 no longer depends on a generic “G3 review”; it now owns npm artifact-specific legal review directly.
简体中文
Issue 描述已从“四类 artifact 的统一矩阵”收缩为只处理 ASF 源码候选。这个边界参考 Apache OpenDAL 已发生的孵化期发版实践,使法律 authority 与实际受审字节保持一致。
实践证据
*-src.tar.gz及其签名和 SHA-512 校验和;源码投票没有把 npm 或平台包并入一张统一法律矩阵。本次采用的边界
apache-maka-*-incubating-src.tar.gz及根LICENSE/NOTICE/DISCLAIMER-WIP。这会从 G3 删除跨 artifact 矩阵与 notice 泄漏两个概念,但不代表 G3 已完成。已合并 PR #3325 处理了目前已知的 opencode 改编与 models.dev snapshot;源码候选仍需完成全部字节盘点、准确法律文件、无 Category X/编译后第三方二进制的确认,以及 human mentor/PPMC 收口。OpenDAL 是界定边界的实践证据,不能替代 Maka 自身审查或 ASF 政策。
父 tracker #2974 已同步;G8 不再依赖笼统的“G3 review”,而是直接负责 npm artifact-specific 法律审查。
M4n5ter commentedon Aug 23, 2026
English
At
2026-08-23 07:12 UTC, I checked the open issues, pull requests, current repository branches, and the changes landed onmainsince the audited candidate. I found no active work item that claims or fixes the four source-candidate blockers below. Issue #3270 was still unassigned. Two open pull requests touch generated models (#3296and#3329), but neither changes the models.dev provenance/reproducibility contract or the other legal-file paths, so I will treat them only as merge-conflict inputs rather than duplicate G3 work.The implementation baseline is current
mainatb9dfa99c2ee5372cee985db8f7577300fabe09d5.Planned closure:
LICENSEandNOTICEdescribe the exact source-candidate bytes, including vendored assets and dependency patches, while removing entries for content absent from the source archive;cordis.patch.yml, add the root-license entry, and add a regression guard for foreign-license declarations hidden behind an ASF whole-file header;I will submit the code/legal-file changes for independent review, then rebuild and re-audit a new exact-head source candidate. This comment records the initial technical scope; it does not mark any exit criterion complete.
简体中文
在
2026-08-23 07:12 UTC,我检查了当前 open issues、pull requests、仓库分支,以及已审候选之后进入main的变更。没有发现正在认领或修复下面四组 source-candidate blocker 的工作项;#3270 当时仍未分配。两个 open PR(#3296、#3329)会修改 generated models,但都没有修改 models.dev provenance/可复现契约或其他法律文件路径,因此我只把它们视为后续合并冲突输入,不视为重复的 G3 工作。实现基线是当前
main:b9dfa99c2ee5372cee985db8f7577300fabe09d5。计划闭环:
LICENSE/NOTICE精确描述 source candidate 的实际字节,覆盖 vendored assets 与 dependency patches,并删除源码包中不存在内容的条目;cordis.patch.yml中保留 DeepSeek Harness MIT 来源,在根 LICENSE 中加入该组件,并增加回归守卫,防止 foreign-license 声明被整文件 ASF header 掩盖;我会先提交代码/法律文件变更供独立审查,再基于新 exact head 重建并复审 source candidate。本评论只记录初始技术范围,不代表任何退出条件已经完成。
M4n5ter commentedon Aug 23, 2026
English
The implementation and independent source-candidate audit are complete in #3565, which is now Ready for review at exact head
9b5140d442bed8d4e7815500d4ae82e49f6e5a5b.What is now evidenced
apache-maka-0.1.11-incubating-src.tar.gz.c8739cef16d53c6d036078048dc830ba172d3e30c44fe1ae41af474d268f35802e4754a27dc3e806042178cc3b80c7fff8a19a299d68ec83d78903b7f56f9dbd.LICENSE,NOTICE, andDISCLAIMER-WIPnow match the source bytes.NOTICEidentifies the project asApache Maka (incubating).check:asf-source59/59 pass.audit, fulltest, and Windowspackagechecks are terminal green.Two independent review lanes were run. Deep review found and caused fixes for two P1s (merge-ref snapshot staleness and dependency-requiring source checks running before install) plus one P2 documentation mismatch. Simplify audit removed the direct-input generation bypass and two low-value negative tests. Both final exact-head rechecks are GO with no residual P0-P3 finding. Full review evidence is on #3565.
Remaining closure
This does not close G3 yet. The remaining sequence is:
mainand bind its artifact/checksum to that merge head;The issue checkboxes remain unchanged until those actions make the evidence part of current
mainand complete the governance review.简体中文
#3565 中的实现和独立源码候选审计已经完成;该 PR 现已在 exact head
9b5140d442bed8d4e7815500d4ae82e49f6e5a5b上改为 Ready for review。已有证据
apache-maka-0.1.11-incubating-src.tar.gz。c8739cef16d53c6d036078048dc830ba172d3e30c44fe1ae41af474d268f35802e4754a27dc3e806042178cc3b80c7fff8a19a299d68ec83d78903b7f56f9dbd。LICENSE、NOTICE、DISCLAIMER-WIP已与源码字节一致;NOTICE使用Apache Maka (incubating)。check:asf-source59/59 均通过。audit、完整test、Windowspackage终态全绿。已执行两条独立审查线。Deep review 发现并推动修复了两个 P1(merge-ref 快照陈旧;需要依赖的 source 检查在安装前执行)和一个 P2 文档契约错误。Simplify audit 删除 direct-input 生成旁路和两条低价值负面测试。两线最终 exact-head 复核均为 GO,无剩余 P0-P3 finding;完整审查证据已发布在 #3565。
剩余闭环
这还不代表 G3 已关闭。剩余顺序是:
main重跑正式 source-candidate workflow,并把产物/校验和绑定到该 merge head;在这些动作让证据进入当前
main并完成治理审查前,issue checkbox 暂不修改。M4n5ter commentedon Aug 23, 2026
English
The implementation and source-only audit portions of G3 are now GO on current
main. The remaining gate is the required human and mentor/PPMC acceptance of this source-artifact closure.Exact candidate
f261fea8d93008ef1545e4e38e6b67ad51105c16and squash-merged asbda728dbc3a9783e2343349344967b3bd73bc8b2.maincommit. All workflow stages passed: archive creation/extraction, header audit, committed-lockfile install, production-dependency audit, attribution inventories, lint/format, build/typecheck, ASF source checks, and full tests.9495230942:apache-maka-0.2.0-incubating-bda728dbc3a9783e2343349344967b3bd73bc8b2-unsigned.apache-maka-0.2.0-incubating-src.tar.gz(13,029,999 bytes).1fc1542ca2ce4a52c4a23b0d865e7fec585c5e45a501822c45e7fb56af394a93c1ed8de628bde251524f7fed43accf1469eea4accb52a374bcd0d854f8331683. The bundled checksum matches, and an independent reproduction matched the decompressed tar payload for the exact commit.Extracted-byte and legal audit
packages/eval/harbor/egress-proxy/; no ELF, Mach-O, PE, WebAssembly, shared-library, or other compiled-binary signature was found.LICENSE,NOTICE, andDISCLAIMER-WIPmatch the shipped source bytes; no Category X material was found.fab537af179232cc88dc39314038000f70d15d05: 23/23 paths, no missing or extra path.LICENSEin source form and to the builder-created renderer license in desktop packages.The squash landed on a newer
mainthat also contained #3610 and #3497. I separately audited the PR-head-to-formal-candidate delta: 38 changed files, including 11 new source/test/doc/CSS files, with no dependency, lockfile, root legal-file, asset, or third-party-provenance change. It does not reopen the legal inventory.Remaining closure
This is an unsigned technical candidate, not an ASF release. The first four exit criteria are now evidenced, as is the automated/extracted-candidate portion of the fifth. Please record the required human and mentor/PPMC acceptance; ASF Legal is needed only if that review raises a policy question. Until then, I am leaving the issue open and not marking the governance criterion complete.
简体中文
G3 的实现与 source-only 审计现在已经在当前
main上 GO。剩余门槛是该 source-artifact 闭环所需的人工及 mentor/PPMC 确认。精确候选
f261fea8d93008ef1545e4e38e6b67ad51105c16上取得独立批准,并以 squash commitbda728dbc3a9783e2343349344967b3bd73bc8b2合入。maincommit 上终态成功。归档创建/解压、header audit、按 committed lockfile 安装、生产依赖审计、署名清单、lint/format、build/typecheck、ASF source checks 与完整测试全部通过。9495230942:apache-maka-0.2.0-incubating-bda728dbc3a9783e2343349344967b3bd73bc8b2-unsigned。apache-maka-0.2.0-incubating-src.tar.gz(13,029,999 bytes)。1fc1542ca2ce4a52c4a23b0d865e7fec585c5e45a501822c45e7fb56af394a93c1ed8de628bde251524f7fed43accf1469eea4accb52a374bcd0d854f8331683。附带 checksum 完全一致;独立重现也确认该精确 commit 的解压 tar payload 相同。解包字节与法律审计
packages/eval/harbor/egress-proxy/下两个预期源码脚本带可执行位;未发现 ELF、Mach-O、PE、WebAssembly、共享库或其他编译二进制签名。LICENSE、NOTICE、DISCLAIMER-WIP与实际源码字节一致,未发现 Category X 材料。fab537af179232cc88dc39314038000f70d15d05核验:23/23,无缺失、无额外路径。LICENSE,在桌面安装包布局中解析到 builder 创建的 renderer license。Squash 合入时的
main比 PR head 更新,已包含 #3610 与 #3497。我另行审计了 PR head 到正式候选的增量:38 个变更文件,其中 11 个是新增源码/测试/文档/CSS;没有 dependency、lockfile、根法律文件、asset 或第三方来源变化,因此不会重新打开法律清单问题。剩余闭环
这是未签名的技术候选,不是 ASF release。前四项完成条件,以及第五项中的自动化/解包候选部分现已有证据。请记录所需的人工及 mentor/PPMC 确认;只有该审查提出政策疑问时才需要 ASF Legal。在此之前,我会保持 issue 为 open,也不会把治理审查标为完成。
Astro-Han commentedon Sep 1, 2026
English
Proposing closure: the audit is done, and the remaining criterion duplicates the vote
The first four exit criteria of this issue are met. The fifth asks for something that ASF release policy places inside the vote rather than before it.
What is complete
The implementation and the source-only audit were reported GO on 2026-08-23, and the candidate has been rebuilt since. The most recent Prepare ASF source candidate run (33144795101, 2026-08-28) is a terminal success on commit
9343da93, covering archive creation and extraction, header audit, committed-lockfile install, production dependency audit, attribution inventories, lint and format, build and typecheck, ASF source checks, and the full test suite — all against the extracted archive rather than the Git checkout.That satisfies:
LICENSE,NOTICE, andDISCLAIMER-WIPare accurate for those bytes;Why the fifth criterion should not stay open
The remaining criterion asks for "the required human and mentor/PPMC review of this source-artifact closure" before the vote. There is no such step in ASF release policy. Reviewing
LICENSEandNOTICEagainst the exact candidate is what a release vote consists of: PPMC members check it when casting+1ondev@maka.apache.org, and IPMC members check it again ongeneral@incubator.apache.org. Maka's four mentors are IPMC members, so their binding+1is the mentor determination this criterion is asking for.Holding the vote until that review happens makes the gate circular — we would be waiting for something that only happens once the vote starts.
The source release runbook states the prerequisite correctly: the PPMC and mentors confirm the documents are ready for an Incubator release vote, not that they are approved. A short
[DISCUSS]thread ondev@asking whether anyone objects to cutting RC1 satisfies that, and is the same shape Apache OpenDAL uses before every release.For reference, OpenDAL's vote email carries the verification checklist directly:
Proposal
Close this issue. #2974 now carries the equivalent checklist in the vote email template, which is where this check belongs. If a mentor wants a separate pre-vote sign-off anyway, please say so here and we will reopen.
简体中文
提议关闭:审计已完成,剩下那一条与投票重复
本 issue 前四条出口条件已经满足。第五条要求的事情,ASF 发布政策把它放在投票之内,而不是投票之前。
已完成的部分
实现和源码审计部分已于 2026-08-23 报告为 GO,此后候选包又重新构建过。最近一次 Prepare ASF source candidate 运行(33144795101,2026-08-28)在提交
9343da93上终态成功,覆盖归档创建与解压、许可头审计、锁文件安装、生产依赖审计、归属清单、lint 与格式检查、构建与类型检查、ASF 源码检查以及完整测试——全部针对解压后的归档而非 Git 检出执行。这满足了:
LICENSE、NOTICE、DISCLAIMER-WIP与这些字节相符;为什么第五条不该继续挂着
剩下那条要求在投票前完成「对本次源码产物结论的必要人工与导师/PPMC 审查」。ASF 发布政策里没有这一步。针对确切候选包审查
LICENSE和NOTICE,本身就是发布投票的内容:PPMC 成员在dev@maka.apache.org投+1时查一遍,IPMC 成员在general@incubator.apache.org再查一遍。Maka 的 4 位导师就是 IPMC 成员,他们具约束力的+1就是这一条所要求的导师判定。等这项审查完成再投票,会让这道门禁变成循环——我们在等一件只有投票开始后才会发生的事。
源码发布手册的表述是准确的:PPMC 和导师确认这些文件已准备好进入孵化器发布投票,而不是已获批准。在
dev@上发一封简短的[DISCUSS],问是否有人反对切 RC1,就能满足这一条;Apache OpenDAL 每次发布前用的也是同一形状。供参考,OpenDAL 的投票邮件直接携带验证清单:
提议
关闭本 issue。#2974 已经在投票邮件模板中承接了等价的清单,那才是这项检查应该在的位置。如果导师仍希望有一次单独的投票前签字,请在此说明,我们会重开。
Drafted with help from Claude Code. I reviewed the final text and take responsibility for posting it.