Repository navigation
fix(build)!: correct module path to github.com/eezzekl/skill-sync - #8
Merged
Merged
Conversation
go.mod declared `module github.com/ezzek/skill-sync` while the repository
is `github.com/eezzekl/skill-sync` — the final `l` was missing. Present
since the initial commit, so v1.0.0, v0.1.0 and v0.2.0 all shipped it.
`go install` consequently failed for every consumer:
go: github.com/eezzekl/skill-sync/cmd/[email protected]:
module declares its path as: github.com/ezzek/skill-sync
but was required as: github.com/eezzekl/skill-sync
Homebrew, Scoop and direct tarball downloads were unaffected; they ship
prebuilt binaries.
No existing test could catch this. A wrong module path is internally
consistent — every import agrees with go.mod — so the compiler and the
whole suite stay green while external resolution breaks. Added a guard
test asserting the declared path matches the repository URL.
Also fixes the same typo in the SECURITY.md private advisory URL, which
made the vulnerability reporting link a 404.
BREAKING CHANGE: the module path changed. Any importer must update to
github.com/eezzekl/skill-sync, though in practice nothing could have
imported the old path successfully.
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
go.moddeclaredmodule github.com/ezzek/skill-syncwhile the repository isgithub.com/eezzekl/skill-sync— the finallwas missing.go installhas therefore never worked, for any published version.SECURITY.mdadvisory URL.The bug
Present since the initial commit
dac6be6(verified withgit log -L1,1:go.mod), sov1.0.0,v0.1.0andv0.2.0all shipped the wrong path:Homebrew, Scoop and direct tarball downloads were unaffected — they distribute prebuilt binaries, so this never surfaced through the normal install paths.
Why no test caught it
A wrong module path is internally consistent: every import agrees with
go.mod, so the compiler is satisfied and the entire suite passes. The mismatch is only observable to an external consumer resolving the module through the proxy.That is precisely the kind of invariant that needs an explicit guard, so
cmd/skill-sync/module_path_test.gonow asserts the declared path against the canonical repository URL. It fails on the old path with a direct diagnostic:Changes
go.modgo.sumuntouched)cmd/skill-sync/module_path_test.gocmd/skill-sync/main.go,internal/**(31 files)SECURITY.mdopenspec/changes/skill-import/{design,tasks}.mdodd/tasks/fix-module-path.mdTest plan
go test ./cmd/skill-sync/→ module path mismatch, as quoted abovego test -race ./...→ 19 packages pass, 0 failuresgo vet ./...→ cleangofmt -l→ clean--versionwiring intact:skill-sync version 1.1.0-rcvia ldflags (the Homebrew formula test depends on this)Note on versioning
This is released as
v1.1.0. Deleting the strayv1.0.0tag cannot fix the version ordering: proxy.golang.org has permanently cachedv1.0.0,v0.1.0andv0.2.0, and its@latestcurrently resolves tov1.0.0. The proxy is immutable, so only a semver-greater tag moves it.Breaking change
The module path changed. Any importer must switch to
github.com/eezzekl/skill-sync— though in practice nothing could have imported the old path successfully.