[about] [index] [prev] [2021-01-13 16:11:34+03:00] [174173f91e592f40199e39e9b5aea51911f2f45f]

Создание vendor директории в Go

https://github.com/golang/go/issues/30329
https://github.com/goware/modvendor
В своих tarball-ах для Go программ я обычно создавал src/ иерархию
директорий как в $GOPATH/src и говорил что собирать надо просто указав
GOPATH на текущую директорию. Прелесть этого в том, что будет работать и
на старых версиях Go (не знающих про модули) и на новых.

Но GOPATH собираются полностью выпиливать. В принципе ничего страшного:
"поставлять" зависимости в vendor директориях можно было уже давно. Но
придётся отказаться от Go <1.12. Но, насколько вижу, у меня по сути все
зависимости и мой софт именно эту версию минимально и требуют. Так что
смысла поддерживать GOPATH совместимость нет.

Поэтому в goredo начал делать полноценную vendor директорию. go mod
vendor позволяет создать её. Но она не включает кучу файлов, возможно
нужных для поставки (тесты и сопутствующие файлы):
ff602609469a5830b0c9be1f24d2d519dbb84561. Я поэтому писал на много
десятков строк адские скрипты копирующие зависимости. Но сегодня нашёл
modvendor утилиту, которая копирует в vendor указанные glob-ы файлов от
каждого модуля. Это у меня заменило целый экран уродливого shell-а.
Теперь только так и буду готовить vendor директорию. Ручной труд всё
равно остаётся, но сильно упрощается.

[leave comment]