- 프로젝트 개요
Vermin은 Python 소스 코드가 필요로 하는 최소 Python 버전을 분석하는 유틸리티입니다. 이 도구는 파싱을 통해抽象구문트리(AST)를 구성하고, 사전에 정의된 규칙과의 매칭을 통해 코드에서 사용된 파이썬 특성을 식별합니다. 지원 범위는 Python 2.0부터 2.7까지, 그리고 Python 3.0부터 3.12까지 포함됩니다.
주요 기능은 다음과 같습니다:
- Python 2.x 및 3.x 문법 요소 탐지
- 다양한 파이썬 버전별 기능 지원 여부 확인
- 외부 의존성 없음, 순수 Python 구현
- CLI 및 프로그래밍 방식의 API 제공
- 시작하기
설치 방법
Vermin은 여러 가지 설치 옵션을 지원합니다.
PyPI를 통한 설치
pip install vermin
Homebrew 활용
brew install vermin
Spack으로 빌드
git clone https://github.com/spack/spack.git
. spack/share/spack/setup-env.sh
spack install py-vermin
spack load py-vermin
기본 사용법
설치가 완료되면命令行 인터페이스를 통해 즉시 사용 가능합니다.
단순 분석
vermin /경로/대상/프로젝트
대상 버전 지정
vermin -t=2.7 -t=3.6 /경로/대상/프로젝트
- 실제 활용 사례
지속적 통합 환경 적용
Vermin은 CI/CD 파이프라인에 통합하여 프로젝트의 최소 파이썬 버전 요구사항이 변경되지 않았는지 검증할 수 있습니다. 아래는 Travis CI 설정 예제입니다:
install:
- . setup_virtual_env.sh
- pip install vermin
script:
- vermin -t=2.7 -t=3.6 mypackage additional_module.py
Pre-commit 훅 연동
버전 관리 시스템의 훅 기능과 결합하면, 코드 제출 전에 자동으로 최소 버전 검증을 수행할 수 있습니다. 설정 예시:
repos:
- repo: https://github.com/netromdk/vermin
rev: GIT_SHA_OR_TAG # 예: 'e88bda9' 또는 'v1.3.4'
hooks:
- id: vermin
args: ['-t=3.8-', '--violations']
- 관련 도구 생태계
Python 버전 호환성 관리는 종단 다른 도구와의 협력을 통해 더욱 효과적입니다. 주요 Complementary 도구들은 다음과 같습니다:
- Flake8: 코드 스타일 및 문법 검사 도구로, Vermin과 함께 사용하면 PEP 8 준수와 버전 호환성을 동시에 확보할 수 있습니다.
- Black: 자동 코드 포맷터로, 서식 정리 후에도 지정된 파이썬 버전과의 호환성을 유지할 수 있습니다.
- Tox: 다중 파이썬 버전 환경에서의 자동화 테스트를 지원하며, Vermin과 연계하면 모든 테스트 환경에서의 호환성을 보장할 수 있습니다.
이 도구들을 적절히 조합하면 프로젝트의 버전 호환성을 체계적으로 관리할 수 있습니다.