介绍 DjangoVer

主要观点:介绍了一种用于 Django 相关包的版本系统“DjangoVer”,其将包的版本号与支持的最新 Django 版本相绑定,以解决版本编号难题。同时对比了 Django 的版本方案与 SemVer,强调 Django 不遵循 SemVer 且主要版本号不表示 API 兼容性,DjangoVer 也不试图在版本号中提供 API 稳定性/兼容性信息。

关键信息

  • Django 版本方案:每约 8 个月发布一个特性版本(如 5.1),每月发布一个 bug 修复版本(如 5.1.3 等),版本号格式为MAJOR.FEATURE.BUGFIX,特性版本号为 2 的是长期支持(LTS)版本。
  • DjangoVer 定义:Django 相关包的版本号形式为DJANGO_MAJOR.DJANGO_FEATURE.PACKAGE_VERSIONDJANGO_MAJORDJANGO_FEATURE表示支持的最新 Django 特性版本系列,PACKAGE_VERSION随包的发布而递增,同时需用 Python 包分类器指示完整的 Django 支持范围。
  • 选择 DjangoVer 的原因:认为 SemVer 不能有效编码兼容性等复杂概念,而 DjangoVer 能在版本号中编码“是否有人维护”和“能否与 Django 安装一起使用”等信息。
  • DjangoVer 在实践中的应用:作者自己的 Django 相关包已采用 DjangoVer,PyPI 上也有其他类似包,建议维护 Django 相关包的人考虑采用 DjangoVer。

重要细节

  • Django 从 2.0 开始采用当前版本方案,下一个 LTS 版本是 5.2,预计 2025 年 4 月发布,之后 8 个月是 Django 6.0。
  • DjangoVer 包在添加新特性或修复 bug 时递增版本号的第三位,当支持新的 Django 版本时更新前两位。
  • 示例说明新包开始支持 5.1 时版本为 5.1.0,支持 5.2 时变为 5.2.0 等,且要在包元数据中包含相应的 Django 分类器。
阅读 9
0 条评论