Python 의존성을 고정해 재현 가능한 requirements 파일을 만들고, 환경을 파일에 맞게 동기화하는 명령줄 도구 모음(pip-compile 및 pip-sync)입니다.
pypa/setuptools-scm
Git 또는 Mercurial 태그에서 패키지 버전을 가져와 setuptools와 연동하는 Python 도구입니다.
- 스타
- 954
- 포크
- 251
- 열린 이슈
- 26
- 마지막 커밋
- 17시간 전
어떤 프로젝트인가요?
setuptools-scm은 프로젝트의 버전 관리 시스템 메타데이터(주로 Git 또는 Mercurial 태그)에서 Python 패키지 버전을 추출합니다. setup 파일에 버전 문자열을 직접 관리하는 대신, 빌드 시점에 가장 최근 태그와 커밋 상태를 바탕으로 버전을 계산하므로 릴리스와 개발 빌드가 저장소 기록과 일관성을 유지합니다.
이 패키지는 setuptools에 연동되며, 자체 도구를 통해 단독으로 사용할 수도 있습니다. 이 저장소는 두 프로젝트를 담은 모노레포입니다. 하나는 setuptools-scm 자체이고, 다른 하나는 setuptools와 별개로 사용할 수 있는 핵심 VCS 버전 관리 라이브러리인 vcs-versioning입니다.
저장소는 의존성 관리에 uv를 사용합니다. 모든 패키지와 의존성 그룹을 설치하고, 각 프로젝트의 pytest 테스트 모음을 실행하며, 공통 mkdocs 문서를 빌드하는 명령이 포함되어 있습니다.
핵심 기능
- 01빌드 시점에 Git 또는 Mercurial 태그에서 버전 번호를 가져옵니다.
- 02Python 패키지 빌드를 위해 setuptools와 연동됩니다.
- 03setuptools 없이도 사용할 수 있는 독립 라이브러리 vcs-versioning을 제공합니다.
- 04pytest로 실행하는 테스트 모음과 mkdocs로 빌드하는 문서가 포함되어 있습니다.
활용 사례
- 버전 문자열을 직접 수정하지 않고 Python 패키지 버전을 Git 태그에 맞춰 관리합니다.
- Git 또는 Mercurial로 관리되는 Python 프로젝트의 버전을 지정합니다.
- setuptools를 사용하지 않는 도구에서 VCS 기반 버전 감지를 재사용합니다.
빠른 시작
- 1
uv로 모든 패키지와 종속성 그룹을 설치합니다
uv sync --all-packages --all-groups - 2
테스트 스위트를 실행합니다
uv run pytest -n12
토픽
자주 묻는 질문
- setuptools-scm은(는) 무엇인가요?
- Git 또는 Mercurial 태그에서 패키지 버전을 가져와 setuptools와 연동하는 Python 도구입니다. setuptools-scm은 프로젝트의 버전 관리 시스템 메타데이터(주로 Git 또는 Mercurial 태그)에서 Python 패키지 버전을 추출합니다. setup 파일에 버전 문자열을 직접 관리하는 대신, 빌드 시점에 가장 최근 태그와 커밋 상태를 바탕으로 버전을 계산하므로 릴리스와 개발 빌드가 저장소 기록과 일관성을 유지합니다.
- setuptools-scm은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
- setuptools-scm에는 명시된 라이선스가 없습니다. 코드는 공개되어 있지만 라이선스가 없으면 재사용 허가가 명확하지 않으므로, 사용 전에 작성자에게 문의하는 것이 좋습니다.
- setuptools-scm은(는) 아직 유지보수되고 있나요?
- 활발히 유지보수 중. setuptools-scm의 마지막 커밋은 2026년 11월 6일입니다.
- setuptools-scm은(는) 어디에 사용할 수 있나요?
- 버전 문자열을 직접 수정하지 않고 Python 패키지 버전을 Git 태그에 맞춰 관리합니다. Git 또는 Mercurial로 관리되는 Python 프로젝트의 버전을 지정합니다. setuptools를 사용하지 않는 도구에서 VCS 기반 버전 감지를 재사용합니다.
- setuptools-scm는 어떻게 설치하나요?
- uv로 모든 패키지와 종속성 그룹을 설치합니다: uv sync --all-packages --all-groups 테스트 스위트를 실행합니다: uv run pytest -n12
- setuptools-scm은(는) 어디서 받을 수 있나요?
- 소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/pypa/setuptools-scm
요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.
관련 프로젝트
빌드, 환경, 테스트, 린트, 버전 관리, 배포를 아우르는 현대적이고 확장 가능한 Python 프로젝트 관리자입니다.
버전 업데이트, Git 태그 및 변경 로그 생성, GitHub/GitLab 릴리스와 npm 게시를 자동화하는 범용 CLI 도구입니다.
tox, pytest, Sphinx 문서, Git 버전 관리를 미리 설정해 설치 및 PyPI 배포가 가능한 패키지의 기본 구조를 만드는 Python 프로젝트 생성기입니다.
Jupyter 노트북을 일반 Markdown 또는 Python, Julia, R 스크립트로 저장해 Git에서 변경 사항을 깔끔하게 비교하고 버전 관리합니다.
GitHub의 저장소 생성 페이지에서 사용하는 프로그래밍 언어, 프레임워크, 편집기, 운영체제용 .gitignore 템플릿 모음입니다.