pesh1983
@pesh1983
Team Lead

Какие решения есть для определения версий библиотек?

Всем привет! Дано: продукт, который зависит от определенной библиотеки. Библиотека постоянно обновляется, но одна и та же часть кода сначала попадает в продукт (чтобы не ждать релиза библиотеки) и параллельно - в библиотеку. С выходом новой версии библиотеки те части кода, которые уже в ней имеются, удаляются из продукта. Задача: сделать механизм, который наиболее прозрачно будет сообщать о частях кода, которые надо удалить после переезда на новую версию библиотеки.
Как я это вижу: берем версию библиотеки, проверяем в нужных местах и выводим в консоль сообщение о необходимости удаления этих частей кода, если он уже есть в библиотеке. Для этого нужно где-то хранить версию библиотеки, чтобы ее можно было проще всего вытянуть.
У меня естественно назревает "велосипед", но хотелось бы для начала поискать готовые решения. Описанный мною юзкейс вроде как достаточно тривиальный, наверняка кто-то что-то уже сделал.
Код на python, в качестве CVS используется hg.
Всем спасибо!
  • Вопрос задан
  • 333 просмотра
Пригласить эксперта
Ответы на вопрос 3
edli007
@edli007
full stack, team lead
composer, npm и прочие пакетные менеджеры это на ура умеют.
Ответ написан
@leclecovich
Задача сводится к детектированию дублирующихся участков кода. Сравнивать придется корень проекта и site-packages/your_library_name. В качестве тулзы можно попробовать https://sourceforge.net/projects/clonedigger/. Кроме того, процесс можно автоматизировать, прикрутив CI.
Ответ написан
EvilsInterrupt
@EvilsInterrupt
System programming, Reversing Engineering, C++
Можно воспользоваться Requirements Files. В таких файлах можно указать точную версию, или старше указанной или не старше указаной. А можно вообще версий не указывать, а просто указать имена пакетов и тогда будут ставиться только самые последнии версии.

Установленная среда "замораживается" командой: pip freeze
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы