프로젝트 소개
nepenthe는 대규모 공유 conda/PyPI 환경을 빌드, 버전 관리 및 배포하기 위한 도구입니다. 명시된 목표는 팀이 환경을 한 번 정의하고, rattler로 한 번 해결하고, 결과를 이식 가능한 잠금 파일로 고정하고, 해당 잠금을 모든 스토리지 백엔드의 버전 관리 레지스트리에 게시하여 모든 머신이 재해결 없이 정확히 동일한 환경을 설치할 수 있게 하는 것입니다.
README에 설명된 주요 기능:
- 매니페스트 기반 구성: 분산된 요구 사항 파일 대신 선언적 환경 매니페스트를 사용합니다.
- rattler(순수 Rust)를 통한 네이티브 해결: Python 인터프리터 오버헤드를 피합니다.
- 이식 가능한 잠금: 구성상 재현 가능하도록 설계된 멀티 플랫폼 rattler_lock 파일입니다.
- 크로스 플랫폼 해결: 단일 호스트에서 linux-64, osx-arm64 및 win-64를 하나의 멀티 플랫폼 잠금으로 해결합니다.
- 플러그형 백엔드: file://, s3:// 및 https://에서 사양을 읽고 쓰며, 내부 Artifactory와 같은 모든 서버를 가리키는 채널을 지원합니다.
- 버전 관리 레지스트리: 불변 콘텐츠 주소 지정 잠금을 사용하는 환경별 독립 버전 관리입니다.
- conda 없이 설치: conda/mamba/micromamba 없이 rattler를 사용하여 잠금을 prefix에 연결합니다.
- conda 호환성: 모든 잠금을 conda create --file과 함께 사용할 수 있는 @EXPLICIT 사양으로 내보냅니다.
- 보안 태세: 자격 증명은 사용 시점에 주입되며 아티팩트에 기록되지 않습니다.
이 프로젝트는 생산자-소비자 수명 주기를 다룹니다: 매니페스트를 구성하고, 멀티 플랫폼 잠금을 해결 및 고정하고, 버전 관리 레지스트리에 게시하고, CLI 또는 Python에서 conda 없이 설치합니다. 또한 에어갭 팩/언팩 번들 및 프로젝트의 종속성을 소비하는 환경과 동기화 상태로 유지하는 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에 따라 라이선스가 부여됩니다.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.