2013-07-15 51 views
8

因此,我已經發布了一個關於pypi的小型庫,更像是一個練習(以「看看它是如何完成的」)而不是其他任何事情。發佈一個python包 - 你應該包含doc和測試嗎?

我已經上傳了關於readthedocs的文檔,並且在我的git倉庫中有一個測試套件。

因爲我認爲任何可能對運行測試感興趣的人都可能只是複製回購,並且該文檔已經在線提供,所以我決定不在發佈的軟件包中包含文檔和測試目錄,而我只是想知道這是否是「正確」的事情。

我知道這個問題的答案會比較主觀,但我覺得這是一個很好的地方問,以便了解社區認爲最佳做法。

+0

我找不到任何PEP或Setuptools文檔中實際上提及測試和文檔的部分,但我看到的一般模式是軟件包捆綁測試並且不打包文檔。 – Blender

+0

嗯。我有點期待與此相反 - 雖然我可以看到包含文檔si的價值,可以在離線狀態下查閱它,但在我看來,大多數普通用戶(即只安裝lib並使用它的人,假設它只是作品,而不是那些有興趣盜取你的東西的人)可能不會運行包含的測試,因此捆綁它們看起來像(對我來說可忽略但仍然)浪費。感謝您的回答:) – astrognocci

+0

這些包的文檔無論如何都是從源代碼生成的,所以您只需執行'help(函數)',並從方法或模塊的文檔字符串中提取相同的文檔。 – Blender

回答

5

這不是必需的,但建議將文檔和單元測試包括到包中。

關於文件:

老式的或不如說開源軟件的老學校源版本包含的文檔,這是一個標準的(看看GNU軟件,(事實上的?)例)。文檔是代碼的一部分,應該是發行版的一部分,只是因爲一旦你下載了源代碼版本,你就是獨立的。你曾經在什麼地方坐過火車,你需要快速查看模塊X的文檔,但是沒有上網?然後你很開心地意識到這些文件已經存在,在本地。

在這方面的另一個重要的一點是,您與代碼捆綁在一起的文檔適用於代碼版本。代碼和文檔同步。

關於Python還有一件事情:您可以使用Sphinx編寫文檔,然後在安裝包的過程中根據文檔來源構建漂亮的HTML輸出。我已經看到各種Python軟件包正在做這個。

關於測試:

想象中的測試被捆綁在源釋放,很容易被用戶運行(你應該記錄如何做到這一點)。然後,如果用戶觀察到代碼中存在的問題並不容易追查,他可以在他的環境中簡單地運行單元測試,並查看是否至少有這些問題通過。如果不是,那麼在指定代碼的行爲時可能會做出錯誤的假設,這很好理解。我想說的是:如果讓用戶執行單元測試非常簡單,那麼對開發人員來說它可能非常有用。

+0

我已經使用獅身人面像文件,並在readthedocs上承載它,這就是爲什麼我想我可以跳過那一個。但是,你的觀點很有道理,我猜得到我太習慣於簡單地使用谷歌了。我確信同意將它與代碼一起版本化,雖然我在保持更新方面做得不太好... ...哎呀,感謝您的意見,我想從現在開始包括這兩種方法;) – astrognocci

+0

@astrognocci我現在應該接受答案,我猜... – gaborous

相關問題