silo-pkg v3.13.0
Breaking: the module owns its path
This module now declares github.com/pgsty/silo-pkg/v3. It no longer claims upstream's github.com/minio/pkg/v3.
Keeping upstream's path made this fork selectable only through a replace directive, and Go does not inherit those from dependency modules. Three costs came due while preparing the next Silo release:
- every consumer had to repeat the redirect, and one that forgot built against upstream silently;
- the
requireline had to name an upstream version this source no longer matches —ParseConfigStrictfirst appears upstream in v3.11.0, andResource.IsBareARNexists in no upstream version at all; pgsty/mcneeded a compile-time sentinel to turn that silent downgrade into a build failure, and raising its floor to make the metadata honest propagated through the module graph and forcedsilo-console's deliberately low floor upward.
Upstream's path had little to offer in return: minio/pkg is a 33-star internal library, and this module's consumers are silo, silo-console, and mc. The Silo Go SDK keeps upstream's github.com/minio/minio-go/v7 path, where drop-in compatibility is worth having.
Upstream minio-go replaces the Silo Go SDK
pgsty/silo-go carried no functional divergence. Its only unique change, Return CopyObject checksums in UploadInfo, was merged upstream on 2026-08-24; the rest was a version string, a logo, a README, and a lint-tool block.
Upstream's newest tag v7.3.0 predates that merge by 14 commits, including #2290 fix: race on shared checksum hasher in parallel multipart upload, so pinning the tag would be a regression. This release requires v7.3.1-0.20260828014306-0e78d3f18efe until upstream tags again.
Compatibility
Take this release together with the matching silo, silo-console, and mc changes. A consumer that upgrades alone will not build.
Before:
require github.com/minio/pkg/v3 v3.6.1
replace (
github.com/minio/pkg/v3 => github.com/pgsty/silo-pkg/v3 v3.12.2
github.com/minio/minio-go/v7 => github.com/pgsty/silo-go/v7 v7.3.1
)After:
require github.com/pgsty/silo-pkg/v3 v3.13.0...and rewrite github.com/minio/pkg/v3/... imports to github.com/pgsty/silo-pkg/v3/.... Consumers that stay on the old arrangement keep building against v3.12.2 and earlier.
Validation
go build ./...,go vet ./...,go mod tidy -diff,gofmt -l .clean;go test ./...passes 23 packages- CI on the merge commit: Go, LDAP Config Validator, VulnCheck
- The downstream migration was validated end to end before release:
mc(194 files),silo-console(36 files), andsilo(181 files) all build, vet, and pass their suites.silo's rebrand guard passes with a compatibility-baseline diff of exactly 19 deleted import entries and no change to environment variables, metrics, headers, routes, policy values, or exported symbols.