Django 6.1 RC1 发布:用两周时间完成升级验证与缺陷排查

2026-07-23 26 预计阅读时间: 1 分钟
来源: djangoproject.com AI 摘要 Original link

Disclaimer: This article is an AI-assisted summary. Read it together with the original source when precision matters. The summary may omit context, version differences, or edge cases and is not official documentation.

预计阅读时间:8 分钟

Django 6.1 Release Candidate 1 已经发布。这是正式版到来前集中验证新功能、可用性改进和项目兼容性的关键窗口。候选版本阶段也意味着字符串冻结,翻译人员可以据此提交稳定的本地化内容。

如果未来两周没有发现无法及时解决的重大缺陷,Django 6.1 正式版预计将在 8 月 5 日前后发布;若时间发生变化,Django 团队会在官方论坛沟通。

RC 阶段应该验证什么

RC 的价值不只是让开发者提前体验界面或 API。对实际项目而言,更重要的是把现有代码、依赖和部署流程放到新版本上运行,尽早暴露兼容性问题。

建议重点检查以下内容:

  • 项目能否正常启动,系统检查是否出现新错误或警告。
  • 数据库迁移的生成和执行结果是否符合预期。
  • URL 路由、中间件、模板、自定义字段和管理后台是否正常工作。
  • 第三方 Django 应用是否声明并实际支持 Django 6.1。
  • 单元测试、集成测试以及异步任务是否仍能通过。
  • 翻译字符串、日期格式和本地化页面是否存在回归。

RC 仍然是预发布版本,不应未经完整验证就替换生产环境。更稳妥的做法是在独立虚拟环境、CI 流水线或临时部署环境中测试。

建立一个隔离的 Django 6.1 RC1 验证环境

可以这样实践:创建全新的 Python 虚拟环境,从 PyPI 安装指定候选版本,再运行 Django 的系统检查。执行前请确认项目所用 Python 版本满足 Django 6.1 的要求;来源摘要没有列出具体 Python 版本范围,因此应以包元数据和 Django 6.1 文档为准。

python -m venv .venv-django61

# Linux/macOS
. .venv-django61/bin/activate

# Windows PowerShell 使用:
# .venv-django61\Scripts\Activate.ps1

python -m pip install --upgrade pip
python -m pip install "Django==6.1rc1"
python -m django --version

如果只是做最小冒烟测试,可以创建一个临时项目:

django-admin startproject rc_check
cd rc_check
python manage.py check
python manage.py migrate
python manage.py test
python manage.py runserver

对于已有项目,不要直接覆盖当前锁文件。可以复制工作目录或建立测试分支,然后安装项目依赖并单独升级 Django:

python -m pip install -r requirements.txt
python -m pip install --upgrade "Django==6.1rc1"

python manage.py check --deploy
python manage.py makemigrations --check --dry-run
python manage.py migrate --plan
python manage.py test

makemigrations --check --dry-run 用于发现升级后是否意外产生模型迁移,migrate --plan 则让团队在真正修改数据库前审查迁移计划。check --deploy 会执行面向部署的额外检查,但它不能替代真实流量下的回归测试。

把 RC 纳入 CI,而不是依赖人工试跑

如果项目当前仍需支持已发布的 Django 版本,可以增加一个允许失败的 RC 测试任务。下面是一个可改造的 GitHub Actions 示例,假设项目通过 requirements.txt 安装依赖,并可使用 python manage.py test 运行测试:

name: Django 6.1 RC compatibility

on:
  workflow_dispatch:
  pull_request:
  push:
    branches: [main]

jobs:
  django-61-rc:
    runs-on: ubuntu-latest
    continue-on-error: true
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-python@v5
        with:
          python-version: "3.x"
          cache: pip
      - name: Install project and release candidate
        run: |
          python -m pip install --upgrade pip
          python -m pip install -r requirements.txt
          python -m pip install --upgrade "Django==6.1rc1"
      - name: Run checks and tests
        run: |
          python manage.py check
          python manage.py makemigrations --check --dry-run
          python manage.py test

实际使用时,应把 python-version 改成项目明确支持且符合 Django 6.1 要求的版本。如果依赖文件把 Django 锁定为旧版本,安装 RC 时可能出现依赖冲突;这本身就是值得记录的升级信号。待兼容问题解决后,可以移除 continue-on-error: true,让 RC 回归直接阻止不兼容变更合并。

发现问题后,提交可复现的报告

候选版本的目标之一是发现并修复正式发布前的缺陷。报告问题时,避免只写“升级后不能运行”,应提供足够的信息让维护者复现:

Django version: 6.1rc1
Python version: <具体版本>
Database and version: <例如 PostgreSQL 具体版本>
Operating system: <系统与版本>

Steps to reproduce:
1. 创建或运行……
2. 执行……
3. 观察到……

Expected result:
<预期行为>

Actual result:
<实际行为和完整 traceback>

提交前应尽量把问题缩减到最小项目,并确认它在此前使用的 Django 版本上不会出现。缺陷应提交到 Django 的问题跟踪系统,而发布计划变化会通过 Django 论坛公布。

此次发布使用的 PGP 密钥标识为 Jacob Walls 的 131403F4D16D8DC7。如果从下载页面获取签名发布包,应在验证签名时核对完整密钥标识,并通过可信渠道确认密钥归属;仅看到匹配的短标识不足以建立完整信任链。

团队采用清单

在正式版发布前,可以完成一轮范围明确的升级演练:

  • 在隔离环境中安装精确版本 Django==6.1rc1
  • 运行系统检查、迁移检查和完整测试套件。
  • 检查关键第三方包的兼容性与依赖约束。
  • 对登录、权限、表单、管理后台和核心业务流程做人工回归。
  • 记录性能变化、弃用警告和新增迁移。
  • 将可复现缺陷提交到问题跟踪系统。
  • 生产环境继续使用稳定版本,等待正式版和依赖生态完成验证。

RC1 给团队提供的是一次低成本提前发现问题的机会。越接近真实项目、真实数据库和真实部署配置,测试结果就越有价值。


相关推荐