Skip to content

silo-pkg v3.13.0

Choose a tag to compare

@Vonng Vonng released this 30 Aug 15:03
· 6 commits to main since this release
215f116

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 require line had to name an upstream version this source no longer matches — ParseConfigStrict first appears upstream in v3.11.0, and Resource.IsBareARN exists in no upstream version at all;
  • pgsty/mc needed 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 forced silo-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), and silo (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.