rebrand: adopt Silo client identity, close SUBNET paths, add brand gate - #2
Merged
Conversation
Close every outbound path to MinIO SUBNET while keeping command names, flags and exit semantics stable for CLI compatibility: - subnetReqDo returns a stable error before any HTTP request is built, so no code path can reach subnet.min.io (defense in depth behind the per-command gates below) - license register and support upload always exit with the stable disabled error; license update keeps the local license-file path and rejects only the SUBNET renew form; license unregister and info now operate strictly on locally stored state - support diag/perf/profile/inspect always run in local (airgap) mode and save their reports to disk; SUBNET registration is never required - support callhome enable is refused; status and disable keep working - fresh configurations no longer seed the play alias pointing at MinIO's public demo cluster (existing user configs are untouched) - commercial subscription pitch removed from license info output - disabled-update wording aligned with the Silo brand Regression tests pin the disabled network layer, the play-free default config, and the upsell-free AGPL message. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Signed-off-by: Feng Ruohang <rh@vonng.com>
Apply the brand policy across all user-visible cmd/ strings: - product identity: app usage line, author, and version output now identify the Silo client, with an explicit 'based on MinIO technology' source statement; original MinIO copyright lines are retained - server references in help and messages use the 'Silo/MinIO' wording since mc administers both Silo and upstream MinIO deployments - example aliases and hosts de-branded: myminio->mysilo, minio1/2-> silo1/2, play->mysilo, MINIOTIER->SILOTIER, minio.example.com-> silo.example.com, dc=min,dc=io->dc=example,dc=com, and similar - stale upstream links replaced: issue reporting now points at pgsty/mc, SQL docs at silo.pgsty.com Protocol and compatibility surfaces are deliberately untouched: MINIO_*/MC_* env vars, x-minio-* headers, --type minio log/tier enums, /minio/* metrics paths, prometheus job name minio-job, the .part.minio transfer suffix, minio-go SDK user agent, module and import paths, and all license headers. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Signed-off-by: Feng Ruohang <rh@vonng.com>
- code of conduct reports now reach the fork maintainer instead of dev@min.io - CONFLICT.md rewritten in the fork's own voice, documenting the actual mcli naming scheme instead of speaking as MinIO, Inc. - CONTRIBUTING.md points at pgsty/mc and go-modules workflow instead of the archived upstream repository and GOPATH-era instructions - PR template licenses contributions under AGPL-3.0-or-later (matching the project license, previously a leftover Apache-2 CLA) and no longer links to minio/docs - shared package description now says what the package is - the Silo object storage client - instead of describing a server; updated atomically in nfpm.yml, Dockerfile.goreleaser and sign-release-rpms.sh which test-release.yml keeps in lockstep - README Silo bundle rows point at pgsty/silo (Docker Hub successor of pgsty/minio); issue template asks for mcli --version to match the shipped binary name; stray duplicate root issue template and upstream jekyll _config.yml removed - NOTICE gains a modification statement identifying the Silo fork while keeping the original MinIO attribution intact Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Signed-off-by: Feng Ruohang <rh@vonng.com>
- functional-tests.sh no longer targets play.min.io with MinIO's public demo credentials when SERVER_ENDPOINT is unset; it now defaults to localhost:9000 with the same credentials CI already uses, so a bare local run never fires the destructive suite at third-party infrastructure - new buildscripts/check-branding.sh fails the build when user-visible surfaces reintroduce MinIO endpoints, commercial upsell, branded example aliases, or lose the Silo identity or the SUBNET hard-disable; wired into make verifiers and the vetchecks CI job; deliberately never inspects protocol-compatibility identifiers Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Signed-off-by: Feng Ruohang <rh@vonng.com>
This is a mixed fork: upstream MinIO development covers 2015-2025 and the PGSTY fork starts in 2025. Version output and the help template now print both lines - MinIO fixed at 2015-2025, PGSTY from 2025 through the release-stamped CopyrightYear. The fork-authored test file carries the dual header and the NOTICE modification statement uses the same range. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Signed-off-by: Feng Ruohang <rh@vonng.com>
The core of this fork is Copyright MinIO, Inc., so the combined work can never be relicensed; a CLA would create signing friction while buying nothing. Contributions are therefore accepted inbound=outbound under AGPL-3.0-or-later with contributors keeping their copyright. What a fork built on third-party code does need is provenance, so the Developer Certificate of Origin 1.1 becomes mandatory: every non-bot commit must carry a Signed-off-by trailer matching the author email, enforced by a dependency-free workflow check. CONTRIBUTING.md documents the sign-off, repair (git rebase --signoff), cherry-pick provenance (-x plus relayer sign-off), dual copyright headers for fork-authored files, and trailer preservation across squash merges; README (EN/zh) and the PR template point at the policy. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Signed-off-by: Feng Ruohang <rh@vonng.com>
Vonng
force-pushed
the
rebrand/silo-client
branch
from
August 6, 2026 03:21
7b15441 to
6930657
Compare
- README (EN/zh) gains a Related Projects section linking pgsty/silo, pgsty/silo-console, pgsty/silo-pkg, and pgsty/pigsty alongside this repository - the container quick-start example listed the removed play alias; 'alias ls' works against the fresh default config - PR template links CONTRIBUTING.md by absolute URL (relative links do not resolve from the pull-request page) - CONTRIBUTING example commit command now carries the -s sign-off the policy itself requires Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Signed-off-by: Feng Ruohang <rh@vonng.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Completes the mc-side rebranding per the Silo rebranding manual (§8.1 mc rules): the CLI now identifies as the Silo client, every outbound path to MinIO SUBNET is closed, commercial upsell is removed, and protocol/compatibility surfaces are untouched. Four commits, reviewable independently:
fix: disable SUBNET connectivity and licensing upsell paths—subnetReqDoreturns a stable error before building any HTTP request (nothing can reachsubnet.min.io);license register/support uploadexit with a stable error;license updatekeeps the local license-file path and refuses only the SUBNET renew form;license unregister/infooperate on local state only;support diag/perf/profile/inspectalways run in airgap mode and save reports locally without requiring registration;support callhome enablerefused (status/disable still work); fresh configs no longer seed theplayalias with MinIO demo credentials; AGPL message de-upselled. Pinned by new regression tests incmd/subnet-disabled_test.go.rebrand: adopt Silo identity in CLI help and examples—--helpfirst line, author, and--versionnow carry the Silo identity with an explicitbased on MinIO technologysource statement; ~220 help strings use theSilo/MinIOwording for managed servers; example aliases/hosts de-branded (myminio→mysilo,play→mysilo,minio1/2→silo1/2,MINIOTIER→SILOTIER,dc=min,dc=io→dc=example,dc=com, …); issue links point atpgsty/mc, SQL docs atsilo.pgsty.com.docs: align governance files and package metadata with the fork— CoC contact no longerdev@min.io; CONFLICT.md rewritten in the fork's voice; CONTRIBUTING points atpgsty/mc(was the archived upstream + GOPATH-era steps); PR-template CLA now AGPL-3.0-or-later (was a leftover Apache-2 contradiction); package description now describes the client, not a server, updated atomically acrossnfpm.yml/Dockerfile.goreleaser/sign-release-rpms.sh(test-release.yml keeps them in lockstep); README Silo-bundle rows point atpgsty/silo; NOTICE gains a modification statement while keeping the original MinIO attribution.test: default functional tests to a local server and add brand gate— bare./functional-tests.shno longer fires a destructive suite atplay.min.iowith MinIO's public credentials (defaults tolocalhost:9000, matching CI); newbuildscripts/check-branding.shgate wired intomake verifiersand the vetchecks CI job.Deliberately preserved (compatibility contract)
MINIO_*/MC_*env vars,x-minio-*headers,--type miniolog/tier enums,/minio/*metrics paths,minio-jobscrape name,.part.miniotransfer suffix, minio-go SDK user agent,github.com/minio/mcmodule and import paths,mc/mclinames,~/.mc/~/.mcliconfig-dir semantics, all original copyright headers, NOTICE/CREDITS/LICENSE attribution, and legacy config-migration defaults.Verification
go build ./...,go vet ./...,golangci-lint(0 issues), fullgo test ./...green--versionprints the Silo identity plus retained MinIO copyright;license register/support uploadexit 1 with the stable disabled error; fresh config containslocal/s3/gcsand noplaycheck-branding.shpasses; protected-identifier diff scan confirms zero changes to compat surfacesFollow-ups (not in this PR)
mysiloexample alias🤖 Generated with Claude Code