Problem
In .github/workflows/release.yml, the release-rust job uploads the binary like this:
- name: Upload Rust binary to release
run: |
gh release upload "${{ needs.version.outputs.tag }}" \
rs/target/release/docker-socket-policy#docker-socket-policy-rs-linux-amd64 \
--clobber
The <path>#<label> syntax only sets the display label shown in the GitHub UI — it does not rename the uploaded file. The actual asset filename remains docker-socket-policy (the source binary's basename), which is confusingly generic and inconsistent with the other two assets:
- Go:
docker-socket-policy-go
- Rust:
docker-socket-policy (label says docker-socket-policy-rs-linux-amd64, but the real filename doesn't)
- TypeScript:
docker-socket-policy-ts-vX.Y.Z.tar.gz
Confirmed on the v0.2.7 and v0.2.8 releases — both have an asset literally named docker-socket-policy with no language/arch indicator in the filename itself.
Solution
Rename the binary before uploading so the real filename matches the other two languages' convention, e.g.:
- name: Upload Rust binary to release
run: |
cp rs/target/release/docker-socket-policy docker-socket-policy-rs-linux-amd64
gh release upload "${{ needs.version.outputs.tag }}" \
docker-socket-policy-rs-linux-amd64 \
--clobber
Which implementation(s) would this affect?
Additional context
Found while reviewing README/CHANGELOG post-first-release (v0.2.7/v0.2.8). Not a blocker — the asset is functional and correctly labeled in the UI — but the raw filename is misleading for anyone downloading via curl/script rather than the UI.
Problem
In
.github/workflows/release.yml, therelease-rustjob uploads the binary like this:The
<path>#<label>syntax only sets the display label shown in the GitHub UI — it does not rename the uploaded file. The actual asset filename remainsdocker-socket-policy(the source binary's basename), which is confusingly generic and inconsistent with the other two assets:docker-socket-policy-godocker-socket-policy(label saysdocker-socket-policy-rs-linux-amd64, but the real filename doesn't)docker-socket-policy-ts-vX.Y.Z.tar.gzConfirmed on the v0.2.7 and v0.2.8 releases — both have an asset literally named
docker-socket-policywith no language/arch indicator in the filename itself.Solution
Rename the binary before uploading so the real filename matches the other two languages' convention, e.g.:
Which implementation(s) would this affect?
Additional context
Found while reviewing README/CHANGELOG post-first-release (v0.2.7/v0.2.8). Not a blocker — the asset is functional and correctly labeled in the UI — but the raw filename is misleading for anyone downloading via
curl/script rather than the UI.