98 Commits
Author SHA1 Message Date
zeekayandHanzo Dev 1ab6e799c1 cd: the module is github.com/hanzoai/cd, where it is actually hosted
go.mod still declared `module github.com/hanzoai/deploy` after the repo was
renamed. A Go module path is not cosmetic — it is the resolvable location. So
`go get github.com/hanzoai/cd` could not work, and anything importing this
module had to spell a name that no longer exists at that address. The build log
of v3.6.0 is where it surfaced: the compiler was still emitting
github.com/hanzoai/deploy/cmd/cd/commands.

3541 import paths across 690 .go, 19 .proto, 4 .yaml, 3 .sh, 2 .mod, Procfile
and Makefile. Plus the 62 ghcr.io/hanzoai/deploy image references, moved to
ghcr.io/hanzoai/cd to match hanzo.yml's build target — a distinct string from
the module path, replaced separately so neither could clobber the other.

go mod tidy clean, CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build ./... clean.

Co-authored-by: Hanzo Dev <[email protected]>
2026-07-28 21:16:24 -07:00
15d87b3e72 refactor(cd): hard-fork - rename CRD API group argoproj.io -> deploy.hanzo.ai (#1)
* feat(api): hard-fork CRD API group argoproj.io -> deploy.hanzo.ai

Hanzo CD hard-fork, phase 1.1. Single source of truth is
pkg/apis/application/register.go's Group constant (Application/AppProject/
ApplicationSet all derive their FullName from it); every other Go call-site
that hardcoded the literal group string is updated to match: the 3 generated
informer GVRs, the app-of-apps nested-Application detector in types.go, the
resource-tree Application-kind cache populator, the 3 NotFound error
constructors in server/application, and the applicationset-controller's
leader-election Lease name/ID (kept in lockstep across Go source + RBAC
resourceNames, or leader election would get RBAC-denied on startup).

