2012-02-16 34 views
8

我有一個Python項目,它有Sphinx文檔和distutils用於發佈到Pip。在Python項目中一致的版本控制

這些功能都需要一個版本(例如,0.4b3)

是否有自動維護跨越需要版本號的各種工具一致的版本號的最佳做法?

作爲獎勵,有沒有什麼與git(例如,通過標籤)集成?

+1

您可以將此主題遷移到programmers.stackexchange.com,這種感覺更適合該網站。 – 2012-02-16 14:22:57

回答

0

這是一個未經測試的答案,但我想這可能很容易處理conf.py腳本中的獅身人面像。由於此腳本只是Python中,你可以做這樣的事情:

import subprocess 

... 

path_to_source = "../src" 
release = subprocess.check_output(["git", "rev-parse", "HEAD"], cwd=path_to_source) 
version = subprocess.check_output(["git", "describe", "--tags", "HEAD"], cwd=path_to_source) 

當然,你可能想要做的命令的輸出一些字符串處理,讓他們爲你想讓他們,還有一些錯誤檢查,但基本理念應該成立。

正如我所說,我沒有測試過,所以我可能完全錯誤,所以告訴我,如果你發現這個想法有問題。

+0

感謝您的摘錄,但要清楚,我一直在尋找任何已在使用的做法,而不是試圖推出自己的產品。 – muckabout 2012-02-16 14:56:26

1

這是關於Python distutils郵件列表的最愛問題。您可以從setup.py以及conf.py和get模塊導入您的模塊。 版本。這可能不起作用,具體取決於您的導入,使用2to3或其他因素,在這種情況下,您可以將您的版本移至文本文件並從您的模塊setup.py和conf.py中打開。

我個人認爲,在三個地方更新版本號並不是很大的負擔。這是發佈過程中的一個小步驟。