PyPDF2 努力成為當(dāng)前用戶和新用戶的優(yōu)秀圖書館。我們謹(jǐn)慎地引入潛在的重大變化,但如果它們從長遠(yuǎn)來看能為社區(qū)提供價(jià)值,我們就會(huì)這樣做。
我們希望并認(rèn)為棄用不會(huì)很快再次發(fā)生。如果他們這樣做,用戶可以依賴以下過程。
PyPDF2 使用語義版本控制。如果您想避免破壞性更改,請使用依賴固定(也稱為版本固定)。在 Python 中,這是通過在文件中指定要使用的確切版本來完成的 requirements.txt
。可以支持您的工具pip-compile
來自 pip-tools
.
如果您使用的是Poetry,則文件已完成 poetry.lock
。
假設(shè) PyPDF2 的當(dāng)前版本是x.y.z
. 經(jīng)過討論(例如通過 GitHub 問題),我們決定刪除一個(gè)類/函數(shù)/方法。這是我們的做法:
x.y.(z+1)
: 添加棄用警告。如果有替換,也會(huì)引入替換,并且警告會(huì)告知更改及其發(fā)生的時(shí)間。這些文檔讓用戶了解棄用、棄用的時(shí)間和新功能。CHANGELOG 通知它。
(x+1).0.0
:通過將 DeprecationWarnings 替換為 DeprecationErrors,以破壞性方式刪除/更改代碼。我們這樣做是為了幫助那些以前沒有看過警告的人。CHANGELOG 通知它。
(x+2).0.0
:刪除了 DeprecationErrors。
這意味著用戶在 CHANGELOG 中有 3 個(gè)警告,一個(gè) DeprecationWarning 直到下一個(gè)主要版本,一個(gè) DeprecationError 直到那個(gè)之后的主要版本。
請注意,添加警告對于某些用戶來說可能是一項(xiàng)重大更改;很可能只是在 CI 中。這意味著需要對其進(jìn)行適當(dāng)記錄。
更多建議: