понедельник, 2 июня 2025 г.

Vendoring, Giga, Python. Code Format

Vendoring, Giga, Python. Code Format


Vendoring

Вендоринг — это практика копирования внешних зависимостей внутрь самого проекта.

Основная идея состоит в том,

чтобы исключить зависимость от внешнего репозитория и гарантировать стабильность и воспроизводимость сборки.

Причины использования вендоринга

  • Воспроизводимость: Гарантирует, что проект собирается одинаково независимо от изменений внешних ресурсов.
  • Совместимость: Избегает проблем, связанных с обновленными версиями зависимых библиотек.
  • Безопасность: Исключает риск компрометации внешней библиотеки путем атаки злоумышленников на инфраструктуру поставки.

Реализация вендоринга в Python

Существует несколько инструментов и практик для реализации вендоринга в Python:

  1. Setuptools' vendored dependencies:Некоторые крупные проекты используют встроенную возможность
  2. setuptools включать внешние библиотеки прямо в дистрибутив проекта.
  3. Virtualenv + requirements.txt:Хотя это не настоящий вендоринг, фиксируя точные версии зависимостей в requirements.txt,
  4. можно добиться похожего эффекта.
  5. Wheel Bundles:Создавайте специальные wheel-пакеты, содержащие внутренние копии зависимостей.
  6. Poetry's lock files:Poerty генерирует файл poetry.lock, фиксирующий точное состояние зависимостей.
  7. Vendor directories:Копируйте внешние библиотеки прямо в директорию проекта, такую как /vendor или /third_party.

Заключение

Версионирование и вендоринг играют важную роль в обеспечении стабильности и надежности проектов.

Правильное использование этих техник гарантирует минимизацию рисков, возникающих вследствие внешних факторов,

таких как обновления библиотек или проблемы с сетью. Современный стек Python предлагает удобные решения для обеих задач,

начиная от Semantic Versioning и заканчивая продвинутым вендорингом с помощью инструментов типа Poetry и Setuptools.

Комментариев нет:

Отправить комментарий