Skip to content
This repository was archived by the owner on Oct 17, 2021. It is now read-only.

fishy/test-go-mod-retract

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

test-go-mod-retract

This is a test repo to demonstrate the current (go1.17.2) issue when trying to use retract in go.mod to retract a version in a non-root go.mod file.

Git version history

The first git commit, created by github, has the following files:

README.md
LICENCE

The second git commit (2d05d02), which is recognized by go toolchain as v0.0.0-20211016165524-2d05d02ee912, has the following files:

README.md
LICENSE
lib/
  go.mod
  lib.go

This commit demonstrates a common mistake scenario: the project put the go.mod file under a non-root directory without realizing the consequences 0 of it.

Then, the third git commit (189fa58), which is also later tagged as v0.1.0, tries to correct the mistake from the previous commit, by removing lib/go.mod and add it to the root directory instead:

README.md
LICENSE
go.mod
lib/
  lib.go

This makes https://pkg.go.dev/github.com/fishy/test-go-mod-retract@v0.1.0/lib work, but at the same time, it shows that v0.1.0 is not the "latest" version of this module, and the latest version is v0.0.0-20211016165524-2d05d02ee912. When you try go mod get github.com/fishy/test-go-mod-retract/lib@latest, it will grab v0.0.0-20211016165524-2d05d02ee912, go mod get github.com/fishy/test-go-mod-retract@latest will correctly grab v0.1.0.

So the fourth commit (fb96cca) tries to retract v0.0.0-20211016165524-2d05d02ee912, by adding the following line 1 into root go.mod file:

retract v0.0.0-20211016165524-2d05d02ee912

This does NOT work as intended, because currently retract can only be used to retract versions from the same go.mod, not other go.mod from the same repository.

Thanks to @seankhliao 2, it's possible to add back lib/go.mod, retract all versions up to a future version:

retract [v0.0.0-00000000000000-000000000000, v0.0.1-retract]

And then tag that version as lib/v0.0.1-retract. This successfully resolved the issue. lib/go.mod can be removed in the next commit.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages