Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -337,7 +337,7 @@ jobs:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
PRODUCTS_JSON: ${{ steps.release_plan.outputs.products_json }}
run: tools/release/release.py check-registries --products-json "${PRODUCTS_JSON}" --head-ref HEAD --require-identities
run: tools/release/release.py check-registries --products-json "${PRODUCTS_JSON}" --head-ref HEAD

- name: Check existing WASIX runtime release tag
if: ${{ steps.release_plan.outputs.has_release_changes == 'true' && steps.release_plan.outputs.product_liboliphaunt_wasix == 'true' }}
Expand Down
19 changes: 11 additions & 8 deletions docs/maintainers/release-setup.md
Original file line number Diff line number Diff line change
Expand Up @@ -362,7 +362,7 @@ registry state:
moon run dev-tools:doctor
tools/release/release.py check
tools/release/release.py plan --from-product-tags --include-current-tags --head-ref HEAD
tools/release/release.py check-registries --products-json '<released products>' --head-ref HEAD --require-identities
tools/release/release.py check-registries --products-json '<released products>' --head-ref HEAD
tools/release/release.py publish-dry-run --products-json '<released products>' --head-ref HEAD
tools/release/release.py consumer-shape --require-ready --format markdown
```
Expand Down Expand Up @@ -397,13 +397,16 @@ extension artifact products for the first release, keep those product IDs in the
same generated release PR rather than hand-editing the product set. Later
releases can be independent once those current-version
dependency tags, registry packages, and GitHub release assets already exist.
The `--require-identities` check is expected to fail until package identities
have been bootstrapped in their registries. Treat that as setup evidence: create
the npm/JSR packages, verify the Maven namespace/publication path, and manually
bootstrap any first Cargo crates that cannot be created by trusted publishing.
`check-registries --require-identities`, `publish-dry-run`, and `publish` run
that identity preflight for selected products, so a release cannot proceed while
the public package coordinates are only documented but not actually present.
First-time package identities are not a dry-run prerequisite. Some registries
create the package identity during the first publish, while others require
maintainer setup before a package settings page or trusted publisher can be
configured. Treat `check_registry_publication.py --require-identities` as an
optional setup diagnostic, not the release gate. The release gate checks that
planned versions are not already published, runs package-native dry-runs where
the registry supports them, and verifies publication after the real publish.
Create the npm/JSR packages when their registries require it, verify the Maven
namespace/publication path, and manually bootstrap any first Cargo crates that
cannot be created by trusted publishing.
The publish-environment check also rejects legacy long-lived publish secrets
such as `CARGO_REGISTRY_TOKEN`, `NPM_TOKEN`, `NODE_AUTH_TOKEN`, `JSR_TOKEN`, and
CocoaPods trunk credentials. Configure trusted publishing, Maven signing
Expand Down
3 changes: 0 additions & 3 deletions src/bindings/wasix-rust/crates/oliphaunt-wasix/release.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,3 @@ kind = "wasix-rust-binding"
publish_targets = ["crates-io"]
registry_packages = ["crates:oliphaunt-wasix"]
release_artifacts = ["cargo-crate"]
legacy_tag_prefixes = [""]
legacy_version_file = "Cargo.toml"
legacy_version_parser = "cargo"
3 changes: 0 additions & 3 deletions src/runtimes/liboliphaunt/wasix/release.toml
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,3 @@ release_artifacts = [
"aot-crates",
"release-assets",
]
legacy_tag_prefixes = [""]
legacy_version_file = "Cargo.toml"
legacy_version_parser = "cargo"
2 changes: 1 addition & 1 deletion tools/release/check_release_metadata.py
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,7 @@ def validate_release_setup_docs() -> None:
"SwiftPM plus GitHub release assets",
"oliphaunt-broker",
"consumer-shape --require-ready --products-json '<released products>'",
"check-registries --products-json '<released products>' --head-ref HEAD --require-identities",
"check-registries --products-json '<released products>' --head-ref HEAD",
"For the first public release, select every product",
"manually bootstrap any first Cargo crates",
"Manual registry bootstrap is a release-completion state",
Expand Down
7 changes: 1 addition & 6 deletions tools/release/release.py
Original file line number Diff line number Diff line change
Expand Up @@ -1464,12 +1464,7 @@ def command_publish_dry_run(args: argparse.Namespace, passthrough: list[str]) ->
command_check([])
products = selected_products_from_passthrough(passthrough)
if products:
registry_args = (
passthrough
if "--require-identities" in passthrough
else [*passthrough, "--require-identities"]
)
command_check_registries(registry_args)
command_check_registries(passthrough)
run_product_publish_dry_runs(
products,
allow_dirty=args.allow_dirty,
Expand Down
Loading