Skip to content

Commit 497acc3

Browse files
Prepare v0.9.0rc4 release draft
1 parent f35c656 commit 497acc3

40 files changed

Lines changed: 352 additions & 131 deletions

README.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,9 @@ COMSOL, or proprietary Ansys tools. External solvers are optional and not run by
3232
default. External LLM access is optional and not required by default.
3333

3434
Release status: the current public release candidate is `v0.9.0rc3`, while the
35-
current `main` development version is `0.9.0rc4.dev0`. `main` may contain
36-
post-`v0.9.0rc3` hardening changes. `v0.9.0rc4.dev0` is not a public release,
37-
and the `v0.9.0rc4` tag has not been created.
35+
current `main` release draft is `0.9.0rc4`. `main` contains post-`v0.9.0rc3`
36+
hardening changes prepared for maintainer review. The `v0.9.0rc4` tag and
37+
GitHub release have not been created.
3838
It includes v0.6 local/manual diagnostics, v0.7 multi-solver adapter MVP
3939
scaffolds, v0.8 LLM parser foundation work, and v0.9 synchronous workflow
4040
orchestration foundation work as preview/scaffold/evaluation capabilities.
@@ -49,7 +49,7 @@ current release policy and release-readiness matrix. Use
4949
for the repeatable RC procedure and
5050
[`docs/v1_0_readiness_plan.md`](docs/v1_0_readiness_plan.md) for the path from
5151
the current RC line toward `v1.0`.
52-
Current rc4 development readiness and publication gates are tracked in
52+
Current rc4 release draft readiness and publication gates are tracked in
5353
[`docs/release_readiness_v0.9.0rc4.md`](docs/release_readiness_v0.9.0rc4.md),
5454
[`docs/testpypi_dry_run_gate.md`](docs/testpypi_dry_run_gate.md), and
5555
[`docs/v1_0_stability_gate.md`](docs/v1_0_stability_gate.md).
@@ -89,8 +89,8 @@ optical-spec-agent 是一个开源仿真工具链优先的光学仿真工作流
8989
一个面向光学仿真的规格编译层:它把中英文自然语言
9090
仿真需求转换为经过校验的 OpticalSpec JSON,并可进一步生成 Meep / MPB /
9191
Gmsh / Elmer / Optiland 的 solver-native input scaffold。当前公开
92-
pre-release 是 `v0.9.0rc3`,当前 `main` package version 是 `0.9.0rc4.dev0`
93-
`main` 可能包含 post-`v0.9.0rc3` hardening changes;`v0.9.0rc4.dev0` 不是公开
92+
pre-release 是 `v0.9.0rc3`,当前 `main` package version 是 `0.9.0rc4`
93+
`main` 可能包含 post-`v0.9.0rc3` hardening changes;`v0.9.0rc4` 不是公开
9494
release,`v0.9.0rc4` tag 尚未创建,也不是最终稳定版。
9595
本项目不是求解器,也不提供 production-grade physical validation。完整中文文档见
9696
[README.zh-CN.md](README.zh-CN.md)
@@ -132,7 +132,7 @@ Optical simulation tasks are inherently multi-parameter: geometry, materials, so
132132
- **Output**: typed, validated spec JSON with per-field provenance (confirmed / inferred / missing)
133133
- **Contract**: every field carries its status and derivation note, so downstream agents know what to trust and what to verify
134134

135-
## Current scope (main `0.9.0rc4.dev0`: post-v0.9.0rc3 hardening)
135+
## Current scope (main `0.9.0rc4`: post-v0.9.0rc3 hardening)
136136

137137
`v0.6` diagnostics are post-hoc, local/manual checks around generated Meep run
138138
artifacts. `v0.7` adapters generate annotated solver-input scaffolds for
@@ -231,7 +231,7 @@ no-proprietary-solver flow, see
231231
[`examples/e2e/README.md`](examples/e2e/README.md).
232232

