airvzxf / airvzxf/voxora

voxora 0.6.0 — release publish blocked on crates.io trust-pub registration

Open
#169 2 comments 0 reactions 0 assignees View on GitHub
infrastructure pending-human
Dominant language
Rust
Stars
0
Forks
1
Avg merge
11m
Merged PRs (30d)
47

Description

## Status

All 11 actionable issues (#153–#161) for EPIC #153 are resolved, the
code is merged to main (#165 + #166), the 12 per-crate tags are cut
and pushed (voxora-{traits,config,minimax,engine,backend,whisper,qwen3asr,hf,registry,local,vad,bridge}-v0.6.0), and the
release.yml::publish-cratesio jobs dispatch correctly.

## Blocker

Every crate that has never been published to crates.io (including
voxora-traits, which is the foundation of every other crate)
returns 403 Forbidden at the cargo publish step with the
annotation:

::error title=Trusted Publishing trust not registered for CARGO_PUBLISH_CRATE::crates.io returned 403 for **CARGO_PUBLISH_CRATE**. The OIDC exchange succeeded but the crate has no trustpub_configs_github row.

The publish job is wired correctly — the failure is upstream of
cargo, in the crates.io trust-pub registry. Each crate that has
never been published needs a one-time operator action in the
crates.io UI:

1. Visit https://crates.io/crates//settings/trusted-publishing
2. Click Add GitHub publisher
3. Fill the four fields:
- Repository owner: airvzxf
- Repository name: voxora
- Workflow filename: release.yml
- Environment name: (leave blank)
4. Repeat for every crate that fails.

## Affected crates

Crate-by-crate, only those with no prior crates.io entry need
registration. Existing entries (already on crates.io at any prior
version) do not need re-registration — they only need a version
that satisfies the new internal-dep constraints.

If this is the first-ever publish of a crate, the
crates.io/crates//new page is the manual entry point
(after the trust-pub is registered the GitHub Action can drive
subsequent publishes).

## Once registered

Run in dep order (or re-dispatch orchestrate-release.yml after
every trust-pub registration):

for c in traits config minimax engine backend whisper qwen3asr \
hf registry local vad bridge; do
gh workflow run release.yml -f "tag=voxora-${c}-v0.6.0"
# Wait for each to finish before starting the next.
done

The orchestrator workflow (.github/workflows/orchestrate-release.yml)
already walks this order; it can be re-dispatched once trust-pub is
configured for every crate:

gh workflow run orchestrate-release.yml -f version=0.6.0

(Per AGENTS.md § Red/failed-workflows, the orchestrator's
gh workflow run release.yml from inside the runner uses
GITHUB_TOKEN, which does NOT carry the workflows: write scope
required to dispatch cross-workflow. This is a separate architectural
issue from trust-pub — the orchestrator is documented but
unusable until that scope is fixed. Workaround: dispatch each
release.yml manually from the operator's gh CLI as above.)

## Reference

- AGENTS.md § Red / failed workflows
- AGENTS.md § Trusted Signers
- .github/workflows/release.yml::publish-cratesio (the
publish step that returns the 403)
- .github/workflows/orchestrate-release.yml (the broken
orchestrator — needs a PAT or workflow-scope change)

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.