2012-02-16 28 views
8

Sphinx belgelerine ve Pip'e yayın yapmak için gereken ayrıntılara sahip bir Python projem var. Bu fonksiyonların Python projesinde tutarlı sürüm oluşturma

İkisi

bir versiyonunu (örneğin 0.4b3) gerektiren

otomatik sürüm numaraları gerektiren çeşitli yardımcı programlar arasında tutarlı sürüm numarasını korumak için en iyi yöntem var mı?

Bir bonus olarak, git ile entegre olan bir şey var mı (ör., Etiketlerle)?

+1

Bu konuyu programmers.stackexchange.com adresine taşıyabilirsiniz, bu site için daha uygun olur. –

cevap

0

Bu, test edilmemiş bir yanıttır, ancak bunun, conf.py komut dosyasında sfenks ile yapılması çok kolay olacağını düşünmekteyim. Bu komut sadece Python olduğu gibi, böyle bir şey yapabileceğini: Doğal

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) 

siz onları istediğiniz gibi onları almak için Çıktı komutları bazı dize işleme yapmak isteyebilirsiniz ve bazı hata denetimi, ama temel düşünce tutmalı.

Dediğim gibi, bunu test etmedim, bu yüzden tamamen yanlış olabilirim, bu fikirle ilgili bir sorun olup olmadığını bana söyleyin.

+0

Snippet için teşekkürler, ancak açık olmak gerekirse, kendi başıma dönmeye çalışmak yerine, halihazırda kullanılmakta olan herhangi bir uygulamayı arıyordum. – muckabout

1

Bu, Python distutils posta listelerinde favori bir sorudur. Modülünüzü setup.py'den, ayrıca conf.py ve modül modüllerinden alabilirsin. sürüm. Bu, içe aktarma işleminize, 2to3 veya diğer etkenlerin kullanılmasına bağlı olarak çalışmayabilir. Bu durumda, sürümünüzü bir metin dosyasına taşıyabilir ve bunu modülünüz, setup.py ve conf.py adreslerinden açabilirsiniz.

Bu konudaki kişisel ilgim, sürüm numarasını üç yerde güncellemenin büyük bir zorunluluk olmamasıdır. Yayınlama işleminde küçük bir adım.

İlgili konular