233233
The checked-in fixtures under [`examples/`](examples/README.md) are the
234-
canonical no-network examples for the current `0.9.0rc4.dev0` main branch and
234+
canonical no-network examples for the current `0.9.0rc4` main branch and
235235
the public `v0.9.0rc3` RC line:
236236

237237
```bash

README.zh-CN.md

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -36,10 +36,9 @@ PyPI/TestPyPI 仍未发布/上传。
3636

3737
## 发布状态
3838

39-
当前公开 release candidate 是 `v0.9.0rc3`。当前 `main` 的 package version 是
40-
`0.9.0rc4.dev0`,可能包含 post-`v0.9.0rc3` hardening changes。
41-
`v0.9.0rc4.dev0` 不是公开 release,`v0.9.0rc4` tag 尚未创建;这仍然不是
42-
final stable `1.0`
39+
当前公开 release candidate 是 `v0.9.0rc3`。当前 `main` 的 release draft
40+
version 是 `0.9.0rc4`,包含 post-`v0.9.0rc3` hardening changes。
41+
`v0.9.0rc4` tag 和 GitHub release 尚未创建;这仍然不是 final stable `1.0`
4342

4443
`v0.6``v0.9` 的能力属于 preview/scaffold/evaluation capabilities:
4544

@@ -159,7 +158,7 @@ pip install -e ".[dev]"
159158
完整的无网络、无外部 solver、无外部 LLM、无 proprietary solver 默认依赖的
160159
端到端路径见 `docs/offline_user_journey.md``examples/e2e/README.md`
161160

162-
`examples/` 目录中的 fixture 是当前 `0.9.0rc4.dev0` main 和公开
161+
`examples/` 目录中的 fixture 是当前 `0.9.0rc4` main 和公开
163162
`v0.9.0rc3` RC 线的本地示例证据:
164163

165164
```bash

docs/adapter_support_matrix.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# Adapter Support Matrix
22

33
Version scope: current public prerelease `v0.9.0rc3`; current `main`
4-
development version `0.9.0rc4.dev0`. `v0.9.0rc4.dev0` is not a release, the
4+
development version `0.9.0rc4`. `v0.9.0rc4` is not a release, the
55
`v0.9.0rc4` tag has not been created, and PyPI/TestPyPI remain unpublished.
66
Continue v1.0 readiness engineering and prepare a `v0.9.0rc4` release draft
77
only when accumulated changes should be published as another RC.

docs/cli_contract.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# CLI Contract
22

33
Version scope: current public prerelease `v0.9.0rc3`; current `main`
4-
development version `0.9.0rc4.dev0`. `v0.9.0rc4.dev0` is not a release, the
4+
development version `0.9.0rc4`. `v0.9.0rc4` is not a release, the
55
`v0.9.0rc4` tag has not been created, and PyPI/TestPyPI remain unpublished.
66
Continue v1.0 readiness engineering and prepare a `v0.9.0rc4` release draft
77
only when accumulated changes should be published as another RC.

docs/external_llm_policy.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22

33
External LLM access is not required by default.
44

5-
Current public prerelease: `v0.9.0rc3`. Current main development version:
6-
`0.9.0rc4.dev0`. `v0.9.0rc4.dev0` is not a release, the `v0.9.0rc4` tag has
5+
Current public prerelease: `v0.9.0rc3`. Current main release draft:
6+
`0.9.0rc4`. `v0.9.0rc4` is not a release, the `v0.9.0rc4` tag has
77
not been created, and PyPI/TestPyPI remain unpublished. Continue v1.0 readiness
88
engineering and prepare a `v0.9.0rc4` release draft only when accumulated
99
changes should be published as another RC.

docs/external_solver_policy.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@ External solvers are not run by default. optical-spec-agent is
44
open-source-solver-first: the default route is local artifact preview and
55
offline evidence, not automatic solver execution.
66

