2017-05-02 6 views
1

github package의 버전을 이해하려고합니다. 나는 그것을 국지적으로 짓고있다. release process, 나는이를 찾아 내 REPO에서setuptools는 패키지의 버전을 어디에서 찾을 수 있습니까?

VERSION=$(python setup.py --version) 

를, 내가 이것을 실행할 때마다 내가 얻을 :

» python setup.py --version 
1.0.9.dev29 

그러나 나는이오고있다 단서가 없다. 1.0.9.dev29 버전은 setup.cfg이나 별도의 VERSION 파일에 없습니다. repo에는 버전 파일 또는 이와 유사한 것이 없습니다. setuptools이이 버전 ID를 파생시키는 방법을 이해할 수 없습니다. documentation은 힌트를 제공하지 않습니다.

python setup.py --version 명령은 어떻게 작동합니까?

+1

'setup.py'을 아직 보지 않았습니까? :-) –

+0

@MartijnPieters : 예, 버전과 관련이 없습니다 (링크를 다시 작성해야합니다. 잘못되었습니다). 나는 *version *이 setuptools가 아니라 패키지의 버전을 제공한다고 생각한다. – dangonfast

+1

문제의 패키지가 [pbr] (https://docs.openstack.org/developer/pbr/)을 사용하고있는 것처럼 보입니다. 버전이 어디에서 왔는지에 대한 답은 아마도 어딘가 pbr 문서에있을 것입니다. 특히 : "두 경우 모두 버전 문자열은 자식에서 유추됩니다." 따라서 가장 최근에 태그가 추가 된 git 버전을 기반으로하는 것처럼 보입니다. –

답변

2

setup.py --version은 메타 데이터에서 가져온 패키지의 버전을 나열합니다. 특정 프로젝트 메타 데이터를 처리 할 수 ​​pbr package을 사용

setup_requires=['pbr>=1.9', 'setuptools>=17.1', 'pytest-runner'], 

pbr (파이썬은 합리성 빌드) 현재의 자식 역사를 보면 패키지 빌드시 버전을 설정은 pbr 문서의 Version section를 참조하십시오

버전은 두 가지 방법으로 관리 할 수 ​​있습니다. Postversioning이 기본값이며 preversioning은 setup.cfg 메타 데이터 섹션에서 version을 설정하여 활성화됩니다. 두 경우 모두 버전 문자열은 git에서 유추됩니다.

현재 체크 아웃 된 리비전에 태그가 추가 된 경우 해당 태그가 버전으로 사용됩니다.

그래서 개발자가pbr이 자식 저장소 메타 데이터를 살펴보고 버전 번호를 추출하고 그 시간에 배포, 를 구축 setup.py를 실행하고 구축 배포판 것을 포함 할 때; tar.gz 소스 타볼에는 PKG-INFO 파일이 포함되어 있습니다.