Об этом проекте

nepenthe — это инструмент для создания, версионирования и распространения больших общих сред conda/PyPI. Заявленная цель — позволить команде описать среду один раз, решить её один раз с помощью rattler, заморозить результат в переносимый лок-файл и опубликовать этот лок в версионированный реестр на любом хранилище, чтобы каждая машина устанавливала точно такую же среду без повторного решения. Ключевые возможности, описанные в README: - Композиция на основе манифестов: декларативные манифесты среды вместо разрозненных файлов требований. - Нативное решение через rattler (чистый Rust), без накладных расходов интерпретатора Python. - Переносимые локи: многоплатформенные rattler_lock файлы, воспроизводимые по построению. - Кросс-платформенное решение: решение linux-64, osx-arm64 и win-64 с одного хоста в один многоплатформенный лок. - Подключаемые бэкенды: чтение/запись спецификаций в file://, s3:// и https://, с каналами, указывающими на любой сервер, например, внутренний Artifactory. - Версионированный реестр: независимое версионирование для каждой среды с неизменяемыми локами, адресуемыми по содержимому. - Установка без conda: связывание лока в префикс с помощью rattler, без необходимости conda/mamba/micromamba. - Совместимость с conda: экспорт любого лока как спецификации @EXPLICIT, используемой с conda create --file. - Безопасность: учетные данные вводятся при использовании и не записываются в артефакты. Проект охватывает жизненный цикл от производителя к потребителю: составление манифеста, решение и заморозка многоплатформенных локов, публикация их в версионированный реестр и установка без conda, либо из CLI, либо из Python. Также упоминаются автономные пакеты pack/unpack и интеграция с pyproject.toml, которая поддерживает зависимости проекта в синхронизации с потребляемой средой. Пример рабочего процесса из README: YAML-манифест объявляет имя проекта, каналы, платформы, версию Python и корневые зависимости; команда сборки создает полностью закрепленный лок-файл; команда экспорта отображает лок как спецификацию @EXPLICIT conda; установка может быть выполнена либо с помощью conda из спецификации, либо с помощью nepenthe из лока. CLI — это единый мультиколл-бинарник, где np и npb являются симлинками на nepenthe, а npb служит ярлыком для подкоманды сборки. Python-привязка повторяет CLI для операций сборки, создания и активации. Раздел pyproject.toml может закрепить имя среды, реестр и версию, с командами sync и check для установки указанной среды и проверки совместимости зависимостей проекта. README позиционирует nepenthe как отличный от лок-файлов на проект (pixi, uv) и повторно решаемых манифестов (environment.yml): он создает и распространяет общую среду, потребляемую многими репозиториями, версионированную и неизменяемую. Документация организована в вики, охватывающую мотивацию, концепции, манифесты, каналы и Artifactory, реестр, установку, потребление в проекте, упаковку, Python API и бэкенды, а также материалы для участников по архитектуре и сборке из исходников. Проект лицензирован под Apache-2.0.