Skip to content

ci(reuse): run REUSE via uvx instead of the Docker Hub action [DEV-146]#69

Merged
P4suta merged 1 commit into
mainfrom
feature/dev-146-ci-reuse-job-flakes-on-docker-hub-image-pull-switch-to-the
Jul 23, 2026
Merged

ci(reuse): run REUSE via uvx instead of the Docker Hub action [DEV-146]#69
P4suta merged 1 commit into
mainfrom
feature/dev-146-ci-reuse-job-flakes-on-docker-hub-image-pull-switch-to-the

Conversation

@P4suta

@P4suta P4suta commented Jul 23, 2026

Copy link
Copy Markdown
Owner

DEV-146 — stop the reuse CI job flaking on Docker Hub

Problem

The reuse (SPDX/REUSE compliance) job used fsfe/reuse-action, a Docker action that pulls the fsfe/reuse image from Docker Hub at run time. That image-manifest fetch intermittently timed out —

failed to do request: Head "https://registry-1.docker.io/v2/fsfe/reuse/manifests/6": i/o timeout

— failing the job and cascading into ci-required, turning main/PR CI red for a network reason unrelated to REUSE compliance. It was a recurring source of the "main CI intermittently fails" noise.

Fix

Run REUSE through uvx exactly as just reuse does locally (uvx --with charset-normalizer reuse lint): install uv via its official installer (with curl retries) and run just reuse. PyPI/uv are far more reliable than anonymous Docker Hub pulls, and matching the local recipe keeps CI and the dev box from drifting. Verified locally: 257/257 files REUSE-compliant, just reuse exit 0; ci.yml parses and the actionlint gate covers the workflow.

Scope

Only the reuse job. The other intermittent failure — test (ubuntu-latest) timing out — is a separate issue: a flaky async-xz test hang in async_stream_v2.rs::futures_reader_and_writer_match_sync_contract (the FilterId::Xz leg), tracked by DEV-124. Not touched here.

🤖 Generated with Claude Code

The `reuse` job used `fsfe/reuse-action`, a Docker action that pulled the
`fsfe/reuse` image from Docker Hub at run time. That image-manifest fetch
intermittently timed out ("failed to do request: Head
https://registry-1.docker.io/... i/o timeout"), failing the job and cascading
into `ci-required` for a network reason unrelated to REUSE compliance.

Replace it with the same command `just reuse` runs locally
(`uvx --with charset-normalizer reuse lint`): install uv via its official
installer and run `just reuse`. PyPI/uv are far more reliable than anonymous
Docker Hub pulls, and matching the local recipe keeps CI and the dev box from
drifting. Verified locally: 257/257 files REUSE-compliant.

The intermittent `test (ubuntu-latest)` timeout is a separate issue (a flaky
async xz test hang) tracked by DEV-124.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@P4suta
P4suta enabled auto-merge (squash) July 23, 2026 12:43
@P4suta
P4suta merged commit b83b0a6 into main Jul 23, 2026
38 of 40 checks passed
@P4suta
P4suta deleted the feature/dev-146-ci-reuse-job-flakes-on-docker-hub-image-pull-switch-to-the branch July 23, 2026 13:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant