fix: 将 ARM64 wheel 纳入发布校验和上传流程
补齐全部架构的运行证据、GitHub 发布说明和 PyPI 逐文件下载核验。已通过 161 项测试、代码和文档门禁、九个 wheel 的本地索引下载核验,以及 ARM 三个 ABI 的 40 帧 CPU 检查。
This commit is contained in:
+33
-2
@@ -29,12 +29,13 @@ assets are present; `pyproject.toml` declares which non-code files are packaged.
|
||||
## Build the candidate
|
||||
|
||||
Use the launcher appropriate to the target. `wheel-win` invokes the Windows build;
|
||||
`manylinux` invokes the Docker-backed Linux build. A single-interpreter `wheel`
|
||||
`wheel-manylinux` invokes the Docker-backed Linux build. A single-interpreter `wheel`
|
||||
build is useful for a local candidate, but does not cover every supported ABI.
|
||||
|
||||
```bash
|
||||
python build/run.py wheel-win
|
||||
python build/run.py manylinux
|
||||
python build/run.py wheel-manylinux
|
||||
python build/run.py wheel-manylinux -Architecture aarch64
|
||||
```
|
||||
|
||||
Windows builds use the configured `py310`, `py311`, and `py312` environments.
|
||||
@@ -44,6 +45,11 @@ See [build/README.md](../build/README.md) for build prerequisites and narrower
|
||||
commands. A contributor without these environments can still run tests and hand
|
||||
off a source change; do not describe it as a verified release candidate.
|
||||
|
||||
Build Windows x64, Linux x86_64 and Linux ARM64 before preparing the release
|
||||
report. With Python 3.10, 3.11 and 3.12 this produces nine wheels. Both publishers
|
||||
use every wheel in `SDK/<version>/`; files added or rebuilt after preflight
|
||||
invalidate its certification. ARM64 CPU wheels do not require CUDA.
|
||||
|
||||
## Run the release gate
|
||||
|
||||
After building, run `release preflight` on a clean, reviewed commit. It checks
|
||||
@@ -56,6 +62,16 @@ version check against PyPI. The report is written under
|
||||
python build/run.py release preflight --all-wheel-pythons --check-pypi
|
||||
```
|
||||
|
||||
`--all-wheel-pythons` checks every staged ABI and architecture. Run the complete
|
||||
mixed-platform gate from Windows: Windows wheels use the `py310`, `py311` and
|
||||
`py312` conda environments, while Linux wheels use `orisys-manylinux` or
|
||||
`orisys-manylinux-aarch64` with the matching container Python. Docker must already
|
||||
have these locally built images; verification never pulls or rebuilds them.
|
||||
Linux dependencies come from each image's ABI wheelhouse, in an isolated venv.
|
||||
ARM64 verification on Intel/AMD uses QEMU and can take longer. Every wheel must
|
||||
pass imports, bundled-asset loading and the CPU video pipeline; emulation does
|
||||
not certify Q6A or Jetson hardware, GPU or NPU behavior.
|
||||
|
||||
For work in progress, `--allow-dirty --keep-going` can collect diagnostics, but
|
||||
that report does **not** certify a release. Do not use `--skip-tests`, `--no-runtime`,
|
||||
or `--no-assets` to turn missing verification into approval. If the runtime clip is
|
||||
@@ -72,6 +88,8 @@ not replace the full preflight gate.
|
||||
Hand the maintainer the version, source commit, wheel filenames, preflight report,
|
||||
and any hardware or platform checks that were not run. The publish commands read
|
||||
the passing preflight report and verify the wheel hashes again.
|
||||
The report must also contain successful runtime evidence matching every wheel's
|
||||
hash. Older reports that checked only Windows wheels must be regenerated.
|
||||
|
||||
```bash
|
||||
python build/run.py release github --version <version>
|
||||
@@ -87,3 +105,16 @@ GitHub publication can sync the release mirror, commit, tag, push, and create a
|
||||
Release. See the launcher help and [build/README.md](../build/README.md) for the
|
||||
exact flags. A published version cannot be overwritten, so do not treat a rerun as
|
||||
a way to replace bad wheels.
|
||||
|
||||
The release order is build all candidates, commit source changes, run the clean
|
||||
preflight, preview both publishers, then execute the authorized publications.
|
||||
GitHub attaches all certified wheels and generates notes naming their actual
|
||||
platforms, including ARM64. PyPI defaults to TestPyPI first; after confirming it,
|
||||
use `--confirm-pypi --apply` for production. Each upload checks the complete
|
||||
filename set and downloads every Python/platform wheel from that index to
|
||||
compare its hash. TestPyPI download verification does not fall back to PyPI.
|
||||
If downloads are not yet available, the command reports the successful upload
|
||||
as unconfirmed and stops before uploading to later indexes; check propagation
|
||||
before rerunning.
|
||||
If a published version has a different file set, the commands stop rather than
|
||||
silently extending or replacing that release.
|
||||
|
||||
Reference in New Issue
Block a user