Также понимание управления версиями поставщиков в go.
В предыдущем блоге я рассказал об основах модуля Go и управлении зависимостями в GoLang.
В этом блоге я попытаюсь рассказать о добавлении версий в проект (маркировке модуля) и о том, как обновить поставщика до определенной версии.
Что означает версия:
Версия — это идентификатор необратимого снимка модуля, который считается выпуском или предварительным выпуском (бета-версиями).
Он пишется как буква v (подразумевает версию), за которой следует семантическая версия. Семантические версии представляют собой неотрицательные целые числа и имеют формат (основная_версия).(дополнительная_версия).(версия_исправления).
Ниже приведены некоторые случаи для каждой версии:
patch_version ДОЛЖЕН увеличиваться, если представлены только исправления ошибок, совместимые с предыдущими версиями.
minor_version ДОЛЖЕН увеличиваться, если новый, обратно-совместимый добавлен совместимый функционал. При увеличении младшей версии patch_version должен быть сброшен на 0.
major_version ДОЛЖЕН быть увеличен, если внесены какие-либо изменения API, несовместимые с предыдущими версиями. При увеличении основной версии min_version.patch_version должен быть сброшен на 0.
Дополнительные метки для метаданных предварительного выпуска и сборки могут быть добавлены как расширения к формату (основная_версия).(дополнительная_версия).(версия_исправления)
. Например: v.1.0.0+beta, v2.1.12-pre
Самое простое, что можно сделать, это начать первоначальный выпуск разработки с 0.1.0, а затем увеличивать минорную версию для каждого последующего выпуска.
Псевдоверсия:
Версия с идентификатором редакции (например, хэш коммита Git) и отметкой времени из системы контроля версий.
Например, v0.0.0–20191109021931-daa7c04131f5.
Псевдоверсии относятся к ревизиям, для которых недоступны семантические теги версий.
Их можно использовать для проверки коммитов перед созданием тегов версий, например, в ветке разработки. В основном используется для тестирования в целях совместимости.
Существует два способа создания версий в проектах.
1. Создать версию во время создания запросов на вытягивание.
git checkout -b <branch_name> git commit -m <commit_message> git push — set-upstream origin <branch_name> git tag -a <tag_name> -m <tag_message> git push origin tag <tag_name>
2. Создать версию после объединения изменений с источником
git checkout origin git tag -a <tag_name> -m <tag_message> git push origin <tag_name>
Пример:
$ git checkout master $ git tag -a v1.2.3 -m “stable version 1.2.3” $ git push origin v1.2.3
В приведенном выше примере «v1.2.3» — это имя тега, а семантическая версия — «1.2.3».
Обновление версии поставщика в GoLang:
Когда вы используете некоторые зависимости в проекте, их необходимо обновлять с учетом последних изменений в соответствии с потребностями.
Ниже приведены шаги для обновления изменений зависимости поставщика в ваших локальных проектах.
export GOPRIVATE=<git_url> git config — global url.git@<git_url>:.insteadOf https://<git_url>/ //now change the version of vendor package in go.mod file go mod tidy go mod vendor
Поставщик модов go опускает файлы go.mod и go.sum для зависимостей от поставщиков, что в противном случае может создать проблемы в команде go для определения правильного корня модуля при вызове в дереве поставщиков.
go mod vendor добавьте версию go из файла go.mod каждой зависимости в vendor/modules.txt.
Вывод
Управление версиями — это способ определения уникальных состояний модулей/программного обеспечения по мере их разработки и выпуска.
Когда вводятся новые функции, исправляются ошибки или устраняются дыры в безопасности, номер версии увеличивается, чтобы указать, что модуль/программное обеспечение включает эти улучшения.