7-
Current public prerelease: `v0.9.0rc3`. Current main development version:
8-
`0.9.0rc4.dev0`. `v0.9.0rc4.dev0` is not a release, the `v0.9.0rc4` tag has
7+
Current public prerelease: `v0.9.0rc3`. Current main release draft:
8+
`0.9.0rc4`. `v0.9.0rc4` is not a release, the `v0.9.0rc4` tag has
99
not been created, and PyPI/TestPyPI remain unpublished. Continue v1.0 readiness
1010
engineering and prepare a `v0.9.0rc4` release draft only when accumulated
1111
changes should be published as another RC.
Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
# optical-spec-agent v0.9.0rc4
2+
3+
## English summary
4+
5+
`v0.9.0rc4` is the fourth release candidate for the `v0.9.0` line. It packages
6+
the v1.0 readiness hardening accumulated after `v0.9.0rc3`.
7+
8+
Highlights include:
9+
10+
- Open-source-solver-first product strategy.
11+
- Broader adapter family evidence for Meep, Gmsh, Elmer, MPB, and Optiland.
12+
- Offline examples and `examples/examples_manifest.json`.
13+
- Offline end-to-end user journey.
14+
- Error model and pre-v1 migration notes.
15+
- Public contract freeze candidate.
16+
- Public contract manifest.
17+
- Validation evidence manifest.
18+
- TestPyPI no-upload preflight.
19+
- Packaging and validation gates.
20+
- Wheel install smoke.
21+
- No proprietary solver dependency by default.
22+
- No external solver or external LLM required by default.
23+
24+
## 中文简介
25+
26+
`v0.9.0rc4``v0.9.0` 的第四个候选版本,纳入了 `v0.9.0rc3`
27+
之后的 v1.0 readiness 加固。
28+
29+
本候选版本明确 open-source-solver-first 定位,扩展了 Meep、Gmsh、Elmer、
30+
MPB、Optiland 的 adapter family evidence,增加了离线端到端用户旅程、
31+
public contract freeze candidate、public contract manifest、TestPyPI
32+
no-upload preflight,以及 packaging / validation gates。
33+
34+
PyPI 仍未发布,TestPyPI 仍未上传。
35+
36+
## Verification
37+
38+
- `scripts/testpypi_preflight.sh`: passed
39+
- `scripts/smoke_release.sh`: passed
40+
- Wheel install smoke: passed
41+
- `pytest`: 429 passed, 4 warnings
42+
- `python -m build`: passed
43+
- `make check`: passed
44+
- CLI examples passed:
45+
- `optical-spec --help`
46+
- `optical-spec adapter-list --json`
47+
- `optical-spec validate examples/specs/minimal_nanoparticle.json`
48+
- `optical-spec parse examples/specs/minimal_nanoparticle.json --json`
49+
- `optical-spec workflow-plan examples/workflows/local_preview_request.json --json`
50+
- `optical-spec workflow-plan examples/e2e/local_optical_workflow.json --json`
51+
- Dist files:
52+
- `optical_spec_agent-0.9.0rc4-py3-none-any.whl`
53+
- `optical_spec_agent-0.9.0rc4.tar.gz`
54+
- PyPI: not published
55+
- TestPyPI: not uploaded
56+
57+
## Scope limitations
58+
59+
- No PyPI publish.
60+
- No TestPyPI upload.
61+
- No production-grade physical validation.
62+
- No formal convergence proof.
63+
- External solvers are not run by default.
64+
- External LLM is not required by default.
65+
- Proprietary solvers are not required by default.
66+
- Adapter outputs may still be MVP/scaffold unless explicitly validated.
67+
- Workflow is local/synchronous preview.
68+
- This RC is not final 1.0 stability.
69+
70+
## Important note
71+
72+
- `v0.9.0rc1`, `v0.9.0rc2`, and `v0.9.0rc3` tags are unchanged.
73+
- `v0.9.0rc4` should be created as a new annotated tag only after final
74+
readiness checks pass.
75+
- This draft does not create or move any tag.
76+
- This draft does not create a GitHub release.
77+
- This draft does not upload TestPyPI.
78+
- This draft does not publish PyPI.

