Como instalar uma versão específica de um pacote Go usando go get?
Olá a todos! Sou novo em Go e estou tentando entender o gerenciamento de dependências. Tenho um projeto que usa a biblioteca github.com/gorilla/mux. Na última versão (v1.8.0), ocorreram mudanças críticas que quebram meu código. Preciso instalar exatamente a versão v1.7.4, com a qual tudo funcionava de forma estável.
Tentei escrever go get github.com/gorilla/mux@v1.7.4, mas recebo o erro: go: github.com/gorilla/mux@v1.7.4: invalid version: unknown revision v1.7.4. Também tentei go get github.com/gorilla/mux v1.7.4 e go get github.com/gorilla/mux#v1.7.4 — também não funcionou.
Estou usando Go 1.18, com módulos habilitados (GO111MODULE=on). Meu arquivo go.mod é:
module myapp
go 1.18
require github.com/gorilla/mux v1.8.0
Quero substituir v1.8.0 por v1.7.4. Como especificar a versão corretamente? Preciso remover a versão atual primeiro? Ou existe uma sintaxe especial para go get? Agradeço por uma explicação detalhada com exemplos.
Também tenho interesse em saber: como descobrir quais versões de um pacote estão disponíveis? E se