Ethan-Xingyue opened a new issue, #1179:
URL: https://github.com/apache/incubator-seata-go/issues/1179

   ## 🚀 Go Version
   
   go1.24.3 darwin/arm64
   
   ## 📦 Seata-go Version
   
   master, commit 3bf73586af81db1bd428982c93d82000d80cb1c8 (fetched 
2026-09-02); tags v2.0.0 and v2.1.0
   
   ## 💾 Operating System
   
   macOS
   
   ## 📝 Bug Description
   
   **Install commands.** Both READMEs tell users to install v2.0.0 with a path 
that has no `/v2` major-version suffix:
   
   - `README.md` L101: `go get seata.apache.org/[email protected]` → fails, 
`module path must match major version`.
   - `README_ZH.md` L106: `go get seata.apache.org/[email protected]` → fails, 
`unknown revision 2.0.0` (also missing the `v`).
   
   The obvious correction `go get seata.apache.org/seata-go/[email protected]` fails 
too, because the `go.mod` at tag `v2.0.0` declares `module 
seata.apache.org/seata-go` (without `/v2`); only tag `v2.1.0` declares `module 
seata.apache.org/seata-go/v2`. In practice **v2.0.0 cannot be installed as a Go 
module at all**; the working commands are:
   
   ```bash
   go get seata.apache.org/seata-go/[email protected]
   go get seata.apache.org/seata-go/v2@latest   # resolves to v2.1.0 today
   ```
   
   **Stale links** (checked at 3bf73586):
   
   | Where | Current | Problem | Suggested |
   | --- | --- | --- | --- |
   | `README.md` L111, `README_ZH.md` L113 | 
`https://github.com/seata/seata-go/releases` | old repository | 
`https://github.com/apache/incubator-seata-go/releases` |
   | `README.md` L124, `README_ZH.md` L123 | 
`.github/ISSUE_TEMPLATE/BUG_REPORT_TEMPLATE.md` | file does not exist; issue 
forms are `0_bug_report.yml` etc. | 
`https://github.com/apache/incubator-seata-go/issues/new/choose` |
   | `CONTRIBUTING.md` L179 | `./.github/pull-request-template.md` | wrong 
name/case | `./.github/PULL_REQUEST_TEMPLATE.md` |
   
   Permalinks: 
https://github.com/apache/incubator-seata-go/blob/3bf73586af81db1bd428982c93d82000d80cb1c8/README.md#L95-L128
 , 
https://github.com/apache/incubator-seata-go/blob/3bf73586af81db1bd428982c93d82000d80cb1c8/README_ZH.md#L100-L127
 , 
https://github.com/apache/incubator-seata-go/blob/3bf73586af81db1bd428982c93d82000d80cb1c8/CONTRIBUTING.md#L179
   
   Related: #891. Suggested priority: P2 (the first step of every new user 
fails).
   
   ## 🔄 Steps to Reproduce
   
   Install commands, in an empty module:
   
   ```bash
   tmp_dir="$(mktemp -d)"
   cd "$tmp_dir"
   go mod init readme-repro
   go get seata.apache.org/[email protected]        # README.md
   go get seata.apache.org/[email protected]         # README_ZH.md
   go get seata.apache.org/seata-go/[email protected]     # the obvious correction
   go get seata.apache.org/seata-go/[email protected]     # works
   ```
   
   Module path at the tags, in a checkout:
   
   ```bash
   git show v2.0.0:go.mod | head -1
   git show v2.1.0:go.mod | head -1
   ```
   
   Links, in the repository root:
   
   ```bash
   test -f .github/ISSUE_TEMPLATE/BUG_REPORT_TEMPLATE.md; echo "exit=$?"
   test -f .github/pull-request-template.md; echo "exit=$?"
   ls .github/ISSUE_TEMPLATE/ .github/PULL_REQUEST_TEMPLATE.md
   ```
   
   ## ✅ Expected Behavior
   
   - The install command in both READMEs succeeds in an empty module.
   - Release, issue-chooser and PR-template links point to valid targets in the 
Apache repository.
   - English and Chinese READMEs say the same thing.
   
   ## ❌ Actual Behavior
   
   ```text
   $ go get seata.apache.org/[email protected]
   go: seata.apache.org/[email protected]: invalid version: module contains a 
go.mod file, so module path must match major version 
("seata.apache.org/seata-go/v2")
   
   $ go get seata.apache.org/[email protected]
   go: seata.apache.org/[email protected]: invalid version: unknown revision 2.0.0
   
   $ go get seata.apache.org/seata-go/[email protected]
   go: seata.apache.org/[email protected]: invalid version: module contains a 
go.mod file, so module path must match major version 
("seata.apache.org/seata-go/v2")
   
   $ go get seata.apache.org/seata-go/[email protected]
   (succeeds; go.mod now contains: require seata.apache.org/seata-go/v2 v2.1.0)
   
   $ git show v2.0.0:go.mod | head -1
   module seata.apache.org/seata-go
   $ git show v2.1.0:go.mod | head -1
   module seata.apache.org/seata-go/v2
   
   $ test -f .github/ISSUE_TEMPLATE/BUG_REPORT_TEMPLATE.md; echo "exit=$?"
   exit=1
   $ test -f .github/pull-request-template.md; echo "exit=$?"
   exit=1
   ```
   
   Pinning v2.0.0 via `go mod edit 
-require=seata.apache.org/seata-go/[email protected]` + `go mod tidy` fails as well: 
`go.mod has non-.../v2 module path "seata.apache.org/seata-go" at revision 
v2.0.0`.
   
   ## 💡 Possible Solution
   
   - One small PR that updates `README.md`, `README_ZH.md` and 
`CONTRIBUTING.md` together: install via `go get 
seata.apache.org/seata-go/v2@latest` (or pin `@v2.1.0`), fix the release URL, 
link the issue chooser instead of a single form file, fix the PR template path.
   - State in the release notes / README that v2.0.0 is not installable as a 
module and users should start from v2.1.0.
   - Add a Markdown link checker and a smoke test that runs the README install 
command in a temporary module to CI.
   
   Acceptance criteria:
   
   - [ ] The corrected `go get` succeeds in an empty module and a minimal 
import builds.
   - [ ] English and Chinese READMEs agree on install, release, issue and 
security paths.
   - [ ] Internal relative links and external HTTP links in README/CONTRIBUTING 
pass a link check.
   - [ ] CI catches the same regression after future renames or migrations.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to