2017-05-02 109 views
1

我想了解github package有什麼版本。我正在本地建造它。在release process,我覺得這一點:setuptools在哪裏可以找到包的版本?

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

在我的回購,每當我運行此我得到:

» python setup.py --version 
1.0.9.dev29 

但我不知道這何處來自。版本1.0.9.dev29既不在setup.cfg中,也不在VERSION文件中。回購中沒有版本文件或類似內容。我不明白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推斷出來的。」所以它看起來好像該版本是基於最新標記的git修訂版。 –

回答

2

setup.py --version列出了取自元數據的包的版本。你的具體項目使用pbr package處理元數據:

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

pbrPython構建合理)通過查看當前的git歷史將在編譯的時候一個版本,請pbr文檔的Version section

版本可以通過兩種方式進行管理 - 後期制和預轉版。 Postversioning是默認的,並且通過在setup.cfg元數據部分中設置版本來啓用preversioning。在這兩種情況下,版本字符串都是從git推斷出來的。

如果當前簽出的修訂標籤被標記,那麼該標籤將用作版本。

所以,當開發者運行setup.py建立一個分佈,當時pbr着眼於git倉庫元數據和提取的版本號,幷包含在內置的分佈; tar.gz源代碼tarball包含一個PKG-INFO文件與版本。

相關問題