Почему псевдо-версия модуля go имеет определенную версию c? - PullRequest
2 голосов
/ 09 июля 2020

У меня go .mod выглядит как

require(
   ...
   github.com/google/wire v0.3.1-0.20190716160000-66f78fc84606
   ...
)

Насколько я понимаю, если пакет выглядит так (yyyymmddMMSS-commit_id), какая версия должна быть v0.0.0, но не v0.3.1 как этот пример.

Может ли кто-нибудь помочь мне, как мне это объяснить? Игнорирует ли мод go префикс v0.3.1-?

Ответы [ 2 ]

2 голосов
/ 09 июля 2020

Это результат go get 'определенной c фиксации, которая существует в дереве после тега semanti c версии:

go get github.com/google/wire@66f78fc84606

Псевдоверсии используются не только при отсутствии тега версии. Официальная документация по псевдо-версиям показывает:

Псевдоверсии могут относиться к ревизиям, для которых не доступны теги semanti c версии. Их можно использовать для проверки коммитов перед созданием тегов версий, например, в ветке разработки.

...

vX.Y. (Z + 1) -0.yyyymmddhhmmss-abcdefabcdef используется, когда базовая версия является версией выпуска, например vX.YZ

. В этом случае в репозитории есть теги версии semanti c. Базовая версия здесь v0.3.0, и, получив специфицированную c фиксацию (66f78fc84606), которая существует после v0.3.0 и перед следующей v0.4.0, вы получите:

github.com/google/wire v0.3.1-0.20190716160000-66f78fc84606

2 голосов
/ 09 июля 2020

На самом деле существует 3 допустимые формы псевдоверсии:

  1. vX.0.0-yyyymmddhhmmss-abcdefxyz . если перед целевой фиксацией нет более ранней версии с соответствующей основной версией

  2. vX.YZ-pre.0.yyyymmddhhmmss-abcdefxyz когда самая последняя версия коммита перед целевой - vX.YZ-pre

  3. vX.Y. (Z + 1) -0.yyyymmddhhmmss- abcdefxyz когда самая последняя версия коммита перед целевой - vX.YZ

Дополнительные сведения о Управлении Go Псевдоверсиями модуля : https://hackernoon.com/managing-go-module-pseudo-versions-in-go-113-412h30lw

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...