看我明白了。您正在發布一個新包...走出去,不確定該庫是否需要更改。所以你說,「也許我應該現在發布 v0,等準備好後再發布 v1」。本文將嘗試說服您從一開始就發布 v1。
發布 v1 有幾個原因:
對我來說,v0 的各種原因似乎可以歸結為:
...
但在閱讀了 semver 儲存庫上這個有趣的問題後:https://github.com/semver/semver/issues/221 我的觀點正在改變。使用版本 0.x 表示不穩定,這是事實,但現實是某些函式庫不穩定。
不穩定是什麼意思?這並不是庫發生了變化(因為這些更改可以計劃並由主要版本號表示)。不穩定與錯誤的普遍存在有關。
錯誤可能是:
附註:這兩者之間幾乎沒有什麼區別。很多錯誤只是 API 之間的不符或不相容。
那麼 --- 您的庫對消費者來說崩潰的可能性有多大?只有庫維護人員才能回答這個問題,而且它通常來自於消費者長期以來提出的問題的經驗。
但是在發布庫之前你怎麼知道它會有多不穩定呢?也許在 0.x 中待一段時間是個好主意。
但這個函式庫會擺脫 0.x 嗎?因為慣性是真實存在的。你有時間嗎?委員會會通過嗎?這是有風險的。
另一方面,發布1.0.0的風險是消費者如果頻繁升級會出現不穩定的情況。但對此有一些緩解措施。首先,使用鎖定文件,升級軟體包是一個手動操作。除非升級,否則消費者不會受到問題的影響。他們可以乾脆不升級,或延後升級。
新消費者可能會遇到有缺陷的版本,這是事實,但在 0.x 系統中也會出現這種情況。
像storybook這樣的函式庫在版本之間不是很穩定(根據我的經驗),但它們仍然沒有使用0.x。對於它的價值。
然後是傳遞依賴的區域。如果您的套件是另一個套件的依賴項,那麼另一個套件需要決定使用什麼 semver 範圍。您的穩定性會影響該軟體包的穩定性,因此風險更高。
該軟體包要么固定您的庫,要么使用更廣泛的 semver 範圍。在第一種情況下,它會導致重複,這對性能不利。在第二種情況下,存在不穩定的風險。我敢打賭,第一個選擇是行不通的,不穩定總是存在風險。
我在這裡沒有答案,但重點是,如果你的庫被其他庫使用,那麼風險會更高,你應該確保你的庫是穩定的。
所以你應該嘗試編寫一個穩定的函式庫,但如果它不穩定,那麼繼續使用 0.x 直到它穩定為止。但如果可以的話,請使用 1.x。
以上是以 semver `.0` 開頭的詳細內容。更多資訊請關注PHP中文網其他相關文章!