Django 6.1.1 已正式发布,这是 6.1 系列的 bugfix release。发布包及其校验和可从 Django 下载页面获取,也可以通过 Python Package Index(PyPI)安装。此次发布使用的 PGP 密钥属于 Jacob Walls,密钥 ID 为 131403F4D16D8DC7。
对于已经运行 Django 6.1 的项目,这类维护版本通常是评估升级的合适节点。不过,升级前仍应在测试环境执行完整测试,并确认依赖约束不会被意外改写。
适合怎样升级
如果项目通过虚拟环境管理依赖,可以在激活环境后执行:
python -m pip install --upgrade "Django==6.1.1"
python -m django --version
python manage.py check
python manage.py test
这组命令会将 Django 固定到 6.1.1,随后检查安装版本、项目配置和测试结果。生产项目不建议只执行不带版本号的 pip install --upgrade Django,因为它可能安装未来的其他版本,导致发布结果不可重复。
如果项目使用 requirements.txt,可以把依赖声明改为:
Django==6.1.1
然后重新安装依赖并运行测试:
python -m pip install -r requirements.txt
python manage.py check --deploy
python manage.py test
上面的命令假定项目入口是 manage.py,并且当前 shell 已进入项目虚拟环境;实际项目如果使用其他测试命令,应替换最后一行。
下载包与发布校验
Django 6.1.1 的发布包和校验和同时提供在官方下载页面与 PyPI。日常应用开发通常直接使用 PyPI 即可:
python -m pip download --no-deps --dest /tmp/django-6.1.1 "Django==6.1.1"
sha256sum /tmp/django-6.1.1/*
如果组织的发布流程要求验证发布包签名,可以导入发布公告指定的 PGP 公钥,并使用对应的 .asc 签名文件验证下载内容。此次发布对应的密钥信息是:
Name: Jacob Walls
Key ID: 131403F4D16D8DC7
验证时应使用从可信渠道获得的公钥和签名文件。例如,假设发布包为 Django-6.1.1.tar.gz,签名文件为 Django-6.1.1.tar.gz.asc,本地命令可以是:
gpg --import django-release-key.asc
gpg --fingerprint 131403F4D16D8DC7
gpg --verify Django-6.1.1.tar.gz.asc Django-6.1.1.tar.gz
不要只根据“签名验证成功”就跳过指纹核对。企业构建环境应将已确认的公钥指纹纳入密钥管理流程,并把下载包的 SHA-256 校验结果记录到构建日志中。具体期望值应以官方发布信息中的校验和为准,不能自行猜测。
升级时检查什么
Bugfix 版本的升级范围通常小于功能大版本,但 Django 项目仍可能受到依赖、数据库迁移和部署流程的影响。建议至少检查以下内容:
pip freeze或锁文件中是否同时存在冲突的 Django 相关依赖。- 项目的单元测试、集成测试和关键接口测试是否全部通过。
python manage.py check --deploy是否报告新的部署问题。- 管理后台、认证流程、文件上传和定时任务等高频路径是否能正常运行。
- CI、容器镜像和生产环境是否使用了同一个 Python 与 Django 依赖集合。
一个稳妥的发布步骤
可以把升级拆成四个阶段:先在独立虚拟环境中安装 6.1.1,再运行项目测试和 Django 检查;随后在预发布环境验证真实配置与关键业务流程;确认结果后更新锁文件或依赖清单,最后再推进生产部署。
对于已经固定在 Django 6.1 系列的项目,6.1.1 是值得纳入维护窗口的版本。对于仍在其他 Django 主版本上的项目,则不要把这次 bugfix release 当作跨版本升级信号,应先确认兼容性、支持周期和迁移成本。