docs/migration_notes_pre_v1.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
## Current status
44

55
- Current public prerelease: v0.9.0rc3
6-
- Current main development version: 0.9.0rc4.dev0
6+
- Current main release draft: 0.9.0rc4
77
- v1.0.0 not released
88
- PyPI/TestPyPI not published/uploaded
99
- Public contract freeze candidate: `docs/v1_0_public_contract_freeze.md`

docs/offline_user_journey.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ no proprietary software, and no proprietary optical software.
99
## Current version scope
1010

1111
- Current public prerelease: v0.9.0rc3
12-
- Current main development version: 0.9.0rc4.dev0
12+
- Current main release draft: 0.9.0rc4
1313
- PyPI/TestPyPI: not published / not uploaded
1414
- v0.9.0rc4 tag: not created
1515

docs/packaging_gate.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,24 @@
11
# Packaging Gate
22

3-
Version scope: current `main` development version `0.9.0rc4.dev0` after the
3+
Version scope: current `main` release draft `0.9.0rc4` after the
44
verified public `v0.9.0rc3` prerelease.
55

66
## Current package baseline
77

88
- Package name: `optical-spec-agent`
9-
- Current package version on `main`: `0.9.0rc4.dev0`
10-
- Current main development version: `0.9.0rc4.dev0`
9+
- Current package version on `main`: `0.9.0rc4`
10+
- Current main release draft: `0.9.0rc4`
1111
- Current public prerelease: `v0.9.0rc3`
1212
- Product positioning: open-source-solver-first
1313
- `v0.9.0rc1`, `v0.9.0rc2`, and `v0.9.0rc3` tags remain unchanged.
14-
- `v0.9.0rc4.dev0` is not a public release.
14+
- `v0.9.0rc4` GitHub release: not created
1515
- `v0.9.0rc4` tag: not created
1616
- PyPI status: not published
1717
- TestPyPI status: not published
1818
- TestPyPI dry-run gate doc: `docs/testpypi_dry_run_gate.md`
1919
- TestPyPI no-upload preflight script: `scripts/testpypi_preflight.sh`
2020
- TestPyPI upload approval record:
21-
`docs/testpypi_upload_approval_v0.9.0rc4.dev0.md`
21+
`docs/testpypi_upload_approval_v0.9.0rc4.md`
2222
- TestPyPI upload approval status: pending
2323
- TestPyPI upload authorized: no
2424
- PyPI publication approval: not granted
@@ -28,8 +28,8 @@ verified public `v0.9.0rc3` prerelease.
2828
- Build backend: `hatchling`
2929
- Console script: `optical-spec`
3030
- Expected build artifacts for current main:
31-
- `optical_spec_agent-0.9.0rc4.dev0-py3-none-any.whl`
32-
- `optical_spec_agent-0.9.0rc4.dev0.tar.gz`
31+
- `optical_spec_agent-0.9.0rc4-py3-none-any.whl`
32+
- `optical_spec_agent-0.9.0rc4.tar.gz`
3333

3434
## Packaging checks required before publication
3535

@@ -73,7 +73,7 @@ verified public `v0.9.0rc3` prerelease.
7373
GitHub releases.
7474
- TestPyPI upload requires explicit maintainer approval.
7575
- Approval remains pending in
76-
`docs/testpypi_upload_approval_v0.9.0rc4.dev0.md`.
76+
`docs/testpypi_upload_approval_v0.9.0rc4.md`.
7777
- TestPyPI upload must not be part of the default smoke script.
7878
- Wheel smoke remains local only.
7979
- Smoke script must not publish or upload packages.

0 commit comments

Comments
 (0)