From 8d20b748f1f00b28edfa489e5df236a6502e28e4 Mon Sep 17 00:00:00 2001 From: EvoVerse Date: Thu, 16 Jul 2026 08:48:35 +0000 Subject: [PATCH] release: prepare v0.1.0 --- .github/ISSUE_TEMPLATE/experiment_result.yml | 2 +- .../ISSUE_TEMPLATE/external_reproduction.yml | 10 ++-- CHANGELOG.md | 25 ++++++++++ CITATION.cff | 3 +- CONTRIBUTING.md | 5 +- README.md | 28 ++++++----- README.zh-CN.md | 26 +++++----- docs/NEXT_STEPS.md | 49 ++++++++++--------- docs/WAMProbe_PLAN.md | 23 +++++---- docs/models/STARWAM.md | 2 +- docs/reproducibility/REPRODUCIBILITY.md | 15 +++--- pyproject.toml | 2 +- release/README.md | 37 ++++++++------ release/evidence-manifest-v0.1.json | 2 +- src/wamprobe/__init__.py | 2 +- tests/test_import.py | 2 +- uv.lock | 2 +- 17 files changed, 141 insertions(+), 94 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/experiment_result.yml b/.github/ISSUE_TEMPLATE/experiment_result.yml index 35c2761..d620830 100644 --- a/.github/ISSUE_TEMPLATE/experiment_result.yml +++ b/.github/ISSUE_TEMPLATE/experiment_result.yml @@ -12,7 +12,7 @@ body: id: wamprobe_revision attributes: label: WAMProbe version and commit - placeholder: 0.1.0rc1 / full Git commit SHA + placeholder: 0.1.0 / full Git commit SHA validations: required: true - type: textarea diff --git a/.github/ISSUE_TEMPLATE/external_reproduction.yml b/.github/ISSUE_TEMPLATE/external_reproduction.yml index 21757cd..c37f885 100644 --- a/.github/ISSUE_TEMPLATE/external_reproduction.yml +++ b/.github/ISSUE_TEMPLATE/external_reproduction.yml @@ -1,14 +1,14 @@ -name: External reproduction -description: Report an independent clean-install WAMProbe smoke reproduction +name: Optional external reproduction +description: Share an independent clean-install WAMProbe smoke reproduction title: "[External reproduction]: " labels: ["reproduction"] body: - type: markdown attributes: value: >- - Thank you for independently checking WAMProbe. This form records the - evidence needed for the external-smoke release gate. Failed attempts are - useful too. Do not post credentials or private machine paths. + Thank you for independently checking WAMProbe. External reports are useful + additional evidence but are not a v0.1 release gate. Failed attempts are useful + too. Do not post credentials or private machine paths. - type: input id: reproducer attributes: diff --git a/CHANGELOG.md b/CHANGELOG.md index eb17d3a..0b19162 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,31 @@ All notable changes to WAMProbe will be documented here. +## [0.1.0] - 2026-07-16 + +This stable release promotes the audited CPU core and real-model evaluation slice after +repeated maintainer clean-install checks from both GitHub artifacts and public PyPI. The +evidence is recorded in +[Issue #2](https://github.com/myheart521/WAMProbe/issues/2). These owner-run checks are +maintainer acceptance, not independent external reproduction. + +### Added + +- English and complete Simplified Chinese READMEs with generated project diagrams and an + actual PointMass report preview. +- A tested custom state-future adapter starter that writes the standard JSON, JSONL, + Markdown, and HTML report contract. +- A detailed adapter integration guide, dependency-aware roadmap, structured result and + reproduction forms, repository Topics, and labeled contribution-sized Issues. + +### Changed + +- Promoted package, citation, model-card, evidence-manifest, and documentation metadata to + stable `0.1.0`. +- Included project documentation and the adapter starter in the source distribution. +- Made optional external reproduction distinct from the documented maintainer package + acceptance used for this release. + ## [0.1.0rc1] - 2026-07-15 This candidate was tagged and published as a diff --git a/CITATION.cff b/CITATION.cff index f240aa6..8a62349 100644 --- a/CITATION.cff +++ b/CITATION.cff @@ -2,7 +2,8 @@ cff-version: 1.2.0 message: "If you use WAMProbe, please cite the software release." title: "WAMProbe: Counterfactual Evaluation for World Action Models" type: software -version: 0.1.0rc1 +version: 0.1.0 +date-released: "2026-07-16" license: Apache-2.0 repository-code: "https://github.com/myheart521/WAMProbe" authors: diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index a98b88b..625c9cf 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -16,9 +16,10 @@ Thank you for helping make WAM evaluation more causal, reproducible, and control - **Share a run:** use the [Experiment result](https://github.com/myheart521/WAMProbe/issues/new?template=experiment_result.yml) form with standard artifacts and hashes. -- **Reproduce independently:** use the +- **Share an optional independent reproduction:** use the [External reproduction](https://github.com/myheart521/WAMProbe/issues/new?template=external_reproduction.yml) - form. A maintainer-controlled run cannot satisfy the external-user gate. + form. A maintainer-controlled run must be labeled as maintainer evidence, never as an + independent report. - **Pick a bounded task:** see the [roadmap](docs/NEXT_STEPS.md) and issues labeled [`good first issue`](https://github.com/myheart521/WAMProbe/labels/good%20first%20issue). diff --git a/README.md b/README.md index a71cbf8..2f33949 100644 --- a/README.md +++ b/README.md @@ -30,10 +30,11 @@ Contributing

