mirror of
https://github.com/Yuyi-Oak/BlueArchiveToolkit.git
synced 2026-09-18 08:14:55 +08:00
fix(release):完善当前分发证明与质量门禁
This commit is contained in:
@@ -62,7 +62,8 @@
|
||||
* manifest entry 是否存在;
|
||||
* 文件 size 是否匹配。
|
||||
|
||||
虽然 Rust 已有完整的发布状态、BLAKE3 校验与 release integrity 语义,但 Go 当前并未完整继承这一健康状态。
|
||||
虽然 Rust 已有完整的发布状态、BLAKE3 校验与 release integrity 语义,但 Go 当前需要继承
|
||||
一个轻量、带代际绑定和 freshness 的 current official health proof,而不是触发重型历史扫描。
|
||||
|
||||
因此可能出现:
|
||||
|
||||
@@ -76,9 +77,9 @@
|
||||
建立统一的:
|
||||
|
||||
```text
|
||||
Rust release health
|
||||
Rust current release attestation
|
||||
↓
|
||||
Go ReleaseIndex
|
||||
Go ReleaseIndex(保留 release/publication/manifest identity)
|
||||
↓
|
||||
readiness / bootstrap
|
||||
↓
|
||||
@@ -93,6 +94,13 @@ CDN distribution gate
|
||||
* bootstrap 不应报告 distributable;
|
||||
* CDN 不应继续从该 release 分发任意文件。
|
||||
|
||||
`release.attestation` 必须由 Rust 维护 publication anchor、manifest identity、
|
||||
verification generation、verified_at、integrity/status code 和 diagnostics;轻量读取
|
||||
只检查 current、anchor、manifest 元数据和 freshness,不遍历历史 release,不计算资源
|
||||
文件 BLAKE3。`resource.manifest` 请求绑定 attested `release_id`、
|
||||
`publication_identity`、`manifest_identity`,每页返回相同代际信息;Go 逐页验证
|
||||
release/root/identity/version/total/offset/limit,任何混页都丢弃候选快照。
|
||||
|
||||
保持现有:
|
||||
|
||||
* GET
|
||||
@@ -143,10 +151,12 @@ B 同大小内容损坏,Rust health=false
|
||||
|
||||
## 完成记录
|
||||
|
||||
Rust `release.status.official_distribution_ready` 已接入 Go refresh snapshot;
|
||||
`readyz`、bootstrap、release summary 和普通 current CDN 共用 whole-release
|
||||
distribution gate。刷新失败会清空旧 index,恢复后重新建立快照;显式
|
||||
official/localized/historical 分发仍经 Rust `release.distribution`。
|
||||
当前已完成 Rust current attestation、manifest 代际绑定、Go typed mirror、分页一致性和
|
||||
A→B 切换 fail-closed 测试;`readyz`、bootstrap、release summary 和普通 current CDN
|
||||
共用 `attestation ready + exact manifest generation + complete local snapshot` gate。
|
||||
刷新失败会清空旧 index,恢复后重新建立快照;显式 official/localized/historical 分发
|
||||
仍经 Rust `release.distribution`。`make ci-check`、`make test-go-api` 和
|
||||
`make check-docs` 均已通过。
|
||||
|
||||
---
|
||||
|
||||
@@ -544,14 +554,17 @@ CI 检查必须:
|
||||
* 不修改源码;
|
||||
* 明确报告每项 gate;
|
||||
* required tool 缺失时不应伪装成全部通过;
|
||||
* optional gate 明确标记 optional;
|
||||
* required tool 缺失或版本不匹配必须失败;
|
||||
* 与实际 Gitea CI 尽量保持一致。
|
||||
|
||||
## 完成记录
|
||||
|
||||
`make format` / `make fmt` 保留为显式写入命令,`make ci-check` 和兼容的
|
||||
`make ci` 只执行 read-only required gates;Go lint 在工具缺失时明确输出
|
||||
optional skipped,OpenAPI、RPC contract 和文档一致性由 `make check-docs` 纳入。
|
||||
`make ci` 只执行 read-only required gates;`golangci-lint 2.12.2` 由
|
||||
`scripts/ci-versions.sh` 固定,缺失或版本不匹配失败;OpenAPI、RPC contract 和文档
|
||||
一致性由 `make check-docs` 纳入。Gitea self-hosted runner 执行相同的 required
|
||||
Rust/Go/docs 语义,不添加 GitHub Actions。`make ci-check`、`make test-go-api` 和
|
||||
`make check-docs` 均已通过。
|
||||
|
||||
建议统一覆盖:
|
||||
|
||||
|
||||
Reference in New Issue
Block a user