DECISION: canonical Go module path for 1.0 #79
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Owner decision required. Blocks the 1.0 tag and the README install
instructions (#75).
The conflict
go.mod:1—module sneak.berlin/go/mfermfer/mf.proto:3—option go_package = "git.eeqj.de/sneak/mfer/mfer";These disagree. Once 1.0 is tagged the module path is effectively permanent:
changing it later is a breaking change for every importer and requires a
major-version bump under Go's import compatibility rule.
Options
A.
sneak.berlin/go/mfer(recommended). Matches the repo policy — "Gomodule root:
sneak.berlin/go/<name>" — and matches whatgo.modalreadysays, so no code changes beyond the proto. It is a vanity path, which
decouples the import path from where the code is hosted; the repo can move
without breaking importers. Requires that
sneak.berlin/go/mferserve ago-importmeta tag, which needs to be verified as actually working beforethe tag.
B.
git.eeqj.de/sneak/mfer. Matches where the code actually lives andneeds no vanity-import hosting. But it contradicts the stated policy, and it
welds the import path to the current Gitea instance.
The proto's current value is a third thing again —
git.eeqj.de/sneak/mfer/mfer— which is neither of the above as a module root.
Recommendation
Option A. It is what policy mandates and what
go.modalready declares; theproto is simply wrong and should be corrected to match. The one real risk is
the vanity redirect not being served — that is worth verifying now rather
than discovering it at tag time.
Definition of done, once answered
go.modandmfer/mf.protogo_packageagree.mfer/mf.pb.gois regenerated from the corrected proto and committed.go install sneak.berlin/go/mfer/cmd/mfer@latestis verifiedto actually resolve from a clean module cache. If it does not, the vanity
redirect must be fixed before 1.0, and that becomes a blocking sub-task.
make checkpasses anddocker build .succeeds.Please answer inline and reassign to
clawbotto implement.