Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 14 additions & 3 deletions .github/workflows/jobs.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -61,13 +61,24 @@ jobs:
uses: actions/setup-go@v6
with:
go-version: 1.27.x
- name: Remove the SILO package replacement and test the advertised floor
run: |
- name: Remove the SILO replacements and test the advertised floor
run: |
# Replacements are not inherited, so an embedder that adds none of
# them resolves every dependency upstream. Model exactly that: drop
# all three SILO replacements, not just the shared package. Dropping
# the shared package alone leaves pgsty/mc, which compiles against
# silo-pkg's strict policy API; Go resolves that graph and then fails
# to build it. That partial override is a configuration Console does
# not support, so failing on it says nothing about the floor.
go mod edit -dropreplace=github.com/minio/pkg/v3
go mod edit -dropreplace=github.com/minio/mc
go mod edit -dropreplace=github.com/minio/minio-go/v7
go mod edit -require=github.com/minio/pkg/v3@v3.6.1
go mod tidy
test "$(go list -m -f '{{.Version}}' github.com/minio/pkg/v3)" = "v3.6.1"
test -z "$(go list -m -f '{{if .Replace}}{{.Replace.Path}}{{end}}' github.com/minio/pkg/v3)"
for module in github.com/minio/pkg/v3 github.com/minio/mc github.com/minio/minio-go/v7; do
test -z "$(go list -m -f '{{if .Replace}}{{.Replace.Path}}{{end}}' "$module")"
done
go vet ./...
go vet -tags=testrunmain ./...
go test ./...
Expand Down
8 changes: 8 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,13 @@
# Changelog

## Unreleased

Dependency and compatibility gates:

- Corrected the upstream `minio/pkg` floor job to drop all three SILO replacements rather than the shared package alone. Replacements are not inherited, so an embedder that adds none of them resolves every dependency upstream, and that is the graph the floor describes. Removing only the shared package left `pgsty/mc`, which compiles against silo-pkg's strict policy API; the job then failed on a partial override Console does not support instead of testing the floor
- Recorded that the SILO replacements are adopted as one set: `pgsty/mc` depends on the SILO package's strict policy semantics, so a build that keeps the CLI replacement must keep the shared-package replacement too
- Updated the shared package replacement to the reviewed silo-pkg remote-env URL scheme repair and the CLI replacement to the reviewed pre-release MCLI source

## Release v2.2.1

Dependency alignment:
Expand Down
8 changes: 8 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -153,6 +153,14 @@ replace (
)
```

Adopt these selections as one set. The CLI and the shared package are coupled:
`pgsty/mc` compiles against the SILO package's strict policy API, so a build that
keeps the CLI replacement must keep the shared-package replacement too, and a
build that takes neither resolves upstream `github.com/minio/mc` and upstream
`github.com/minio/pkg/v3` together. Go will resolve a partial override that pairs
one project's CLI with the other's shared package, but Console does not support
it and does not test it.

The logical requirements remain on resolvable upstream versions because those
requirements are part of Console's public module graph, while the replacements
select the released SILO implementations for this repository's own builds. An
Expand Down