版本号指南¶
Blender 扩展平台并未强制要求特定的版本号方案,因此若您已为扩展制定了版本管理方案,可继续沿用现有方案。
若未采用现有方案,建议遵循以下指南。
插件扩展¶
插件应遵循语义化版本控制的精神。
语义版本控制最初是为带有 API 接口的软件库设计的,而插件通常并不具备这种特性。实际上,插件主要提供面向用户的功能,因此语义版本控制并不严格适用。
尽管如此,我们建议在开发扩展时,按照以下方式遵循语义化版本控制的 精神:
版本号应采用 主.次.补丁 格式(例如 2.3.1)。
主版本号 应在发生以下变更时递增:这些变更会移除或修改现有功能,导致用户无法像以前那样继续使用该插件。经验法则是:
如果新版本无法处理为旧版本创建或由旧版本生成的数据,请递增主版本编号。
If the user needs to relearn anything non-trivial about the add-on to continue using it as they already were, increment the MAJOR number.
次版本号 应在引入新功能时递增,但 不得 对现有功能产生显著影响。经验法则是:
如果引入了新功能,但用户可以(如果愿意的话)直接忽略该功能,并像以往一样继续使用该插件,则应增加 “次版本号”。
补丁版本号 应在不影响插件预期功能的错误修复和微小更改时递增。经验法则是:
如果从最终用户的角度来看,新版本除了修复了错误之外没有明显变化,请递增补丁版本号。
这些指南无法涵盖所有可能的情况,但希望它们能帮助大家了解如何处理常见情况。扩展开发人员在处理这些指南未充分涵盖的情况时,应根据自身判断做出最佳决策。
主题扩展¶
主题扩展与插件扩展的考虑因素不同,因此无需遵循类似语义化版本控制的规范。相反,我们建议遵循以下准则:
版本号应采用 X.Y.Z 格式(例如 2.3.1)。
X 应在主题发生 “重大” 视觉变化或重新设计时递增。
Y 应用于不同 Blender 版本的主题 “分支”(见下文)。
Z 应用于轻微的视觉调整或视觉错误修复。
轨迹¶
Blender 的新版本有时会在 Blender 的 Python API 中引入破坏性变更,甚至会改变整个功能的运作方式。如果这影响了您的扩展,您可能需要同时维护该扩展的两个“分支”:一个针对 Blender “旧版”,另一个针对 Blender “新版”。
您可以通过版本号来以一种相当清晰的方式实现这一点。例如,如果您的扩展程序当前版本为 1.2.1,而您想针对 Blender “新” 版本中的破坏性变更发布新版本,您可以将该新版本命名为 1.3.0。然后,如果您需要为 Blender “旧版” 对应的扩展版本修复错误,仍可以将补丁号递增为 1.2.2、1.2.3 等。实际上,1.2.x 和 1.3.x 是该扩展的两个不同“分支”,每个分支都可以继续发布新版本。
或者,您也可以增加版本号,特别是当您计划对旧版本进行的不只是 bug 修复时。无论采用哪种方式,我们都强烈建议不要仅在进行此类更新时增加补丁版本号:您永远无法预知何时可能需要发布一个 bug 修复版本。
Note
请确保在扩展的清单文件中准确标注各版本兼容的 Blender 版本。您还可以通过扩展的官网,为已上传的插件版本更新 Blender 版本兼容性。