Add elfuse-oci pull into a local image store - #341
Conversation
There was a problem hiding this comment.
All reported issues were addressed across 20 files
Reply with feedback, questions, or to request a fix.
Re-trigger cubic
There was a problem hiding this comment.
All reported issues were addressed across 20 files (changes from recent commits).
Reply with feedback, questions, or to request a fix.
Re-trigger cubic
There was a problem hiding this comment.
All reported issues were addressed across 20 files (changes from recent commits).
Requires human review: Auto-approval blocked because this review re-detected 1 unresolved issue already reported by Cubic.
Tip: Review your code locally with the cubic CLI to iterate faster.
Re-trigger cubic
There was a problem hiding this comment.
1 issue found across 20 files (changes from recent commits).
Prompt for AI agents (unresolved issues)
Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.
<file name=".github/workflows/build.yml">
<violation number="1" location=".github/workflows/build.yml:135">
P2: On a cold runner this job compiles the containerd/v2+grpc+protobuf dependency tree three separate times with an empty build cache: `make elfuse-oci` (non-race), oci-lint's `GOOS=darwin GOARCH=arm64 go vet` (a separate cache key), and oci-test's `go test -race` (a near-full recompile under race instrumentation). Ten minutes may be too tight and can turn into intermittent job timeouts that require re-runs. Raise the budget or persist the Go build/module cache (e.g. actions/cache on GOMODCACHE/go-build) as the other jobs do for Homebrew downloads.</violation>
</file>
Tip: Review your code locally with the cubic CLI to iterate faster.
Re-trigger cubic
| oci-linux: | ||
| name: elfuse-oci (Linux) | ||
| runs-on: ubuntu-24.04 | ||
| timeout-minutes: 10 |
There was a problem hiding this comment.
P2: On a cold runner this job compiles the containerd/v2+grpc+protobuf dependency tree three separate times with an empty build cache: make elfuse-oci (non-race), oci-lint's GOOS=darwin GOARCH=arm64 go vet (a separate cache key), and oci-test's go test -race (a near-full recompile under race instrumentation). Ten minutes may be too tight and can turn into intermittent job timeouts that require re-runs. Raise the budget or persist the Go build/module cache (e.g. actions/cache on GOMODCACHE/go-build) as the other jobs do for Homebrew downloads.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At .github/workflows/build.yml, line 135:
<comment>On a cold runner this job compiles the containerd/v2+grpc+protobuf dependency tree three separate times with an empty build cache: `make elfuse-oci` (non-race), oci-lint's `GOOS=darwin GOARCH=arm64 go vet` (a separate cache key), and oci-test's `go test -race` (a near-full recompile under race instrumentation). Ten minutes may be too tight and can turn into intermittent job timeouts that require re-runs. Raise the budget or persist the Go build/module cache (e.g. actions/cache on GOMODCACHE/go-build) as the other jobs do for Homebrew downloads.</comment>
<file context>
@@ -126,6 +126,30 @@ jobs:
+ oci-linux:
+ name: elfuse-oci (Linux)
+ runs-on: ubuntu-24.04
+ timeout-minutes: 10
+ steps:
+ - name: Checkout
</file context>
| timeout-minutes: 10 | |
| timeout-minutes: 20 |
There was a problem hiding this comment.
All reported issues were addressed across 20 files (changes from recent commits).
Requires human review: Auto-approval blocked because this review re-detected 1 unresolved issue already reported by Cubic.
Tip: Review your code locally with the cubic CLI to iterate faster.
Re-trigger cubic
There was a problem hiding this comment.
All reported issues were addressed across 22 files
Requires human review: Auto-approval blocked because this review re-detected 1 unresolved issue already reported by Cubic.
Re-trigger cubic
|
Final switch of the open source library after trying out different projects and attempting to make it maintainable in the long run |
Publish canonical references and per-platform manifests through standard OCI indexes so layout readers can resolve the stored image. Use go-containerregistry for reference parsing and registry access.
Describe the OCI store, reference normalization, platform selection, credentials, timeouts, and pull validation. Add the command and environment surface to the user guide.
a5146cf to
b96a08d
Compare
Summary by cubic
Adds
elfuse-oci, a Go CLI that pulls OCI images into a local store, keeping elfuse an OCI-agnostic runtime.New Features
pullfetches an image viago-containerregistryinto an OCI layout and pins it inindex.jsonby canonical ref and platform; a legacyrefs.jsonstore is refused.--timeoutbounds the whole pull including the lock wait; a lock freed after the deadline is released, not used.--platformonly acceptslinux/arm64andlinux/amd64.mk/oci.mkopts the CLI intoall,check, andlintonly when PATH's Go meets go.mod underGOTOOLCHAIN=local; CI runs race tests and lint on Linux.Written for commit b96a08d. Summary will update on new commits.