From 530965086d236c5905babee69e67c8be092a6628 Mon Sep 17 00:00:00 2001 From: Feng Ruohang Date: Sun, 30 Aug 2026 22:56:03 +0800 Subject: [PATCH] feat!: own the module path and drop the Silo Go SDK replacement Declare `module github.com/pgsty/silo-pkg/v3` instead of continuing to claim upstream's `github.com/minio/pkg/v3`. Keeping upstream's path made the fork selectable only through a `replace` directive, and Go does not inherit those from dependency modules. Every consumer had to repeat the redirect, a consumer that forgot silently built against upstream, and the `require` line had to name an upstream version this source no longer matches -- v3.12 policy APIs such as ParseConfigStrict and Resource.IsBareARN do not exist there. Owning the path removes the redirect and makes the requirement honest. The upstream import path has little to offer here 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. Also drop the `github.com/pgsty/silo-go/v7` replacement and require upstream minio-go directly. The fork carries no functional divergence: its only unique change, "Return CopyObject checksums in UploadInfo" (minio/minio-go#2295), was merged upstream on 2026-08-24, and everything else is a version string, a logo, and README text. Upstream's newest tag v7.3.0 predates that merge by 14 commits, including a data race fix in parallel multipart checksum hashing, so this requires a pseudo-version until upstream tags again. Signed-off-by: Feng Ruohang --- README.md | 26 +++++++++++++------------ certs/certs_test.go | 2 +- certs/manager.go | 2 +- cors/cors.go | 2 +- go.mod | 9 ++------- go.sum | 4 ++-- policy/action.go | 4 ++-- policy/admin-action.go | 4 ++-- policy/bucket-policy-statement.go | 2 +- policy/bucket-policy-statement_test.go | 2 +- policy/bucket-policy_test.go | 2 +- policy/condition/stringfunc.go | 2 +- policy/constants.go | 2 +- policy/policy.go | 2 +- policy/policy_bench_test.go | 2 +- policy/policy_test.go | 2 +- policy/principal.go | 2 +- policy/resource.go | 4 ++-- policy/statement.go | 2 +- policy/statement_bucketmutation_test.go | 2 +- policy/statement_test.go | 2 +- policy/sts-action.go | 2 +- policy/table-action.go | 2 +- policy/vectors-action.go | 2 +- quick/quick.go | 2 +- randreader/randreader.go | 2 +- subnet/license.go | 2 +- sys/cgroup/linux.go | 2 +- sys/stats_linux.go | 2 +- sys/stats_linux_32bit.go | 2 +- 30 files changed, 48 insertions(+), 51 deletions(-) diff --git a/README.md b/README.md index 87f5e696..0f35a63c 100644 --- a/README.md +++ b/README.md @@ -7,25 +7,27 @@ closed product, will not carry. ## Using it -The module path is deliberately **unchanged**. This repository still declares -`module github.com/minio/pkg/v3`, so every `import "github.com/minio/pkg/v3/..."` -keeps working and the fork stays a drop-in replacement. Only the right-hand side -of each `replace` directive names the maintained repository: +Import it directly. This repository declares `module github.com/pgsty/silo-pkg/v3`, +so a consumer requires it by name and needs no `replace` directive: ```go -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 -) +require github.com/pgsty/silo-pkg/v3 v3.13.0 ``` -The second replacement selects the Silo Go SDK used by this package. Go does -not inherit `replace` directives from dependency modules, so top-level -consumers that want the complete maintained stack must declare both -replacements in their own `go.mod`. +```go +import "github.com/pgsty/silo-pkg/v3/policy" +``` The `/v3` suffix is required — it is the module's major version, not a directory. +Through v3.12.2 the module kept upstream's `github.com/minio/pkg/v3` path and was +selected with a `replace` directive. That worked, but Go does not inherit `replace` +directives from dependency modules, so every consumer had to repeat the redirect, +and the `require` line had to name an upstream version this fork's source no longer +matched. v3.13.0 owns its path instead. Consumers still on the old arrangement keep +building against the versions they already pinned; to move, drop the `replace`, +require this path, and rewrite the imports. + The repository was renamed from `pgsty/minio-pkg` on 2026-08-02. GitHub redirects the old path, but pin the new one. diff --git a/certs/certs_test.go b/certs/certs_test.go index f112ded7..1f28d1d4 100644 --- a/certs/certs_test.go +++ b/certs/certs_test.go @@ -27,7 +27,7 @@ import ( "testing" "time" - "github.com/minio/pkg/v3/certs" + "github.com/pgsty/silo-pkg/v3/certs" ) func updateCerts(crt, key string) { diff --git a/certs/manager.go b/certs/manager.go index 40a1e3b8..9b7ba6b9 100644 --- a/certs/manager.go +++ b/certs/manager.go @@ -29,7 +29,7 @@ import ( "sync" "time" - "github.com/minio/pkg/v3/env" + "github.com/pgsty/silo-pkg/v3/env" "github.com/rjeczalik/notify" ) diff --git a/cors/cors.go b/cors/cors.go index f2f45b95..e40dcbc9 100644 --- a/cors/cors.go +++ b/cors/cors.go @@ -24,7 +24,7 @@ import ( "net/http" "strings" - "github.com/minio/pkg/v3/wildcard" + "github.com/pgsty/silo-pkg/v3/wildcard" ) const defaultXMLNS = "http://s3.amazonaws.com/doc/2006-03-01/" diff --git a/go.mod b/go.mod index b8d51e5c..0dde30d0 100644 --- a/go.mod +++ b/go.mod @@ -1,4 +1,4 @@ -module github.com/minio/pkg/v3 +module github.com/pgsty/silo-pkg/v3 // Keep one prior Go release available to library consumers while building and // testing the maintained branch with the current toolchain. @@ -6,11 +6,6 @@ go 1.26.0 toolchain go1.27.0 -// Use PGSTY's maintained Silo Go SDK while preserving upstream import paths. -// Keep the required version on a real upstream tag because replace directives -// are ignored when this module is consumed as a dependency. -replace github.com/minio/minio-go/v7 => github.com/pgsty/silo-go/v7 v7.3.1 - // v22.7.0 does not compile on NetBSD because its unix implementation uses // CLOCK_MONOTONIC, which is unavailable there. Keep the last portable release // until go-systemd ships the upstream fix. @@ -27,7 +22,7 @@ require ( github.com/lestrrat-go/jwx/v3 v3.0.13 github.com/mattn/go-colorable v0.1.15 github.com/mattn/go-isatty v0.0.24 - github.com/minio/minio-go/v7 v7.3.0 + github.com/minio/minio-go/v7 v7.3.1-0.20260828014306-0e78d3f18efe github.com/minio/mux v1.9.2 github.com/rjeczalik/notify v0.9.3 github.com/tinylib/msgp v1.6.4 diff --git a/go.sum b/go.sum index fcacbc97..a5cde53e 100644 --- a/go.sum +++ b/go.sum @@ -100,10 +100,10 @@ github.com/mattn/go-runewidth v0.0.23 h1:7ykA0T0jkPpzSvMS5i9uoNn2Xy3R383f9HDx3Ry github.com/mattn/go-runewidth v0.0.23/go.mod h1:XBkDxAl56ILZc9knddidhrOlY5R/pDhgLpndooCuJAs= github.com/minio/md5-simd v1.1.2 h1:Gdi1DZK69+ZVMoNHRXJyNcxrMA4dSxoYHZSQbirFg34= github.com/minio/md5-simd v1.1.2/go.mod h1:MzdKDxYpY2BT9XQFocsiZf/NKVtR7nkE4RoEpN+20RM= +github.com/minio/minio-go/v7 v7.3.1-0.20260828014306-0e78d3f18efe h1:By2FKNSOUGLOeb0x4D7xJMHr8x/X1ZW8PG780SpKUwQ= +github.com/minio/minio-go/v7 v7.3.1-0.20260828014306-0e78d3f18efe/go.mod h1:KUPWdecEO1LWyUz+sTGXAuf2jZHrPh5fCsRH86QbPfk= github.com/minio/mux v1.9.2 h1:dQchne49BUBgOlxIHjx5wVe1gl5VXF2sxd4YCXkikTw= github.com/minio/mux v1.9.2/go.mod h1:OuHAsZsux+e562bcO2P3Zv/P0LMo6fPQ310SmoyG7mQ= -github.com/pgsty/silo-go/v7 v7.3.1 h1:CchXB5hdv1KGUCGBzR5Tz8hSE+3P9sGJFPY+ku8tC04= -github.com/pgsty/silo-go/v7 v7.3.1/go.mod h1:3uUcXVLE1xLBTy+A/js/hHKkvcYQ/zMbj8rbtNQavxE= github.com/philhofer/fwd v1.2.0 h1:e6DnBTl7vGY+Gz322/ASL4Gyp1FspeMvx1RNDoToZuM= github.com/philhofer/fwd v1.2.0/go.mod h1:RqIHx9QI14HlwKwm98g9Re5prTQ6LdeRQn+gXJFxsJM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= diff --git a/policy/action.go b/policy/action.go index 1b43079d..6674502d 100644 --- a/policy/action.go +++ b/policy/action.go @@ -18,8 +18,8 @@ package policy import ( - "github.com/minio/pkg/v3/policy/condition" - "github.com/minio/pkg/v3/wildcard" + "github.com/pgsty/silo-pkg/v3/policy/condition" + "github.com/pgsty/silo-pkg/v3/wildcard" ) // Action - policy action. diff --git a/policy/admin-action.go b/policy/admin-action.go index b9259f44..fcf4665d 100644 --- a/policy/admin-action.go +++ b/policy/admin-action.go @@ -18,8 +18,8 @@ package policy import ( - "github.com/minio/pkg/v3/policy/condition" - "github.com/minio/pkg/v3/wildcard" + "github.com/pgsty/silo-pkg/v3/policy/condition" + "github.com/pgsty/silo-pkg/v3/wildcard" ) // AdminAction - admin policy action. diff --git a/policy/bucket-policy-statement.go b/policy/bucket-policy-statement.go index b85da2f0..3f5cb7e6 100644 --- a/policy/bucket-policy-statement.go +++ b/policy/bucket-policy-statement.go @@ -20,7 +20,7 @@ package policy import ( "strings" - "github.com/minio/pkg/v3/policy/condition" + "github.com/pgsty/silo-pkg/v3/policy/condition" ) // BPStatement - policy statement. diff --git a/policy/bucket-policy-statement_test.go b/policy/bucket-policy-statement_test.go index db5a0b76..b9f7cedd 100644 --- a/policy/bucket-policy-statement_test.go +++ b/policy/bucket-policy-statement_test.go @@ -23,7 +23,7 @@ import ( "reflect" "testing" - "github.com/minio/pkg/v3/policy/condition" + "github.com/pgsty/silo-pkg/v3/policy/condition" ) func TestBPStatementIsAllowed(t *testing.T) { diff --git a/policy/bucket-policy_test.go b/policy/bucket-policy_test.go index d8887704..15c477d4 100644 --- a/policy/bucket-policy_test.go +++ b/policy/bucket-policy_test.go @@ -23,7 +23,7 @@ import ( "reflect" "testing" - "github.com/minio/pkg/v3/policy/condition" + "github.com/pgsty/silo-pkg/v3/policy/condition" ) func TestBucketPolicyIsAllowed(t *testing.T) { diff --git a/policy/condition/stringfunc.go b/policy/condition/stringfunc.go index 9644804a..48485b2e 100644 --- a/policy/condition/stringfunc.go +++ b/policy/condition/stringfunc.go @@ -25,7 +25,7 @@ import ( "github.com/minio/minio-go/v7/pkg/s3utils" "github.com/minio/minio-go/v7/pkg/set" - "github.com/minio/pkg/v3/wildcard" + "github.com/pgsty/silo-pkg/v3/wildcard" ) func substitute(values map[string][]string) func(string) string { diff --git a/policy/constants.go b/policy/constants.go index 27493604..3e64846e 100644 --- a/policy/constants.go +++ b/policy/constants.go @@ -18,7 +18,7 @@ package policy import ( - "github.com/minio/pkg/v3/policy/condition" + "github.com/pgsty/silo-pkg/v3/policy/condition" ) // Policy claim constants diff --git a/policy/policy.go b/policy/policy.go index d865f646..dbd195e1 100644 --- a/policy/policy.go +++ b/policy/policy.go @@ -28,7 +28,7 @@ import ( "sync" "github.com/minio/minio-go/v7/pkg/set" - "github.com/minio/pkg/v3/wildcard" + "github.com/pgsty/silo-pkg/v3/wildcard" ) // DefaultVersion - default policy version as per AWS S3 specification. diff --git a/policy/policy_bench_test.go b/policy/policy_bench_test.go index 13af8c54..4ca51e48 100644 --- a/policy/policy_bench_test.go +++ b/policy/policy_bench_test.go @@ -22,7 +22,7 @@ import ( "strconv" "testing" - "github.com/minio/pkg/v3/policy/condition" + "github.com/pgsty/silo-pkg/v3/policy/condition" ) func setupPolicy(statements []Statement) Policy { diff --git a/policy/policy_test.go b/policy/policy_test.go index 4603f5f1..e03db0af 100644 --- a/policy/policy_test.go +++ b/policy/policy_test.go @@ -28,7 +28,7 @@ import ( "time" "github.com/minio/minio-go/v7/pkg/set" - "github.com/minio/pkg/v3/policy/condition" + "github.com/pgsty/silo-pkg/v3/policy/condition" ) func TestGetPoliciesFromClaims(t *testing.T) { diff --git a/policy/principal.go b/policy/principal.go index 9cccae67..d146c46f 100644 --- a/policy/principal.go +++ b/policy/principal.go @@ -21,7 +21,7 @@ import ( "encoding/json" "github.com/minio/minio-go/v7/pkg/set" - "github.com/minio/pkg/v3/wildcard" + "github.com/pgsty/silo-pkg/v3/wildcard" ) // Principal - policy principal. diff --git a/policy/resource.go b/policy/resource.go index 95082e86..a0b80d9c 100644 --- a/policy/resource.go +++ b/policy/resource.go @@ -23,8 +23,8 @@ import ( "path" "strings" - "github.com/minio/pkg/v3/policy/condition" - "github.com/minio/pkg/v3/wildcard" + "github.com/pgsty/silo-pkg/v3/policy/condition" + "github.com/pgsty/silo-pkg/v3/wildcard" ) const ( diff --git a/policy/statement.go b/policy/statement.go index 17702e2b..934a82a8 100644 --- a/policy/statement.go +++ b/policy/statement.go @@ -25,7 +25,7 @@ import ( "sync" "sync/atomic" - "github.com/minio/pkg/v3/policy/condition" + "github.com/pgsty/silo-pkg/v3/policy/condition" "github.com/zeebo/xxh3" ) diff --git a/policy/statement_bucketmutation_test.go b/policy/statement_bucketmutation_test.go index 7543e990..b6646faa 100644 --- a/policy/statement_bucketmutation_test.go +++ b/policy/statement_bucketmutation_test.go @@ -20,7 +20,7 @@ package policy import ( "testing" - "github.com/minio/pkg/v3/policy/condition" + "github.com/pgsty/silo-pkg/v3/policy/condition" ) // sensitiveBucketMutationTestActions mirrors sensitiveBucketMutationActions so diff --git a/policy/statement_test.go b/policy/statement_test.go index 9e16d2aa..966a1657 100644 --- a/policy/statement_test.go +++ b/policy/statement_test.go @@ -23,7 +23,7 @@ import ( "reflect" "testing" - "github.com/minio/pkg/v3/policy/condition" + "github.com/pgsty/silo-pkg/v3/policy/condition" ) func TestStatementIsAllowed(t *testing.T) { diff --git a/policy/sts-action.go b/policy/sts-action.go index 37a59f53..6f5e82b0 100644 --- a/policy/sts-action.go +++ b/policy/sts-action.go @@ -18,7 +18,7 @@ package policy import ( - "github.com/minio/pkg/v3/policy/condition" + "github.com/pgsty/silo-pkg/v3/policy/condition" ) // STSAction - STS policy action. diff --git a/policy/table-action.go b/policy/table-action.go index 6b25cfa6..937c7aca 100644 --- a/policy/table-action.go +++ b/policy/table-action.go @@ -18,7 +18,7 @@ package policy import ( - "github.com/minio/pkg/v3/policy/condition" + "github.com/pgsty/silo-pkg/v3/policy/condition" ) // TableAction - S3 Tables policy action. diff --git a/policy/vectors-action.go b/policy/vectors-action.go index e6fd61d3..792d2297 100644 --- a/policy/vectors-action.go +++ b/policy/vectors-action.go @@ -18,7 +18,7 @@ package policy import ( - "github.com/minio/pkg/v3/policy/condition" + "github.com/pgsty/silo-pkg/v3/policy/condition" ) // VectorsAction - S3 Vectors policy action. diff --git a/quick/quick.go b/quick/quick.go index 709b5497..851c9e5e 100644 --- a/quick/quick.go +++ b/quick/quick.go @@ -25,7 +25,7 @@ import ( "sync" "github.com/fatih/structs" - "github.com/minio/pkg/v3/safe" + "github.com/pgsty/silo-pkg/v3/safe" etcd "go.etcd.io/etcd/client/v3" ) diff --git a/randreader/randreader.go b/randreader/randreader.go index cdab6cfb..91280313 100644 --- a/randreader/randreader.go +++ b/randreader/randreader.go @@ -22,7 +22,7 @@ import ( "math/rand" "time" - "github.com/minio/pkg/v3/rng" + "github.com/pgsty/silo-pkg/v3/rng" ) // New returns an infinite reader that will return pseudo-random data. diff --git a/subnet/license.go b/subnet/license.go index f3cdaefb..7006970d 100644 --- a/subnet/license.go +++ b/subnet/license.go @@ -28,7 +28,7 @@ import ( "time" "github.com/lestrrat-go/jwx/v3/jwt" - "github.com/minio/pkg/v3/licverifier" + "github.com/pgsty/silo-pkg/v3/licverifier" ) const ( diff --git a/sys/cgroup/linux.go b/sys/cgroup/linux.go index 3d3fd207..adc0eee0 100644 --- a/sys/cgroup/linux.go +++ b/sys/cgroup/linux.go @@ -35,7 +35,7 @@ import ( ) // DO NOT EDIT following constants are chosen defaults for any kernel -// after 3.x, please open a GitHub issue https://github.com/minio/pkg/issues +// after 3.x, please open a GitHub issue https://github.com/pgsty/silo-pkg/issues // and discuss first if you wish to change this. const ( // Default string for looking for kernel memory param. diff --git a/sys/stats_linux.go b/sys/stats_linux.go index 6de6c826..022ce255 100644 --- a/sys/stats_linux.go +++ b/sys/stats_linux.go @@ -23,7 +23,7 @@ import ( "os" "syscall" - "github.com/minio/pkg/v3/sys/cgroup" + "github.com/pgsty/silo-pkg/v3/sys/cgroup" ) // Get the final system memory limit chosen by the user. diff --git a/sys/stats_linux_32bit.go b/sys/stats_linux_32bit.go index 836bc723..6b0d88f2 100644 --- a/sys/stats_linux_32bit.go +++ b/sys/stats_linux_32bit.go @@ -23,7 +23,7 @@ import ( "os" "syscall" - "github.com/minio/pkg/v3/sys/cgroup" + "github.com/pgsty/silo-pkg/v3/sys/cgroup" ) // Get the final system memory limit chosen by the user.