2013-07-15 22 views
8

Vì vậy, tôi đã phát hành một thư viện nhỏ trên pypi, nhiều hơn như một bài tập (để "xem cách nó được thực hiện") hơn bất cứ điều gì khác.Phát hành gói python - bạn có nên bao gồm tài liệu và kiểm tra không?

Tôi đã tải lên tài liệu về readthedocs và tôi có bộ thử nghiệm trong repo git của mình.

Vì tôi cho rằng bất kỳ ai có thể quan tâm đến việc chạy thử sẽ có thể sao chép repo và tài liệu đã có sẵn trực tuyến, tôi quyết định không bao gồm tài liệu và thư mục kiểm tra trong gói phát hành. tự hỏi nếu đó là điều "đúng" để làm.

Tôi biết câu trả lời cho câu hỏi này sẽ khá chủ quan, nhưng tôi cảm thấy đó là một nơi tốt để hỏi để hiểu ý nghĩa của cộng đồng là phương pháp hay nhất.

+0

Tôi không thể tìm thấy bất kỳ PEP hoặc phần nào của tài liệu Setuptools thực sự nói bất cứ điều gì về kiểm tra và tài liệu, nhưng mẫu chung mà tôi thấy là gói thử nghiệm và không đóng gói tài liệu. – Blender

+0

Hmm. Tôi cho rằng ngược lại - trong khi tôi có thể thấy giá trị bao gồm tài liệu si nó có thể được tư vấn ngoại tuyến, có vẻ như tôi là người dùng thông thường nhất (tức là mọi người sẽ cài đặt lib và sử dụng nó, giả sử nó chỉ hoạt động, thay vì những người quan tâm đến việc xâm nhập nội dung của bạn) có thể sẽ không bao giờ chạy thử nghiệm được bao gồm, vì vậy việc đóng gói chúng dường như là một sự lãng phí (không đáng kể, nhưng vẫn) đối với tôi. Cảm ơn câu trả lời của bạn anyway :) – astrognocci

+0

Tài liệu cho các gói đó được tạo ra từ mã nguồn anyways, vì vậy bạn chỉ cần thực hiện 'help (function)' và tài liệu tương tự được lấy từ docstring của method hoặc module. – Blender

Trả lời

5

Nó không bắt buộc nhưng được đề nghị bao gồm tài liệu cũng như các bài kiểm tra đơn vị vào gói.

Về tài liệu:

Old-fashioned hoặc tốt hơn để nói phiên bản mã nguồn cũ-trường của phần mềm mã nguồn mở có chứa tài liệu, đây là một tiêu chuẩn (có một cái nhìn tại phần mềm GNU, cho (de facto?) thí dụ). Tài liệu là một phần của mã và phải là một phần của bản phát hành, đơn giản bởi vì khi bạn tải xuống bản phát hành nguồn, bạn độc lập. Đã từng ở trong tình huống mà bạn đã ở trên một chuyến tàu nào đó, nơi bạn cần xem nhanh tài liệu của mô-đun X nhưng không có quyền truy cập internet? Và sau đó bạn nhận ra rằng các tài liệu đã có sẵn, cục bộ.

Một điểm quan trọng khác trong vấn đề này là tài liệu mà bạn gộp cùng với mã chắc chắn áp dụng cho phiên bản mã. Mã và tài liệu được đồng bộ hóa.

Một điều nữa đặc biệt là về Python: bạn có thể viết tài liệu bằng Sphinx và sau đó tạo đầu ra HTML đẹp dựa trên nguồn tài liệu trong quá trình cài đặt gói. Tôi đã thấy nhiều gói Python thực hiện chính xác điều này.

kiểm tra Về:

Hãy tưởng tượng các bài kiểm tra được đóng gói trong bản phát hành nguồn và rất dễ được điều hành bởi người sử dụng (bạn nên ghi lại như thế nào để làm điều này). Sau đó, nếu người dùng quan sát một vấn đề với mã của bạn mà không phải là quá dễ dàng để theo dõi, ông chỉ đơn giản có thể chạy các bài kiểm tra đơn vị trong môi trường của mình và xem nếu ít nhất là những người đi qua. Nếu không, bạn có thể đã thực hiện một giả định sai khi xác định hành vi của mã của bạn, đó là tốt để biết về. Những gì tôi muốn nói là: nó có thể rất tốt cho bạn như là một nhà phát triển nếu bạn làm cho nó rất đơn giản cho người sử dụng để thực hiện các bài kiểm tra đơn vị.

+0

Tôi đã sử dụng nhân sư cho tài liệu và lưu trữ nó trên readthedocs, đó là lý do tại sao tôi nghĩ rằng tôi có thể bỏ qua điều đó. Nhưng điểm của bạn làm cho rất nhiều ý nghĩa, đoán tôi đã quá sử dụng để chỉ đơn giản là có google xung quanh. Tôi chắc chắn đồng ý về versionning nó cùng với mã, quá, mặc dù tôi không làm quá tốt về việc giữ nó cập nhật ... Heck, cảm ơn cho đầu vào của bạn, đoán tôi sẽ chỉ bao gồm cả từ bây giờ;) – astrognocci

+0

@astrognocci Bạn nên chấp nhận câu trả lời ngay bây giờ tôi đoán ... – gaborous

Các vấn đề liên quan