Release HyperMeow v0.1.0 - #34
Conversation
codex/smb app parity
codex/channel delete mex
codex/atomic label replacement
codex/history sync ack control
feat: add typed native flow messages
HyperMeow declared `module go.mau.fi/whatsmeow`, so consumers could only reach it through `replace go.mau.fi/whatsmeow => github.com/polymorfa/ hypermeow`. Go only honours a `replace` in the main module, so that arrangement never propagated: anything that depended in turn on a module using HyperMeow silently resolved upstream whatsmeow instead, and `go get github.com/polymorfa/hypermeow` could not work at all. Declare the module under its own path, `github.com/polymorfa/hypermeow`, and rewrite internal import paths to match. Package names are unchanged - the root package is still `whatsmeow` - so only import paths move and no call site changes. The 57 generated descriptors are regenerated rather than text-edited. The `go_package` option is stored in the raw descriptor behind two protobuf varint length prefixes, and the path grows by 11 bytes, so a substitution would have left every length prefix understating its payload and corrupted the descriptors at runtime. Regenerating with the toolchain the artifacts were produced by (protoc-gen-go v1.36.11) reproduces them byte-identically apart from the intended change; the only incidental diff is the recorded protoc patch version, 6.33.5 to 6.33.6. The nested benchmark module already carried the new path and now requires it directly.
godoc renders the root package as "whatsmeow package - github.com/polymorfa/hypermeow", which reads like the rename did not take. It did: only the module path moved. Say so directly, and give the reason the package clause stays on the upstream name.
A distinct module path lets Go compile HyperMeow alongside upstream whatsmeow. Both keep upstream's generated descriptor paths, so the process-global protobuf registry panics before main. The replace directive made that impossible; document the constraint and how to assert it at build time.
Without -m the query is about the package, so a dependency importing only a subpackage such as proto/waCommon reports that the module is not needed while it is in fact linked. Add a link-graph check as well.
grep exits 0 on a match, so the documented command succeeded precisely when upstream whatsmeow was in the graph.
The go-mod-tidy pre-commit hook fails on nine stale entries for modules no longer in the graph.
Publish HyperMeow as its own Go module
|
@coderabbitai review exact head 4c1c118 for the v0.1.0 main release. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 4c1c118360
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
@coderabbitai review exact head e2f25d6 after fixing the legacy baseline module-path collision. |
|
Codex Review: Didn't find any major issues. 🚀 Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
Summary
Validation
After this PR is merged, the exact merge commit will be tagged v0.1.0 and requested through the public Go proxy so pkg.go.dev promotes the stable tag over dev pseudo-versions.
Need help on this PR? Tag
@codesmith-botwith what you need. Autofix is disabled.