什么是 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