Что: 174173f91e592f40199e39e9b5aea51911f2f45f
Когда: 2021-01-13 16:11:34+03:00
Темы: go tip
Создание 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 директорию. Ручной труд всё равно остаётся, но сильно упрощается.
Сгенерирован: SGBlog 0.34.0