| # Ensure that replaces of the main module in workspace modules |
| # are ignored, and replaces in the go.work file are disallowed. |
| # This tests against an issue where requirements of the |
| # main module were being ignored because the main module |
| # was replaced in a transitive dependency with another |
| # version. |
| |
| go list example.com/dep |
| |
| cp replace_main_module.go.work go.work |
| ! go list example.com/dep |
| stderr 'go: workspace module example.com/mainmoda is replaced at all versions in the go.work file. To fix, remove the replacement from the go.work file or specify the version at which to replace the module.' |
| |
| -- replace_main_module.go.work -- |
| go 1.18 |
| use ( |
| ./mainmoda |
| ./mainmodb |
| ) |
| replace example.com/mainmoda => ../mainmodareplacement |
| -- go.work -- |
| go 1.18 |
| use ( |
| ./mainmoda |
| ./mainmodb |
| ) |
| -- mainmoda/go.mod -- |
| module example.com/mainmoda |
| |
| go 1.18 |
| |
| require example.com/dep v1.0.0 |
| replace example.com/dep => ../dep |
| |
| -- dep/go.mod -- |
| module example.com/dep |
| -- dep/dep.go -- |
| package dep |
| -- mainmodb/go.mod -- |
| module example.com/mainmodb |
| go 1.18 |
| replace example.com/mainmoda => ../mainmodareplacement |
| -- mainmodareplacement/go.mod -- |
| module example.com/mainmoda |
| go 1.18 |