seanfarm fork of project-zot/zot (bounded retry on MinIO 499 ClientDisconnected)
- Go 92.7%
- Shell 6.6%
- Makefile 0.5%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
Adversarial review of the fork (3 lenses, 2 refuters per finding). Four findings held, two were judged harmless but cost one line each to close: - Held. The Writer(append=true) comment said a failed call has no side effect. Not exact: CreateMultipartUpload is inside the retried call, and a 499 can arrive after MinIO stored the upload. The retry is still safe, because it re-enters through ListMultipartUploads, finds that upload with zero parts and continues with it. The comment now says so. The retry.go header also said the SDK retries by code only; it retries statuses 500, 502, 503, 504 too, and 499 is in neither set. No code change. - Held. COPY . . shipped .git, so the test and builder layers were never a cache hit across clones of the same tag (the Shipwright git step keeps .git). Dockerfile.seanfarm.dockerignore keeps .git, .github, bin, hack and pkg/extensions/build out of the context. - Held. The zui download sat after COPY . ., so github.com was contacted on every source change. It is now its own stage keyed on ZUI_VERSION and ZUI_SHA256 only. - Held. The dockerfile frontend is now pinned by digest (1.7.1) like every other image in the file. - Harmless, closed. The wall-clock subtest asserted < 1 s with the real sleeps; it runs under -race in the in-cluster image build. The bound is now 5 s; the injected-sleep case already pins the 300 ms worst case. - Harmless, closed. An unset COMMIT or RELEASE_TAG build-arg made a binary and labels with no provenance, because a command-line make variable wins over the Makefile's git lookup even when empty. The builder stage now fails when either is empty; the header shows the laptop command. Local smoke (docker buildx, linux/amd64): tests pass in the test stage, --version logs the commit and the full binary-type, labels are set, the test-stage tree has no .git, and a build without COMMIT stops with "build-arg COMMIT is required". Claude-Session: https://claude.ai/code/session_01LeVatedQ4sCA1u6LHjo7B5 |
||
| .github | ||
| .zap | ||
| build | ||
| cmd | ||
| demos | ||
| docs | ||
| errors | ||
| examples | ||
| pkg | ||
| scripts | ||
| swagger | ||
| test | ||
| .gitattributes | ||
| .gitignore | ||
| .golangci.yaml | ||
| CODE_OF_CONDUCT.md | ||
| codecov.yml | ||
| CODEOWNERS | ||
| COMPARISON.md | ||
| CONTRIBUTING.md | ||
| go.mod | ||
| go.sum | ||
| LICENSE | ||
| MAINTAINERS.md | ||
| Makefile | ||
| NOTICE | ||
| README.md | ||
| README_fuzz.md | ||
| SECURITY.md | ||
| THIRD-PARTY-LICENSES.md | ||
| tools.go | ||
| zot.go | ||
zot
zot: a production-ready vendor-neutral OCI image registry - images stored in OCI image format, distribution specification on-the-wire, that's it!
Documentation for zot is located at: https://zotregistry.dev
Code of conduct details are here.