This repository is a friendly fork of
argoproj/argo-cd/gitops-engine/,
extracted into a standalone Go module so Skaphos can iterate on Kubernetes API
ceilings and scheme registration on its own cadence without diverging from
upstream.
This fork is not adversarial. Our intent is to upstream every Skaphos-originated change back to the Argo CD authors (or to a revived
argoproj/gitops-enginestandalone repo) as a normal PR, and to dissolve this fork once upstream can absorb the work it contains. SeeUPSTREAMING.mdfor the outbound work log.
The canonical import path for this fork is:
github.com/skaphos/gitops-engine
The module rename exists because Skaphos cannot publish under the argoproj
namespace; everything inside the module remains shaped like upstream-eligible
code (atomic commits, no drive-by refactors, no Skaphos-specific abstractions
leaking into shared paths).
The baseline-upstream-a39953d tag marks the byte-equivalent extraction
point against upstream commit
a39953d. Every commit
after that tag is either:
- A Skaphos modification — small, atomic, shaped to be PR'd back upstream.
- A backported upstream patch — see
UPSTREAM_SYNC.md.
The scripts/sync-upstream.sh helper pulls patches in from
argoproj/argo-cd/gitops-engine/. Outbound contributions to upstream are
tracked in UPSTREAMING.md.
Core GitOps primitives consumed by Skaphos products:
- Kubernetes resource cache
- Resource reconciliation
- Sync planning
- Health assessment
- Diff calculation
The motivation, alternatives considered, and consequences of extracting are
documented in
ADR 0007 — Hard-fork gitops-engine into skaphos/gitops-engine.
The ADR uses "hard-fork" as shorthand for the mechanism (own repo, own
module path); the stance is friendly — see UPSTREAMING.md.
Per ADR 0007, this fork is re-synced from upstream:
- Every
argo-cdminor release, or quarterly — whichever fires first. - Out-of-band for CVEs that affect code paths Skaphos products use.
The mechanics live in scripts/sync-upstream.sh.
go get github.com/skaphos/gitops-engine