什麼是 wxPython 發行版系列

wxWidgets 專案採用了 Linux Kernel 專案使用的釋出模型,其中存在交替的釋出集,其中一組被認為是穩定的而下一組被認為是開發。對於 wxWidgets,穩定開發不是指 bugginess,而是指 API 的穩定性和向後相容性。

  • 穩定 :在系列的持續時間內,不會修改現有 API,儘管可以新增新的非虛擬類方法等。通過不允許任何修改記憶體大小或類和結構佈局的更改來維護 C++庫的二進位制相容性。這可以並且經常對穩定版本系列中可以執行哪些型別的增強或錯誤修復施加限制,但是這實際上僅影響 C++層,因為 Python 向後相容具有略微不同的內涵。

  • 開發 :開發系列發行版的主要目的是新增新功能或糾正由於二進位制相容性問題而無法在穩定系列中糾正的問題,所有這些都是為了建立下一個穩定系列。因此,在開發系列的持續時間內,允許根據需要修改或刪除 API,儘管大多數時候 C++原始碼級相容性是通過棄用的過載函式或巨集等來維護的。對於 wxPython,這通常意味著將會是原始碼級別的不相容性,因為沒有過載或巨集,並且為了支援新版本的 API,有時必須刪除舊版本。

由於二進位制相容性問題,wxWidgets / wxPython 的最新開發版本通常比上一個穩定版本系列的最新版本更少。然而,在開發系列中的版本之間,API 可能正在發生變化或發展。

版本號如何工作?

對於發行版,wxPython 使用 4 元件版本號。雖然這看起來很像在其他開源專案中使用版本號,但有一些細微的差別。因此,對於某些版本的 **ABCD,**你可以推斷出以下內容:

  1. 釋出系列 :版本號( AB ) 的前兩個元件代表釋出系列,如果 B 元件是偶數,那麼它是一個穩定的系列,如果它是一個奇數,那麼它是一個開發版本系列。例如,2.4,2.6 和 2.8 是穩定的,並且 API 在每個系列中或多或少地被凍結,2.3,2.5 和 2.7 是開發,並且允許 API 和功能根據需要改變或發展。

因此,一個穩定系列與下一個穩定系列之間可能存在相當大的變化(例如 2.4 到 2.6),這通常會導致人們失望,因為在其他專案中,該組的變化會導致版本號的第一個組成部分發生變化。相反,你應該將 AB 的組合視為該版本的主要編號。

  1. 版本號 :版本號(C)的第三個元件代表發行版系列中的一個版本。例如,2.5.0,2.5.1,2.5.2,2.5.3 ……是 2.5 版本系列中的所有版本。 (並且因為在這種情況下它是一個開發系列,然後 2.5.3 的 API 和功能已經發展到與 2.5.0 中不同的地方。)C++ wxWidgets 版本通常在這裡停止並且僅釋出 ABC 版本。

  2. 子版本號或 wxPython 版本:版本號(D)的第四個元件用於表示官方 wxWidgets 版本之間的子版本或增量版本。這些版本包括對 wxPython 可能暴露的 wxWidgets 錯誤的修復,或者對 wxPython 很重要的次要增強。這不是一個任意的 wxWidgets 快照,而是一個經過測試的程式碼版本,除了原始碼庫之外,還沒有 wxWidgets 提供的修復和增強功能。

資料來源: https//wiki.wxpython.org/ReleaseSeries