ITADN

release: fix Rust publish plan for split crates

#7466OpenXuanwo 创建于 2026-05-01
releases-note/fixrustrelease
X
Xuanwocommented
During the `v0.56.0` release, the Rust release workflow could not complete and required manual recovery. Observed issues: - `crates-io-auth-action` trusted publishing tokens cannot create new crates, so first-time split crates such as `opendal-core`, `opendal-service-*`, and `opendal-layer-*` failed with `Trusted Publishing tokens do not support creating new crates`. - `.github/scripts/release_rust/plan.py` only considers normal/build dependencies. crates.io still resolves dev-dependencies during packaging, so the plan published some crates too early. For example, `opendal-layer-route` needs `opendal-service-fs` as a dev-dependency. - `core/testkit` is omitted from `PUBLISH_GLOBS`, but top-level `opendal` depends on `opendal-testkit = 0.56.0` through the `tests` feature. - `opendal-testkit` has `publish = false`, which makes top-level `opendal` impossible to publish as-is. - There are dev-only first-publish cycles, including `opendal-layer-retry` <-> `opendal-layer-timeout` and `opendal-service-foyer` -> `opendal`, that need an explicit release strategy. The manual recovery was to publish crates in a dev-dependency-aware order, temporarily break the dev-only cycles for initial crate creation, publish `opendal-testkit`, then publish top-level `opendal` and the integrations. We should update the Rust release automation so future releases can run without manual manifest edits or ad hoc ordering.
0 条评论