CRD YAMLs (application/appproject/applicationset) and every RBAC apiGroups
rule that actually governs our 3 CRDs are repointed to deploy.hanzo.ai, across
both manifests/base/* (namespaced Roles) and manifests/cluster-rbac/* (cluster
scope). Two adjacent things that share the "argoproj.io" string but are NOT
ours are deliberately left untouched: gitops-engine's health-check dispatch
for Argo Workflows' `Workflow` kind, and argocd-server-clusterrole's second
apiGroups block granting read on Argo Workflows' `workflows` resource — both
belong to a separate, unrelated Argoproj-family project we are not forking.

Also untouched, per explicit scope: annotation/label keys (argocd.argoproj.io/*)
and finalizers (*.argoproj.io) that track already-applied live resources, and
argocd-cm.yaml's resource.customizations.ignoreResourceUpdates keys (a narrow
app-of-apps diffing nicety, not build- or RBAC-relevant).

CGO_ENABLED=0 go build ./... verified green.

* ci: wire canonical hanzo.yml + cicd.yml (Hanzo CD image build)

Phase 1.3. Follows the same one-way pattern every hanzo/lux/zoo repo uses:
hanzo.yml declares the image (root Dockerfile -> ghcr.io/hanzoai/deploy) and a
fast go-build sanity test (the multi-stage Dockerfile build is the slow, real
gate); cicd.yml is the ~10-line trigger shim importing hanzoai/ci's reusable
build workflow on the arc pool, secrets from KMS only.

No `deploy:` block yet, matching the hanzoai/cms build-only-first-cutover
pattern: this repo's own live hanzo-cd namespace runs the whole Hanzo fleet's
GitOps, so the prod image/CRD swap is a deliberate separate action (see the
[HELD] universe PR), never an automatic rollout on merge. Every PR/push still
builds and pushes an immutable ghcr.io/hanzoai/deploy:sha-<7>-amd64 image.

* feat(ui): rebrand Argo CD -> Hanzo CD (title, favicon, logo, sidebar)

Phase 1.2. User-facing "Argo CD"/"ArgoCD" text replaced with "Hanzo CD"
across the login page, help modal, settings screens, version-info panel,
sync-options warning, fullscreen-logs title, app.tsx page titles, and
index.html's <title>/noscript text (dropped the now-wrong upstream CLI
doc link rather than invent a hanzo.ai URL that doesn't exist).

Logo/favicon assets replaced with the canonical Hanzo mark (never
hand-drawn, copied from ~/work/hanzo/logo/dist): the two real usages of
Argo's logo collapse onto one Hanzo glyph (mono + white variants) at the
same 5 call sites (login icon + footer, login.scss $logoPath/
$logoNegativePath, sidebar text-logo), preserving the existing CSS
invert() filters so both the light login panel and dark sidebar still
render correctly. Old argologo.svg/argo_o.svg/argo.png deleted (no
longer referenced). favicon-{16x16,32x32}.png added at
ui/src/assets/favicon/ (index.html's links to that path were previously
dead - the directory didn't exist in this checkout). package.json name
argo-cd-ui -> hanzo-cd-ui.

Left alone, deliberately: the two Kubernetes resource-kind icon sets
under ui/src/assets/images/resources/ (unrelated to branding), and
upstream doc/project links (argoproj.io, argo-cd.readthedocs.io) since
we have no equivalent hanzo.ai docs to point to yet - except the login
footer logo's outbound link, which now points to hanzo.ai instead of
argoproj.io (a Hanzo-branded mark linking to the upstream project it
was forked from read as an obvious leftover).

* feat(module): rename Go module github.com/argoproj/argo-cd/v3 -> github.com/hanzoai/deploy

Phase 2. No version suffix on the new path (org policy: never publish our
own Go modules above v1.x.x / with a v2+ suffix) — this fork starts a fresh
v0/v1 module identity rather than carrying the v3 the upstream fork point
had reached.

Mechanical, symmetric rewrite: 704 .go files (import statements only; two
disjoint substitutions applied specific-first so the nested gitops-engine
module path never double-matches), plus go.mod (module line, the
gitops-engine require+replace pair, version reset to v0.0.0-... since a
suffix-less path can't carry a v3 semver), gitops-engine/go.mod, Makefile
(ldflags PACKAGE + 2 TEST_MODULE filters), .golangci.yaml, .goreleaser.yaml,
.mockery.yaml (+ gitops-engine's), Procfile, the codegen/proto generation
scripts (hack/generate-proto.sh, update-codegen.sh, update-openapi.sh), and
20 .proto files' go_package options. Also one OpenTelemetry tracer name
string in gitops-engine/pkg/sync/sync_context.go (a cosmestic label, not an
import, but worth keeping consistent).

CGO_ENABLED=0 go build ./... verified green for both the root module and
the nested gitops-engine module; go vet clean on both; go mod tidy run
(network available) to reconcile go.sum, dependency set unchanged.

Left alone, deliberately: doc-only mentions (docs/snyk/*.html scan reports,
gitops-engine/README.md), a comment-only reference in
.github/workflows/release.yaml, and one Renovate bot config line — none are
build- or codegen-load-bearing. Also left alone: comments citing upstream
GitHub issue URLs (github.com/argoproj/argo-cd/issues/NNNNN) and a handful
of test fixtures using "https://github.com/argoproj/argo-cd.git" as a
representative example repo URL — both are accurate historical/test-data
references, not stale self-references.

---------

Co-authored-by: Hanzo Dev <[email protected]>
2026-07-19 11:27:06 -07:00
argoproj-renovate[bot]GitHubargoproj-renovate[bot] <161757507+argoproj-renovate[bot]@users.noreply.github.com>Patroklos Papapetrou
2d09af89ff chore(deps): update module github.com/golangci/golangci-lint/v2 to v2.12.2 (#28424)
Signed-off-by: renovate[bot] <renovate[bot]@users.noreply.github.com>
Signed-off-by: Patroklos Papapetrou <[email protected]>
Co-authored-by: argoproj-renovate[bot] <161757507+argoproj-renovate[bot]@users.noreply.github.com>
Co-authored-by: Patroklos Papapetrou <[email protected]>
2026-06-24 21:14:33 +00:00
Matthieu MORELandGitHub 563b9c0b34 chore: enable unnecessary-format rule from revive (#26958)
Signed-off-by: Matthieu MOREL <[email protected]>
2026-04-16 11:21:56 -04:00
77e527fc7f chore: bumps golang version to 1.26 in all places (#26393)
Signed-off-by: Patroklos Papapetrou <[email protected]>
Co-authored-by: Nitish Kumar <[email protected]>
2026-02-12 12:15:13 +02:00
Matthieu MORELandGitHub 0f0e8b0c50 fix: enable and fix modernize linter (#26352)
Signed-off-by: Matthieu MOREL <[email protected]>
2026-02-10 08:02:55 -05:00
Matthieu MORELandGitHub c16ce981b9 chore: enable noctx linter (#24765)
Signed-off-by: Matthieu MOREL <[email protected]>
2025-09-29 20:20:53 +02:00
Matthieu MORELandGitHub 08aec5b909 chore: enable exposedSyncMutex rule from go-critic (#24026)
Signed-off-by: Matthieu MOREL <[email protected]>
2025-08-03 12:47:33 +00:00
Matthieu MORELandGitHub f301b5117d chore(lint): enable filepathJoin rule from go-critic (#23453)
Signed-off-by: Matthieu MOREL <[email protected]>
2025-06-17 13:32:44 -04:00
Matthieu MORELandGitHub 966efd4e88 chore(lint): enable sloppyReassign rule from go-critic (#23443)
Signed-off-by: Matthieu MOREL <[email protected]>
2025-06-17 11:46:50 -04:00
Matthieu MORELandGitHub ac8b1a5d7c chore(lint): enable builtinShadow rule from go-critic (#23430)
Signed-off-by: Matthieu MOREL <[email protected]>
2025-06-16 21:20:57 +00:00
Matthieu MORELandGitHub e6874ff246 chore(lint): enable ptrToRefParam rule from go-critic (#23424)
Signed-off-by: Matthieu MOREL <[email protected]>
2025-06-16 19:28:57 +00:00
Matthieu MORELandGitHub 20b6832cd3 chore(lint): enable-all govet rules by default (#23426)
Signed-off-by: Matthieu MOREL <[email protected]>
2025-06-16 19:03:03 +00:00
Matthieu MORELandGitHub 8922b41f35 chore(lint): enable evalOrder rule from go-critic (#23422)
Signed-off-by: Matthieu MOREL <[email protected]>
2025-06-16 14:04:05 -04:00
Matthieu MORELandGitHub 6d1808fd82 chore(lint): enable mapKey rule from go-critic (#23417)
Signed-off-by: Matthieu MOREL <[email protected]>
2025-06-16 14:03:28 -04:00
Matthieu MORELandGitHub 40e28b2cdd chore(lint): enable typeDefFirst rule from go-critic (#23414)
Signed-off-by: Matthieu MOREL <[email protected]>
2025-06-16 16:09:08 +00:00
Michael CrenshawandGitHub f181406784 chore(lint): enable typeSwitchVar linter (#23391)
Signed-off-by: Michael Crenshaw <[email protected]>
2025-06-16 15:02:32 +00:00
Matthieu MORELandGitHub 3e3451a8ee chore(lint): enable unnecessaryBlock rule from go-critic (#23404)
Signed-off-by: Matthieu MOREL <[email protected]>
2025-06-16 10:00:55 -04:00
Matthieu MORELandGitHub 85444e82ef chore(lint): enable regexpSimplify rule from go-critic (#23405)
Signed-off-by: Matthieu MOREL <[email protected]>
2025-06-16 08:55:05 -04:00
Matthieu MORELandGitHub 989a3ef7c7 chore(lint): enable typeUnparen rule from go-critic (#23406)
Signed-off-by: Matthieu MOREL <[email protected]>
2025-06-16 08:54:28 -04:00
Matthieu MORELandGitHub 376b5446d4 chore(lint): enable typeAssertChain rule from go-critic (#23407)
Signed-off-by: Matthieu MOREL <[email protected]>
2025-06-16 09:28:20 +02:00
Matthieu MORELandGitHub 945f3a0913 chore(lint): enable sprintfQuotedString rule from go-critic (#23401)
Signed-off-by: Matthieu MOREL <[email protected]>
2025-06-15 16:33:20 -04:00
Matthieu MORELandGitHub 6f367b0edf chore(lint): enable emptyStringTest rule from go-critic (#23400)
Signed-off-by: Matthieu MOREL <[email protected]>
2025-06-15 20:25:12 +00:00
Matthieu MORELandGitHub 1920efe837 chore(lint): enable httpNoBody rule from go-critic (#23399)
Signed-off-by: Matthieu MOREL <[email protected]>
2025-06-15 16:11:38 -04:00
Michael CrenshawandGitHub ffc575cf94 chore(lint): enable nestingReduce linter (#23378)
Signed-off-by: Michael Crenshaw <[email protected]>
2025-06-13 13:43:16 -04:00
Michael CrenshawandGitHub 5e70bf7fe4 fix(repo-server): sort images (#23372)
Signed-off-by: Michael Crenshaw <[email protected]>
2025-06-12 11:28:45 -04:00
Michael CrenshawandGitHub 05ac7845c0 chore(lint): enable more gocritic linters (#23328)
Signed-off-by: Michael Crenshaw <[email protected]>
2025-06-11 23:50:02 -04:00
Michael CrenshawandGitHub cb484f375f chore(lint): enable tparallel linter (#23318)
Signed-off-by: Michael Crenshaw <[email protected]>
2025-06-08 15:10:55 +02:00
Michael CrenshawandGitHub 8e380c63d5 chore: enable lint for unused private fields (#23242)
Signed-off-by: Michael Crenshaw <[email protected]>
2025-06-05 07:47:55 -04:00
Matthieu MORELandGitHub b952257473 chore: enable exptostd linter (#23136)
Signed-off-by: Matthieu MOREL <[email protected]>
2025-05-24 08:13:47 -06:00
Kanika RanaandGitHub fc8411e9b8 chore: use name imports for argocd Utilio (#22836)
Signed-off-by: Kanika Rana <[email protected]>
2025-05-21 16:25:32 +00:00
Matthieu MORELandGitHub 068d2999ef chore: clean-up golangci-lint configuration (#22544)
Signed-off-by: Matthieu MOREL <[email protected]>
2025-04-02 08:04:17 -07:00
Michael CrenshawGitHubrenovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
7caee1cfbb chore(ci): upgrade golangci-lint to v2 (#22484)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Signed-off-by: Michael Crenshaw <[email protected]>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-27 12:37:52 -04:00
Matthieu MORELandGitHub 226fbb2a54 chore: enable usetesting linter (#21935)
Signed-off-by: Matthieu MOREL <[email protected]>
2025-02-21 18:50:55 +00:00
Matthieu MORELandGitHub be13c7b8a8 chore: enable var-naming from revive (#21861)
Signed-off-by: Matthieu MOREL <[email protected]>
2025-02-18 11:02:38 -05:00
Matthieu MORELandGitHub b024ac7d3f chore: define apiextensionsv1 alias with importas (#21823)
Signed-off-by: Matthieu MOREL <[email protected]>
2025-02-09 22:10:15 -05:00
Alexandre GaudreaultandGitHub af9ac51c59 ci: disable nolintlint linter (#21707)
Signed-off-by: Alexandre Gaudreault <[email protected]>
2025-01-29 17:10:17 +00:00
Matthieu MORELandGitHub 3bfa4e0cb8 chore: enable several rules from revive (#21638)
Signed-off-by: Matthieu MOREL <[email protected]>
2025-01-22 21:32:09 +00:00
Matthieu MORELandGitHub 958209dc4a chore: enable ifElseChain from gocritic (#21636)
Signed-off-by: Matthieu MOREL <[email protected]>
2025-01-22 16:13:51 -05:00
Matthieu MORELandGitHub c1c8d8bef4 chore: enable badCond from gocritic (#21632)
Signed-off-by: Matthieu MOREL <[email protected]>
2025-01-22 18:25:33 +00:00
Matthieu MORELandGitHub dc58694282 chore: enable singleCaseSwitch and commentFormatting rules from gocritic (#21616)
Signed-off-by: Matthieu MOREL <[email protected]>
2025-01-22 10:45:32 -05:00
Matthieu MORELandGitHub eeba57b115 chore: enable nolintlint (#21559)
Signed-off-by: Matthieu MOREL <[email protected]>
2025-01-21 13:49:14 -05:00
8334da36f2 Bump major version to 3 (#21410)
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: crenshaw-dev <[email protected]>
2025-01-10 16:14:00 -05:00
Matthieu MORELandGitHub a0d38d653a chore: enable early-return from revive (#21423)
Signed-off-by: Matthieu MOREL <[email protected]>
2025-01-08 15:26:02 -05:00
Matthieu MORELandGitHub 064b5ae081 chore: enable indent-error-flow from revive (#21394)
Signed-off-by: Matthieu MOREL <[email protected]>
2025-01-07 10:25:22 -05:00
Matthieu MORELandGitHub eec6f8526a chore: enable unused-parameter from revive (#21365)
* chore: enable unused-parameter from revive

Signed-off-by: Matthieu MOREL <[email protected]>

* apply recommandations

Signed-off-by: Matthieu MOREL <[email protected]>

---------

Signed-off-by: Matthieu MOREL <[email protected]>
2025-01-07 10:12:56 -05:00
Matthieu MORELandGitHub 3e3bcf0246 chore: enable context-as-argument from revive (#21371)
Signed-off-by: Matthieu MOREL <[email protected]>
2025-01-07 10:08:51 -05:00
Matthieu MORELandGitHub b8947785a9 chore: enable unnecessary-stmt from revive (#21398)
Signed-off-by: Matthieu MOREL <[email protected]>
2025-01-07 09:56:38 -05:00
Matthieu MORELandGitHub bc8756f606 chore: enable receiver-naming from revive (#21372)
Signed-off-by: Matthieu MOREL <[email protected]>
2025-01-06 14:45:11 -05:00
Matthieu MORELandGitHub bda1b76bd6 chore: enable superfluous-else from revive (#21373)
Signed-off-by: Matthieu MOREL <[email protected]>
2025-01-06 11:41:38 -05:00