-> **Release status:** [`v0.1.0rc1`](https://github.com/myheart521/WAMProbe/releases/tag/v0.1.0rc1) -> is published on [PyPI](https://pypi.org/project/wamprobe/0.1.0rc1/) as a release -> candidate. The dependency-free CPU core is ready to use; the external reproduction -> report remains open in [Issue #2](https://github.com/myheart521/WAMProbe/issues/2). +> **Release status:** [`v0.1.0`](https://github.com/myheart521/WAMProbe/releases/tag/v0.1.0) +> is the stable release on [PyPI](https://pypi.org/project/wamprobe/0.1.0/). +> The dependency-free CPU core and maintainer clean-install acceptance are complete. +> [Issue #2](https://github.com/myheart521/WAMProbe/issues/2) records that evidence; +> no independent external reproduction is claimed. ## The problem WAMProbe tests @@ -87,7 +88,7 @@ runs/pointmass-demo/ For an exactly pinned installation: ```bash -python -m pip install wamprobe==0.1.0rc1 +python -m pip install wamprobe==0.1.0 ``` ## Read the result @@ -291,7 +292,7 @@ Review the [reproducibility guide](docs/reproducibility/REPRODUCIBILITY.md) and | Interpret a score correctly | [Core metric cards](docs/metrics/CORE_METRICS.md) | | Add a model integration | [Custom adapter starter guide](docs/adapters/CUSTOM_ADAPTER.md) | | Submit a structured experiment | [Experiment result form](https://github.com/myheart521/WAMProbe/issues/new?template=experiment_result.yml) | -| Reproduce independently | [External reproduction form](https://github.com/myheart521/WAMProbe/issues/new?template=external_reproduction.yml) | +| Share an optional independent reproduction | [External reproduction form](https://github.com/myheart521/WAMProbe/issues/new?template=external_reproduction.yml) | | Reproduce LIBERO-CF-Mini | [Benchmark card](docs/benchmarks/LIBERO_CF_MINI.md) | | Inspect the closed-loop protocol | [Experiment card](docs/experiments/TOY_CLOSED_LOOP_V0.1.md) | | Audit the release | [Reproducibility guide](docs/reproducibility/REPRODUCIBILITY.md) | @@ -301,17 +302,18 @@ Review the [reproducibility guide](docs/reproducibility/REPRODUCIBILITY.md) and ## Project status and roadmap -The `v0.1.0rc1` engineering scope is implemented and published. The remaining formal -acceptance item is one genuine independent clean-install smoke report in -[Issue #2](https://github.com/myheart521/WAMProbe/issues/2). +The `v0.1.0` engineering scope and maintainer clean-install acceptance are complete. +[Issue #2](https://github.com/myheart521/WAMProbe/issues/2) records owner-run checks from +both the public wheel and PyPI. These checks are intentionally described as maintainer +evidence, not independent external reproduction. -The [dependency-aware roadmap](docs/NEXT_STEPS.md) tracks evidence gates separately from -repository work. Next research milestones: +The [dependency-aware roadmap](docs/NEXT_STEPS.md) separates completed release gates from +the next research milestones: 1. expand LIBERO initial-state coverage; 2. evaluate action-conditioned real-WAM futures when an adapter exposes that capability; 3. add the Occluded-Object memory diagnostic to the broader toy tier; -4. review external reproduction evidence and promote a final `v0.1.0` release. +4. archive the stable release with a DOI and collect optional third-party reports. ## Contributing @@ -346,7 +348,7 @@ If WAMProbe supports your work, cite the software release using title = {WAMProbe: Counterfactual Evaluation for World Action Models}, author = {{WAMProbe contributors}}, year = {2026}, - version = {0.1.0rc1}, + version = {0.1.0}, url = {https://github.com/myheart521/WAMProbe} } ``` diff --git a/README.zh-CN.md b/README.zh-CN.md index 963436b..8dcf3de 100644 --- a/README.zh-CN.md +++ b/README.zh-CN.md @@ -30,10 +30,11 @@ 参与贡献

-> **发行状态:**[`v0.1.0rc1`](https://github.com/myheart521/WAMProbe/releases/tag/v0.1.0rc1) -> 已作为候选版本发布到 [PyPI](https://pypi.org/project/wamprobe/0.1.0rc1/)。 -> 无依赖的 CPU 核心已经可以直接使用;目前仍在 -> [Issue #2](https://github.com/myheart521/WAMProbe/issues/2) 等待独立外部用户复现报告。 +> **发行状态:**[`v0.1.0`](https://github.com/myheart521/WAMProbe/releases/tag/v0.1.0) +> 是发布在 [PyPI](https://pypi.org/project/wamprobe/0.1.0/) 上的正式稳定版。 +> 无依赖 CPU 核心和维护者干净环境验收均已完成; +> [Issue #2](https://github.com/myheart521/WAMProbe/issues/2) 保存了验收证据,但项目不把它 +> 描述成独立外部复现。 ## WAMProbe 要解决的问题 @@ -82,10 +83,10 @@ runs/pointmass-demo/ └── report.html # 无需服务器即可打开的独立报告 ``` -如果需要固定到完全一致的候选版本: +如果需要固定到完全一致的稳定版本: ```bash -python -m pip install wamprobe==0.1.0rc1 +python -m pip install wamprobe==0.1.0 ``` ## 查看结果 @@ -282,7 +283,7 @@ StarWAM 和 LIBERO 的隔离环境、GPU 预检、预处理来源及 smoke 命 | 正确解释指标 | [核心指标卡](docs/metrics/CORE_METRICS.md) | | 接入一个新模型 | [自定义适配器接入指南](docs/adapters/CUSTOM_ADAPTER.md) | | 提交结构化实验结果 | [实验结果表单](https://github.com/myheart521/WAMProbe/issues/new?template=experiment_result.yml) | -| 独立复现项目 | [外部复现表单](https://github.com/myheart521/WAMProbe/issues/new?template=external_reproduction.yml) | +| 提交可选的独立复现 | [外部复现表单](https://github.com/myheart521/WAMProbe/issues/new?template=external_reproduction.yml) | | 复现 LIBERO-CF-Mini | [基准卡](docs/benchmarks/LIBERO_CF_MINI.md) | | 检查闭环实验协议 | [实验卡](docs/experiments/TOY_CLOSED_LOOP_V0.1.md) | | 审计发行版 | [可复现性指南](docs/reproducibility/REPRODUCIBILITY.md) | @@ -292,15 +293,16 @@ StarWAM 和 LIBERO 的隔离环境、GPU 预检、预处理来源及 smoke 命 ## 项目状态与路线图 -`v0.1.0rc1` 工程范围已经实现并发布。正式验收目前只剩一项:由真实独立用户在 -[Issue #2](https://github.com/myheart521/WAMProbe/issues/2) 提交干净环境安装复现报告。 +`v0.1.0` 工程范围和维护者干净环境验收均已完成。 +[Issue #2](https://github.com/myheart521/WAMProbe/issues/2) 保存了从公开 wheel 和 PyPI +执行的维护者验收记录。这些记录不会被称为独立外部复现。 -[后续路线图](docs/NEXT_STEPS.md)会把外部证据门槛和仓库内工程任务分开跟踪。下一阶段研究计划: +[后续路线图](docs/NEXT_STEPS.md)会把已完成的发布验收与后续研究任务分开跟踪: 1. 扩展 LIBERO 初始状态覆盖; 2. 在适配器真正暴露对应能力后,评测动作条件真实 WAM 未来; 3. 在更完整的 Toy 层加入“遮挡物体记忆”诊断; -4. 审查外部复现证据,并发布正式 `v0.1.0`。 +4. 为稳定版建立 DOI 归档,并接收可选的第三方复现报告。 ## 参与贡献 @@ -334,7 +336,7 @@ pytest --cov=wamprobe --cov-report=term-missing --cov-fail-under=85 title = {WAMProbe: Counterfactual Evaluation for World Action Models}, author = {{WAMProbe contributors}}, year = {2026}, - version = {0.1.0rc1}, + version = {0.1.0}, url = {https://github.com/myheart521/WAMProbe} } ``` diff --git a/docs/NEXT_STEPS.md b/docs/NEXT_STEPS.md index 6ab577c..1791de1 100644 --- a/docs/NEXT_STEPS.md +++ b/docs/NEXT_STEPS.md @@ -1,16 +1,18 @@ # Next steps / 后续路线图 -This roadmap separates work that can be automated in the repository from gates -that require independent people or new scientific evidence. A checked code task -must never be used as a substitute for an unmet evidence gate. +This roadmap separates completed release engineering from work that still needs new +scientific evidence. Maintainer verification and independent reproduction remain distinct +claims even though independent reproduction is not a `v0.1` release gate. -本路线图区分“仓库内可以自动完成的工程任务”和“必须由独立用户或新实验提供证据的验收 -门槛”。代码完成不代表外部证据已经满足。 +本路线图区分已经完成的发布工程与仍需新科学证据的工作。维护者验收和独立复现始终是两种 +不同声明,但独立复现不再作为 `v0.1` 的发布门槛。 ## Dependency path / 依赖关系 ```text -P0 independent reproduction ──► P1 final v0.1.0 +P0 maintainer clean install ──► P1 final v0.1.0 + +optional independent reports ──► additional public evidence P2 contributor readiness ──► P3 broader paired benchmarks └──► P4 action-conditioned real WAM @@ -22,16 +24,16 @@ P1 stable release + public evidence ──► P5 DOI and outreach | Priority | Milestone | Current state | Completion evidence | |---|---|---|---| -| P0 | Independent clean-install reproduction / 独立干净环境复现 | **Blocked by an independent user** | A non-maintainer posts commit, environment, commands, exit status, elapsed time, and output hash in Issue #2 | -| P1 | Promote `v0.1.0rc1` to `v0.1.0` / 发布正式版 | **Blocked by P0** | P0 accepted, release audit green, signed/tagged release artifacts and provenance available | -| P2 | Contributor readiness / 贡献者接入能力 | **In progress** | Runnable adapter starter, contribution/result forms, roadmap, labeled starter issues, green CI | +| P0 | Maintainer clean-install acceptance / 维护者干净环境验收 | **Complete** | Public wheel and PyPI installs, exact commands, exit status, elapsed time, and output hash recorded in Issue #2 | +| P1 | Stable `v0.1.0` / 正式稳定版 | **Complete** | Release audit green, tagged artifacts and provenance available, published-package smoke passed | +| P2 | Contributor readiness / 贡献者接入能力 | **Complete** | Runnable adapter starter, contribution/result forms, roadmap, labeled starter issues, green CI | | P3 | Broader paired diagnostics / 扩展配对诊断 | **Planned** | More LIBERO initial states plus Occluded-Object memory benchmark with restore/order checks | | P4 | Real action-conditioned WAM evidence / 真实动作条件 WAM | **Planned; model capability required** | Public model exposes candidate-conditioned futures, adapter passes semantic tests, bounded report is reproducible | -| P5 | Archival and outreach / 归档与传播 | **After stable release** | Zenodo DOI, updated citation metadata, release notes, public result call | +| P5 | Archival and outreach / 归档与传播 | **Ready after v0.1.0** | Zenodo DOI, updated citation metadata, release notes, public result call | Tracked work: -- P0: [independent reproduction gate #2](https://github.com/myheart521/WAMProbe/issues/2) +- P0: [maintainer acceptance record #2](https://github.com/myheart521/WAMProbe/issues/2) - P3: [LIBERO initial-state coverage #10](https://github.com/myheart521/WAMProbe/issues/10) and [Occluded-Object RFC #7](https://github.com/myheart521/WAMProbe/issues/7) - P4: [public action-conditioned WAM audit #9](https://github.com/myheart521/WAMProbe/issues/9) @@ -39,19 +41,20 @@ Tracked work: and [malformed-output tests #12](https://github.com/myheart521/WAMProbe/issues/12) - P5: [Zenodo DOI preparation #8](https://github.com/myheart521/WAMProbe/issues/8) -## P0 — independent reproduction +## P0 — maintainer clean-install acceptance -The maintainer can improve instructions and debug a failed report, but cannot -perform this acceptance item on the maintainer's own machine. The external user -should use the **External reproduction** issue form. Issue #2 remains the source -of truth. +The maintainer installed the public package in fresh environments, ran the CLI and bounded +demo, and recorded the version, environment, command, elapsed time, and output hash in +Issue #2. This completes the `v0.1` package acceptance chosen by the project owner. It does +not establish independent external reproduction. -维护者可以完善说明、协助排错,但不能在自己的机器上代替外部用户完成验收。真实独立用户 -应通过 **External reproduction** 表单提交,Issue #2 是唯一验收记录。 +维护者已经在全新环境安装公开发行包,运行 CLI 和有界 demo,并在 Issue #2 中记录版本、 +环境、命令、耗时和输出哈希。这满足项目所有者为 `v0.1` 选择的包验收口径,但不代表独立 +外部复现。 ## P1 — stable release gate -After P0 is accepted: +The stable release procedure is: 1. confirm the candidate commit is clean and all required CI/security checks pass; 2. run the documented reproducible build and archive audit; @@ -59,7 +62,7 @@ After P0 is accepted: 4. publish the final tag and artifacts through the release workflow; 5. verify a clean install from the published package. -Do not publish `v0.1.0` before P0. +P0 is complete. Published-package smoke evidence closes P1. ## P2 — contributor readiness @@ -100,12 +103,12 @@ after the semantic smoke test passes. ## P5 — DOI and outreach Prepare Zenodo metadata and communication material after the stable release so -the DOI points to immutable public artifacts. Outreach should ask for independent -reproductions and comparable structured reports, not only stars or screenshots. +the DOI points to immutable public artifacts. The project may accept optional independent +reproductions and comparable structured reports without treating them as a release gate. ## Maintainer decision rules / 维护规则 -- Never mark P0 complete from a maintainer-controlled machine. +- Never describe a maintainer-controlled check as independent reproduction. - Never release a metric without an anti-gaming or failure-baseline test. - Never label a proxy as a capability the model does not expose. - Never commit checkpoints, datasets, credentials, or generated private evidence. diff --git a/docs/WAMProbe_PLAN.md b/docs/WAMProbe_PLAN.md index 6d50dd2..2e71f8e 100644 --- a/docs/WAMProbe_PLAN.md +++ b/docs/WAMProbe_PLAN.md @@ -990,8 +990,9 @@ CLI 验收要求: 当前进度(2026-07-15):15 个文献失败模式和首个 Adapter 审计已经完成,见 [`docs/research/WAM_VLA_FAILURE_CASES.md`](research/WAM_VLA_FAILURE_CASES.md) 与 [`docs/research/ADAPTER_SELECTION.md`](research/ADAPTER_SELECTION.md)。MkDocs 文档站、 -严格站点构建、仓库内 Markdown 链接检查和公开 JSON Schema/规范实例验证也已进入 CI; -外部研究者 README 理解度检查仍需人工完成。 +严格站点构建、仓库内 Markdown 链接检查和公开 JSON Schema/规范实例验证也已进入 CI。 +原计划中的外部研究者 README 理解度检查已降级为可选的后续反馈,不作为 `v0.1` +发布门槛;当前没有作出独立外部验证声明。 任务: @@ -1010,7 +1011,7 @@ CLI 验收要求: 退出条件: -- 至少一个外部研究者能根据文档解释 WAMProbe 与普通视频/VLA 评测的区别; +- README 能明确解释 WAMProbe 与普通视频/VLA 评测的区别,并通过仓库链接检查; - 首个 adapter 的模型能力和许可证已经核实。 ### Phase 1:核心 API 与数据格式(第 3–4 周) @@ -1124,15 +1125,18 @@ snapshot 执行全部动作块,并在 horizon 8/16/32 记录状态、回报和 return 的 5-profile 描述性 Pearson 分别为 0.9855/1.0。全部结果、context-block CI 和限制 见 [`examples/video-control-study/`](https://github.com/myheart521/WAMProbe/blob/main/examples/video-control-study/video-control-study.md) 与 [`docs/experiments/TOY_CLOSED_LOOP_V0.1.md`](experiments/TOY_CLOSED_LOOP_V0.1.md)。 -`0.1.0rc1` 候选版本现已具备双构建 SHA 一致性、归档安全/metadata 审计、证据 manifest、 +`0.1.0rc1` 候选版本已具备双构建 SHA 一致性、归档安全/metadata 审计、证据 manifest、 离线干净 wheel 安装 smoke、手动 provenance attestation workflow,并提供可在 Overleaf 直接编译的 5 页技术报告初稿。`v0.1.0rc1` 已作为 GitHub pre-release 发布,wheel 与 -sdist 的 provenance attestation 已登记;外部复现请求见 +sdist 的 provenance attestation 已登记;维护者复现记录见 [`WAMProbe#2`](https://github.com/myheart521/WAMProbe/issues/2),StarWAM 第三方评测入口见 [`StarWAM#2`](https://github.com/shaohua-pan/StarWAM/pull/2)。2026-07-16 已通过 GitHub OIDC Trusted Publishing 将 `wamprobe==0.1.0rc1` 发布到 PyPI,并在全新 Python 3.13 环境 -用标准 `pip install wamprobe` 完成 CLI/demo smoke;Overleaf 上传仍等待可用的账户登录态, -独立用户 smoke 在收到真实第三方报告前保持未完成。 +用标准 `pip install wamprobe` 完成 CLI/demo smoke。2026-07-16,项目所有者决定以透明记录的 +维护者干净环境 smoke 作为 `v0.1` 包验收门槛,不再等待外部用户;该证据记录在 +[`WAMProbe#2`](https://github.com/myheart521/WAMProbe/issues/2),并明确不称为独立外部 +复现。稳定版 `v0.1.0` 随后通过相同的可复现构建、GitHub provenance 和 PyPI OIDC +流程发布。Overleaf 上传继续暂缓。 任务: @@ -1149,7 +1153,7 @@ v0.1 发布门槛: - 6 个以上核心指标; - 端到端复现脚本; - 结构化报告与统计置信区间; -- 一个外部用户成功复现 smoke test。 +- 维护者在全新环境从公开发行包安装并成功复现 smoke test,记录命令、耗时和输出哈希。 --- @@ -1323,7 +1327,8 @@ priority:p1 - [x] 所有 release artifact 可追溯; - [x] README 15 分钟 quickstart 可执行; - [x] benchmark/model/metric cards 完整; -- [ ] 至少一个外部用户复现 smoke test。 +- [x] 维护者从公开发行包在全新环境复现 smoke test,并公开命令、耗时和输出哈希; +- 独立外部复现尚未完成,且不作为 `v0.1` 发布门槛;维护者运行不得称为独立证据。 --- diff --git a/docs/models/STARWAM.md b/docs/models/STARWAM.md index 8768ed2..242c1db 100644 --- a/docs/models/STARWAM.md +++ b/docs/models/STARWAM.md @@ -13,7 +13,7 @@ and validated against the public Draft 2020-12 capability schema in CI. | Released model | `panshaohua/starwam@7d4bfe3ec76172ca17169fa959d21da099d386fe` | | Checkpoint SHA256 | `d24edea01579880327cfd9dc84d24adab82e420dca9652e614ad697bc8cc5378` | | Backbone | Wan2.2 TI2V-5B revision `921dbaf3f1674a56f47e83fb80a34bac8a8f203e` | -| Adapter version | `0.1.0rc1` | +| Adapter version | `0.1.0` | | Upstream code/model license | Apache-2.0 as declared by upstream repositories | The WAMProbe adapter is an isolated integration target, not a reimplementation or an diff --git a/docs/reproducibility/REPRODUCIBILITY.md b/docs/reproducibility/REPRODUCIBILITY.md index bc97b53..c4a8ac0 100644 --- a/docs/reproducibility/REPRODUCIBILITY.md +++ b/docs/reproducibility/REPRODUCIBILITY.md @@ -57,10 +57,13 @@ byte-reproducible distributions, a `release-manifest.json`, a passing offline cl install, and matching evidence hashes. See [`release/README.md`](https://github.com/myheart521/WAMProbe/blob/main/release/README.md). -## Independent reproduction report +## Maintainer acceptance and optional independent reports -An external reproducer should record the Git commit/tag, operating system, Python version, -install command, exact smoke command, exit status, output JSON SHA256, elapsed time, and any -deviation. A template is provided in -[`EXTERNAL_REPRODUCTION_TEMPLATE.md`](EXTERNAL_REPRODUCTION_TEMPLATE.md). Maintainers must -not mark the external-smoke release gate complete from a run on their own machine. +The `v0.1.0` release uses a documented maintainer clean-install check as its package +acceptance gate. The report must record the Git tag, operating system, Python version, +install command, exact smoke command, exit status, output JSON SHA256, elapsed time, and +any deviation. Issue #2 preserves the public record. + +Independent reports remain welcome as additional evidence. A template is provided in +[`EXTERNAL_REPRODUCTION_TEMPLATE.md`](EXTERNAL_REPRODUCTION_TEMPLATE.md). A maintainer-run +check must always be labeled as maintainer evidence and never described as independent. diff --git a/pyproject.toml b/pyproject.toml index fa28503..9a189b4 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "hatchling.build" [project] name = "wamprobe" -version = "0.1.0rc1" +version = "0.1.0" description = "Causal consistency and control-utility evaluation for World Action Models" readme = "README.md" requires-python = ">=3.11" diff --git a/release/README.md b/release/README.md index c23bf4c..59bf9dc 100644 --- a/release/README.md +++ b/release/README.md @@ -33,26 +33,31 @@ provenance attestations. It is manual-dispatch only. ## Public release boundary -The audited `v0.1.0rc1` artifacts are available from the -[GitHub pre-release](https://github.com/myheart521/WAMProbe/releases/tag/v0.1.0rc1), and -the wheel and sdist have GitHub build-provenance attestations. The independent clean-smoke -request is tracked in [Issue #2](https://github.com/myheart521/WAMProbe/issues/2). The same -artifacts are published as -[`wamprobe==0.1.0rc1`](https://pypi.org/project/wamprobe/0.1.0rc1/); PyPI SHA256 values -match the audited release manifest. - -Before promoting a final release, a maintainer must review the candidate manifest, confirm -the version and changelog, obtain one independent clean-environment smoke report, and -approve both the Git tag and GitHub Release text. Final `v0.1.0` publication remains a -separate maintainer decision after the release-candidate review. +The audited stable artifacts are available from the +[`v0.1.0` GitHub Release](https://github.com/myheart521/WAMProbe/releases/tag/v0.1.0), and +the wheel and sdist have GitHub build-provenance attestations. The same artifacts are +published as [`wamprobe==0.1.0`](https://pypi.org/project/wamprobe/0.1.0/); PyPI SHA256 +values match the audited release manifest. + +The project owner selected a documented maintainer clean-environment smoke as the final +package acceptance gate. [Issue #2](https://github.com/myheart521/WAMProbe/issues/2) +records installs from both public GitHub/PyPI artifacts, exact commands, environment, +elapsed time, and output hashes. This is maintainer evidence and is not described as +independent external reproduction. Third-party reports remain optional additional +evidence. + +Before publishing a final release, a maintainer must review the candidate manifest, +confirm the version and changelog, complete the clean-install smoke, and approve both the +Git tag and GitHub Release text. The guarded `Publish to PyPI` workflow is manual-dispatch only, runs only when the selected ref is a tag, requires the typed confirmation to equal that tag, verifies that `v` equals the tag, rebuilds the clean candidate, and uses short-lived GitHub OIDC through the protected `pypi` environment. It contains no API token and does not create a GitHub Release. The PyPI Trusted Publisher configuration for this repository was -verified by the successful `v0.1.0rc1` publication on 2026-07-16. +first verified by the successful `v0.1.0rc1` publication on 2026-07-16 and is reused +without a long-lived token. -Rollback for a bad pre-release means yanking the affected PyPI file (without deleting its -audit record), marking the GitHub Release as a pre-release with a warning, and preparing a -new version. Published filenames and tags are immutable and must never be overwritten. +Rollback for a bad release means yanking the affected PyPI file without deleting its audit +record, adding a warning to the GitHub Release, and preparing a new version. Published +filenames and tags are immutable and must never be overwritten. diff --git a/release/evidence-manifest-v0.1.json b/release/evidence-manifest-v0.1.json index 9fd555c..fd8c72f 100644 --- a/release/evidence-manifest-v0.1.json +++ b/release/evidence-manifest-v0.1.json @@ -1,6 +1,6 @@ { "schema_version": "0.1", - "release_version": "0.1.0rc1", + "release_version": "0.1.0", "committed_evidence": [ { "path": "release/evidence-manifest-v0.1.schema.json", diff --git a/src/wamprobe/__init__.py b/src/wamprobe/__init__.py index dba4eca..4e20b32 100644 --- a/src/wamprobe/__init__.py +++ b/src/wamprobe/__init__.py @@ -1,3 +1,3 @@ """WAMProbe: counterfactual evaluation for World Action Models.""" -__version__ = "0.1.0rc1" +__version__ = "0.1.0" diff --git a/tests/test_import.py b/tests/test_import.py index 5407422..f721364 100644 --- a/tests/test_import.py +++ b/tests/test_import.py @@ -2,4 +2,4 @@ def test_version_is_exposed() -> None: - assert wamprobe.__version__ == "0.1.0rc1" + assert wamprobe.__version__ == "0.1.0" diff --git a/uv.lock b/uv.lock index 0a34ce0..f3c0abe 100644 --- a/uv.lock +++ b/uv.lock @@ -882,7 +882,7 @@ wheels = [ [[package]] name = "wamprobe" -version = "0.1.0rc1" +version = "0.1.0" source = { editable = "." } [package.optional-dependencies]