chore: rename Go module path to jacaudi and complete fork housekeeping - #49
Merged
Conversation
The module path still named the upstream organisation while the repo lives at jacaudi. Renaming it touches go.mod, the import block of all 18 Go files, and three fields in PROJECT — the `repo:` field plus both `path:` entries under `resources:`, which are easy to miss. Taken now, out of phase order, because the rewrite conflicts textually with any branch in flight and the tree is quiet: #39 has merged and nothing else is open. Also deletes .releaserc.json. It is inert upstream semantic-release config whose publishCmd targets a registry namespace two forks upstream; nothing invokes it, and release-please under .github/ superseded it wholesale. It is a trap rather than a config. No behavior change — this is a pure identifier rewrite, so the existing suite is the regression test rather than a new one. Verified: task ci passes with golangci-lint at 0 issues (merge base present locally, so the ratchet is honest rather than failing open), govulncheck 0, `go mod tidy -diff` clean, and `task go:integration` passes with internal/controller at 78s, confirming the -tags=integration build tag still matches. internal/it sits behind //go:build e2e and so is compiled by neither gate; it was verified separately with `go build`/`go vet`/`go test -tags=e2e`. The API group is unchanged and stays vpn.wireguard-operator.io; the module path and the API group are independent. That decision is recorded in docs/ROADMAP.md § 6.2. Refs #36
…ision The README's deploy section pointed at upstream's release asset and Helm chart. Following those commands installs the diverging upstream operator, which does not carry this fork's features — spec.persistentKeepalive, for example — directly under a note warning against exactly that. They cannot be repointed. This fork has published zero GitHub Releases (the v2.11.0 tag is the boundary tag created to bound release-please's commit scan, not a Release object), has no chart directory, and jacaudi/charts does not exist. So both blocks are removed rather than redirected, leaving `make deploy` from source as the documented path and pointing at #48, which tracks publishing an OCI Helm chart as the real install route. ROADMAP § 6.2 is updated from a one-line statement of the problem to a record of what landed, and now documents the API-group decision that #36's acceptance criteria require be explicit either way: the group stays vpn.wireguard-operator.io, because renaming it would change the CRDs' fully-qualified names and force every existing Wireguard and WireguardPeer object to be recreated, for no benefit beyond cosmetics. Refs #36, #48
3 tasks
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.
Closes #36.
The mechanical fork-housekeeping pass. Taken now, out of phase order, because it rewrites the import block in all 18 Go files and so conflicts textually with anything in flight — and the tree is quiet right now: #39 has merged and nothing else is open. Doing it after #2 would mean rewriting #2's new code too.
What changed
chore:— the module path.github.com/nccloud/wireguard-operator→github.com/jacaudi/wireguard-operator, acrossgo.modline 1, the import block of all 18 Go files (29 import lines), and three fields inPROJECT— therepo:field plus bothpath:entries underresources:.Also deletes
.releaserc.json. It is inert upstream semantic-release config whosepublishCmdtargetsghcr.io/jodevsa/..., two forks upstream. Nothing invokes it — the only other references in the tree are in generatedCHANGELOG.mdhistory — and release-please under.github/superseded it wholesale in #43. A trap rather than a config.docs:— the README and ROADMAP. See the decision below.The API-group decision
#36's acceptance criteria require this be documented either way, so: the API group stays
vpn.wireguard-operator.io.PROJECTcarriesdomain: wireguard-operator.iowithgroup: vpn. Renaming it would change the CRDs' fully-qualified names, forcing every existingWireguardandWireguardPeerobject to be recreated — a breaking change for no benefit beyond cosmetics, and the issue's own recommendation. The module path and the API group are independent; renaming the former does not touch the latter. Recorded indocs/ROADMAP.md§ 6.2 so it does not stay implicit.The README install section
The deploy section pointed at upstream's release asset and Helm chart. Those cannot be repointed, which is the one thing here that differed from what was expected going in:
jacaudi/wireguard-operatorhas published zero GitHub Releases. Thev2.11.0tag is the boundary tag created to bound release-please's commit scan, not a Release object — soreleases/download/v2.11.0/release.yamlunderjacaudiwould 404.jacaudi/chartsreturns 404. The copier answer ishas_chart=false.Following those commands installs the diverging upstream operator, which does not carry this fork's features (
spec.persistentKeepalive, for example) — directly beneath a note warning against exactly that. So both blocks are removed rather than redirected, leavingmake deployfrom source as the documented path.#48 is filed to publish an OCI Helm chart as the real install route, and the README points at it.
Verification
All run locally before pushing:
grep -rn nccloud . | grep -v '^./.git/'go build ./.../go vet ./...task cigo mod tidy -diffclean, fmt cleantask go:integrationinternal/controllerat 78.4smake manifests generateconfig apish hack/release-file-drift.shrelease.yaml matches config/Notes on three of those:
new-from-merge-base: origin/main. The merge base is present locally (559 commits, not a shallow clone), and the result is 0 issues — 113 would have meant the ratchet failed open, not that something broke. The 113 pre-existing findings, includingReconcileat cyclomatic complexity 121, anchor to function declaration lines rather than import lines, so they stayed suppressed.Reconcileis untouched; [P0] Replace trigger-based Deployment drift checks with declarative reconciliation #2 replaces it wholesale.go mod tidyis a no-op andgo.sumis unchanged, as expected — a module's own path is not recorded ingo.sum.go.modis a one-line diff.internal/itis compiled by neither gate. It sits behind//go:build e2e, notintegration, sotask ciandtask go:integrationboth skip it — the known [P1] CI lost its e2e tier when the template pipeline landed #44 coverage gap. Its rename was therefore verified separately withgo build,go vetandgo test -tags=e2e, all clean. The [P1] Flaky e2e: wstunnel spec asserts before the controller has processed the patch #45 readiness race in that package is untouched.task fmtwas run immediately after the rewrite, sincejacaudisorts beforenccloudand import ordering could have shifted. It produced no reordering — the Go diff is exactly 29 insertions and 29 deletions across 18 files, every one an import line.On tests
No new tests. This is a pure identifier rewrite with no observable behavior change — the documented exception to the mandatory-TDD rule. The existing suite is the regression test, and the assertion is that it passes unchanged, which it does, including the 78s envtest suite.
Merge
Please merge, do not squash — release-please parses each commit's type, and the two commits are typed
chore:anddocs:deliberately.