2012-02-16 20 views
8

Tôi có một dự án Python có tài liệu Sphinx và các phân đoạn để xuất bản lên Pip.Phiên bản nhất quán trong dự án Python

Cả hai chức năng yêu cầu một phiên bản (ví dụ, 0.4b3)

Có một thực hành tốt nhất cho tự động duy trì một số phiên bản nhất quán trên các tiện ích khác nhau mà yêu cầu số phiên bản?

Là tiền thưởng, có bất kỳ điều gì tích hợp với git (ví dụ: thông qua thẻ) không?

+1

Bạn có thể di chuyển chủ đề này đến programmers.stackexchange.com, điều này cảm thấy phù hợp hơn cho trang web đó. –

Trả lời

0

Đây là câu trả lời chưa được kiểm tra, nhưng tôi cho rằng điều này khá dễ làm với nhân sư trong tập lệnh conf.py. Như kịch bản này chỉ là Python, bạn có thể làm một cái gì đó như thế này:

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) 

Đương nhiên, bạn có thể muốn làm một số xử lý chuỗi trên đầu ra của các lệnh để có được chúng như bạn muốn họ, và một số kiểm tra lỗi, nhưng ý tưởng cơ bản nên giữ.

Như tôi đã nói, tôi chưa thử nghiệm điều này, vì vậy tôi có thể hoàn toàn sai, do đó, hãy cho tôi biết nếu bạn tìm thấy một vấn đề với ý tưởng này.

+0

Cảm ơn bạn đã trích đoạn trích, nhưng rõ ràng, tôi đang tìm kiếm bất kỳ thực hành nào đã được sử dụng, thay vì cố gắng tự cuộn. – muckabout

1

Đây là câu hỏi yêu thích trên Python phân phối danh sách gửi thư. Bạn có thể nhập mô-đun của bạn từ setup.py cũng như từ conf.py và nhận mô-đun. phiên bản. Điều này có thể không hoạt động tùy thuộc vào nhập khẩu của bạn, việc bạn sử dụng 2to3 hoặc các yếu tố khác, trong trường hợp đó bạn có thể di chuyển phiên bản của mình sang tệp văn bản và mở phiên bản đó từ mô-đun, setup.py và conf.py.

Việc cá nhân tôi thực hiện việc này là không có gánh nặng lớn để cập nhật số phiên bản ở ba nơi. Đó là một bước nhỏ trong quá trình phát hành.