Использует ли Cargo semver с тегами Git? - PullRequest
0 голосов
/ 17 октября 2019

У меня такое впечатление, что это не так, но я не могу найти никакой конкретной документации по этому вопросу. Относится ли Cargo к совместимым с semver тегам в репозиториях Git так же, как к крейтам на crates.io, а именно к тому, что cargo update обновляет ящик до последней неработающей версии?

Чтобы быть более конкретным, учитываяв следующем фрагменте Cargo.toml и при условии, что последняя версия «crate» - 1.0.1, а для «git_crate» существует тег 1.0.1, будет загружена версия «crate» 1.0.1. Будет ли cargo install извлекать тег 1.0.1 для "git_crate" или использовать тег 1.0.0?

[dependencies]
crate = "1.0.0"
git_crate = { git = "https://git@example.com/git_crate.git", tag = "1.0.0" }

1 Ответ

1 голос
/ 17 октября 2019

Git-теги имеют произвольную форму;например, вполне возможно пометить ваш коммит как foobar, и никто не будет бить веко. Semver - это общая тенденция, которую люди используют для своих тегов;однако, это даже константа? Некоторые люди используют x.y.z, другие vx.y.z.

По этой причине груз выберет указанный вами тег точный . Вы можете убедиться в этом, используя git daemon для поддержки вашего репо на временном порту (по умолчанию 9418), а затем добавив git-репо и его теги. В следующий момент вы увидите, что порт работает и демон доступен (но без действительного git-репо):

Caused by:
  Unable to update http://localhost:9418/?tag=1.0.0

Таким образом, подтверждается, что единственное, что делает груз, - это получает именно тот тег, который вы упомянули. Это, опять же, вполне ожидаемо.

...