Я пытаюсь перенести существующий проект Go на модули, но не могу определить правильную структуру каталогов. Репозиторий содержит два обычных пакета (p1, p2) и примеры программ, демонстрирующих, как использовать пакеты. Я использую Go 1.13.
Текущий макет
<reponame>
|
+--- p1
| |
| +-- p1a.go
| +-- p1b.go
|
+--- p2
| |
| +-- p2a.go
| +-- p2b.go
|
+-- examples
|
+-- e1.go (which refers to packages p1 and p2)
Репозиторий github уже опубликован c с тегом версии> 1. Я знаю, что мне нужна новая основная номер v5, так что, похоже, мне нужно перейти к v5 где-нибудь на пути к пакетам.
Но должно ли это быть <repo>/v5/p1
или <repo>/p1/v5
? Откуда go .mod файлы go? Я подозреваю, что мне нужен один, чтобы покрыть два пакета, и один для примеров программ.
Все примеры, которые я могу найти для версии> 1, похоже, содержат только один пакет в модуле.
И что важно, как мне получить примеры для компиляции и запуска? Я попробовал все виды перестановок файла go .mod для примеров, но все они продолжают давать сбой с ошибкой типа "нет подходящих версий для запроса 'v5'", даже с директивой replace, чтобы попытаться указать на местные каталоги.
Похоже, он ожидает, что версия v5 уже будет опубликована на github, прежде чем я проведу локальное тестирование.