Как занести в черный список определенную версию зависимости в файле cargo.toml?

#rust #rust-cargo

#Ржавчина #rust-cargo

Вопрос:

У меня есть зависимость от внешней библиотеки в моем Cargo.toml файле:

 [dependencies]
foo = "0.5.6"
  

К сожалению, foo crate вышел с новым выпуском 0.5.7 , который вводит существенный регресс. Скоро должна появиться новая версия ™, 0.5.8 в которой больше нет этой ошибки. Есть ли способ, которым я могу уберечь груз от использования плохой версии? Я знаю, что можно указать « 0.5.6 или ранее», как в таком:

 [dependencies]
foo = "0.5.0, <0.5.7"
  

Но есть ли способ также разрешить включение 0.5.8 всякий раз, когда оно будет выпущено?

Ответ №1:

Нет, Cargo этого не допускает, и использование foo = "0.5.0, <0.5.7" — ваш лучший выбор на данный момент. Лично я бы не стал верить, что еще не выпущенная версия определенно решит вашу проблему в любом случае. Как только новая версия будет выпущена и вы протестируете ее, вы можете переключиться на foo = "0.5.8" .

Вы также можете попросить автора ящика удалить версию 0.5.7; Cargo не выберет измененную версию, поэтому он будет использовать 0.5.6 в качестве самой последней версии, пока не будет выпущен 0.5.8. Выдергивание — правильное решение для работы с поврежденными выпусками.