Re: conan, npm, vcpkg?
От: okman Беларусь https://searchinform.ru/
Дата: 17.01.26 19:38
Оценка: 12 (1)
Здравствуйте, Marty, Вы писали:

M>Кто что использует? Где какие плюсы, где какие минусы?


Используем Conan. В целом, вполне устраивает. У нас "зоопарк" библиотек, много кода и проектов.

Типичный workflow выглядит так: склонировал ветку git, запустил один раз в ней специальный скрипт, который стянул,
если требуется, недостающие библиотеки нужных версий в локальный кэш. И все, можешь работать с веткой.
Мы развернули свой сервер артефактов Conan, чтобы не зависеть от "внешнего мира". Первоначальная настройка
включает лишь установку Python и выполнение пары команд из консоли. Когда выходит новая мажорная версия
компилятора или среды разработки, или когда решаем переключить версию стандарта C++, или когда надо сменить
версию какой-то библиотеки — ответственный человек занимается этим и загружает новые артефакты на сервер.
После этого остается лишь внести некоторые изменения в настройки проектов и все подтянется автоматически.
Каких-то проблем за несколько лет использования не припомню. Нравится, что есть достаточно много рецептов
сборки для самых разных библиотек.

Это были плюсы. Теперь о минусах. Conan — это немного "магия", в которой кто-то должен хорошо разбираться.
Если ответственный человек ушел в отпуск, заболел или сильно занят и вдруг возникла необходимость что-то
обновить в артефактах, то сам ты с ходу этого, скорее всего, не сделаешь. Нужно читать мануалы,
экспериментировать, набивать шишки и т.п.

Ну и в целом, безотносительно Conan и пакетных менеджеров, зависимости от сторонних библиотек, особенно от тех,
которые требуют сборки и всяких там Perl/Cmake/NuGet/Ninja/etc — это не всегда хорошо. Иногда такие
зависимости незаметно становятся сквозными и очень сильными, как "вирус" проникая во все проекты...
Ты приходишь однажды с желанием точечно поменять настройки какого-то проекта или для эксперимента собрать его
под другую версию стандарта C++, или под новую платформу, или хочешь прогнать юнит-тесты с каким-нибудь
ASAN-ом — но не можешь. Тебе мешает пакетный менеджер, его контроль ABI или еще чего-нибудь такое.
Пытаешься убрать внешние зависимости, а они в одном месте, в другом, в третьем. У нас, например, артефакты
нельзя собирать с опцией Link-Time Code Generation компилятора, потому что после первого же обновления
компилятора совместимость на двоичном уровне уже не гарантируется и могут быть проблемы.
А пересобирать целиком весь "зоопарк" библиотек каждые несколько дней никто не будет.

В общем, к таким вещам надо аккуратно подходить, особенно на больших кодовых базах. Сейчас, начиная какой-нибудь
новый проект с нуля, я бы до последнего сопротивлялся введению пакетного менеджера. Conan или что-то другое —
не важно, хрен редьки не слаще )) Если его и включать — то очень избирательно, для тех компонентов, где он
позарез нужен, но не больше.
Re: conan, npm, vcpkg?
От: _NN_  
Дата: 18.01.26 08:23
Оценка: 8 (1)
Здравствуйте, Marty, Вы писали:

M>Здравствуйте!


M>Кто что использует? Где какие плюсы, где какие минусы? Кто-нибудь пробовал несколько вариантов, может сравнить?


M>VCPKG мне понравился тем, что сам на плюсах написан, и вроде не сильно сложно. Если что, можно глянуть в сорцы, написанные на том же языке, на котором и работаю, не надо никакие питоны и тайпскрипты изучать


Имею опыт с vcpkg и с conan.
В целом vcpkg попроще и поудобней.
Также легко позволяет добавить свои флаги и настройки без необходимости загружать что-то куда-либо.

Единственное, что нужно сразу настроить бинарный кеш иначе придётся пересобирать из исходников каждый день
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re: conan, npm, vcpkg?
От: Doom100500 Израиль  
Дата: 18.01.26 07:34
Оценка: +1
Здравствуйте, Marty, Вы писали:

M>Здравствуйте!


M>Кто что использует? Где какие плюсы, где какие минусы? Кто-нибудь пробовал несколько вариантов, может сравнить?


Каким боком здесь npm? Это же для nodejs, не?
Спасибо за внимание
conan, npm, vcpkg?
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 15.01.26 18:09
Оценка:
Здравствуйте!

Кто что использует? Где какие плюсы, где какие минусы? Кто-нибудь пробовал несколько вариантов, может сравнить?

VCPKG мне понравился тем, что сам на плюсах написан, и вроде не сильно сложно. Если что, можно глянуть в сорцы, написанные на том же языке, на котором и работаю, не надо никакие питоны и тайпскрипты изучать
Маньяк Робокряк колесит по городу
Re: conan, npm, vcpkg?
От: Hоmunculus  
Дата: 15.01.26 18:11
Оценка:
Здравствуйте, Marty, Вы писали:

Conan. Требование заказчика. Глюкалово какое-то. Об версионность пакетов можно просто убиться.
Re: conan, npm, vcpkg?
От: sergey2b ЮАР  
Дата: 15.01.26 18:22
Оценка:
Здравствуйте, Marty, Вы писали:

VCPKG в не6скольких больших проектах
Re[2]: conan, npm, vcpkg?
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 17.01.26 19:45
Оценка:
Здравствуйте, okman, Вы писали:

O>В общем, к таким вещам надо аккуратно подходить, особенно на больших кодовых базах. Сейчас, начиная какой-нибудь

O>новый проект с нуля, я бы до последнего сопротивлялся введению пакетного менеджера. Conan или что-то другое -
O>не важно, хрен редьки не слаще )) Если его и включать — то очень избирательно, для тех компонентов, где он
O>позарез нужен, но не больше.

Ну, такое тоже. Я с gRPC неделю трахался, собирая его, цельнотянутого с гита, а под VCPKG он просто собрался и работает.

Раньше да, тоже обходился без пакетных менеджеров, но вот такие жирные сторонние зависимости заставляют задуматься об использовании какого-то менеджера пакетов.
Маньяк Робокряк колесит по городу
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.