Перейти к содержимому
14 / 15

Обновление зависимостей без сюрпризов: что читать и как проверять

Обновление в Go всегда явное, поэтому вопрос не «как обновить», а «как не сломаться». Рабочая практика состоит из трёх привычек. Первая — разделять типы обновлений: go get -u=patch ./... берёт только патчи и безопасен для регулярного прогона, go get -u ./... поднимает минорные версии и требует внимания, а мажорные меняют путь импорта и делаются поштучно. Вторая — читать не список версий, а список изменений: go list -m -u all покажет, что доступно, но решение принимается по release notes, особенно у зависимостей, которые тянут за собой чужой код. Третья — проверять, а не надеяться: go build ./..., полный прогон тестов с -race, govulncheck и обязательно go mod tidy перед коммитом. Отдельная привычка для библиотек — apidiff. И практический совет: обновлять по одной зависимости за коммит, иначе при поломке непонятно, какая именно виновата.

Обновление зависимостей без сюрпризов: что читать и как проверять | JScriptiser