есть зависимости на две либы разных версий и в одной из них ломающие изменения
в C# например заерзолвится самая высокая версия, но это не всегда корректно
упавший билд был бы хорошим решением на мой взгляд
карго пытается унифицировать. если не получится, то для каждой либы будет собрана отдельная версия
в расте библиотеки разных версий это разные библиотеки (если не вышло подружить требования). Оно просто соберет сколько нужно раз каждому свое
Проблемы могут быть только в случае, когда у либы есть глобальное состояние. (типа, у него появится несколько копий, разные куски твоего бинаря будут работать с разными копиями, и получатся нежелательные эффекты)
Раст решает очень хорошо, но все равно я не понял почему он решил сбилдить немажорные версии как одну и выплюнул ошибку
Если версии из одной ветки, то они обратносовместимы, поэтому в граф сборки забирается только последняя
https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html
Что-то спятся время у меня пара вопросов появилась 🙂 1) Правильно понимаю, что каждый воркспейс соберётся со своей версией библиотеки если указаны разные версии? 2) И правильно понимаю, что транзитивных зависимостей между воркспейсами нет? Т.е установленная либа А в воркспейс W1 не будет доступна в W2, который ссылается на W1?
Обсуждают сегодня