呼吁所有 Python 库维护者! 🐍

Python 3.11 处于测试阶段! 🎉

PEP 664定义了 Python 3.11.0 的发布时间表:

  • 第二个测试版于 2022 年 5 月 31 日发布

  • 第一个候选版本定于 2022 年 8 月 1 日

  • 完整版本定于 2022 年 10 月 3 日发布

Python 3.10 和 3.11 的发布经理 Pablo Galindo Salgado 在他的公告中说:

我们强烈鼓励第三方 Python 项目的维护者在 beta 阶段使用 3.11 进行测试,并尽快将发现的问题报告给Python 错误跟踪器。虽然该版本计划在功能完整的情况下进入 beta 阶段,但在发布候选阶段(星期一,2021 年 8 月 2 日)之前,功能可能会被修改,或者在极少数情况下会被删除。我们的目标是在 beta 4 之后没有 ABI 更改,并且在第一个候选版本 3.11.0rc1 之后尽可能少地更改代码。为实现这一目标,在 beta 阶段尽可能多地获得 3.11 的曝光率将是极其重要的

用3.11测试

现在是库维护人员开始使用您的项目测试 3.11 的时候了。您还不需要声明对 3.11 的支持和发布,但是在 CI 上使用 3.11 进行测试有两大好处:

  1. Python 3.11 中有一些删除和更改。现在进行测试将帮助您使您的代码兼容并避免在 10 月份的大型发布中出现任何重大意外(对您和您的用户而言)。

  2. 你可能会发现 Python 本身的 bug!报告这些将有助于修复它们并帮助每个人。

如何

GitHub 操作:setup-python

要使用个操作/setup-python测试最新的 alpha、beta 或候选发布版本,请将3.11-dev添加到您的工作流矩阵中。

例如:

jobs:
  build:
    runs-on: ubuntu-latest
    strategy:
      fail-fast: false
      matrix:
        python-version: ["3.7", "3.8", "3.9", "3.10", "3.11-dev"]

    steps:
      - uses: actions/checkout@v3

      - name: Set up Python ${{ matrix.python-version }}
        uses: actions/setup-python@v3
        with:
          python-version: ${{ matrix.python-version }}

进入全屏模式 退出全屏模式

GitHub 操作:死蛇

对于最前沿,我们可以使用deadsnakes/action来测试最新的夜间构建:

jobs:
  build:
    runs-on: ubuntu-latest
    strategy:
      fail-fast: false
      matrix:
        python-version: ["3.7", "3.8", "3.9", "3.10", "3.11-dev"]

    steps:
      - uses: actions/checkout@v3

      - name: Set up Python ${{ matrix.python-version }}
        if: "!endsWith(matrix.python-version, '-dev')"
        uses: actions/setup-python@v3
        with:
          python-version: ${{ matrix.python-version }}

      - uses: deadsnakes/action@v2.1.1
        name: Set up Python ${{ matrix.python-version }} (deadsnakes)
        if: endsWith(matrix.python-version, '-dev')
        with:
          python-version: ${{ matrix.python-version }}

进入全屏模式 退出全屏模式

特拉维斯 CI

我建议转移到另一个 CI。

同时,您还可以将3.11-dev添加到.travis.yml,尽管在撰写本文时它指向 2021-12-08 的 3.11.0a3,这总比没有好。

language: python
python:
  - "3.7"
  - "3.8"
  - "3.9"
  - "3.10"
  - "3.11-dev"

进入全屏模式 退出全屏模式

同样,我建议转移到另一个 CI。

其他 CI

您使用其他 CI 吗?如果您知道如何测试 3.11,请发表评论!

什么时候支持3.11?

您应该何时声明支持并添加Programming Language :: Python :: 3.11Trove 分类器?

首先,确保您的测试通过 3.11 beta。一种选择是等到 3.11.0 最终版发布。

或者,如上所述:

我们的目标是在 beta 4 之后没有 ABI 更改,并且在第一个候选版本 3.11.0rc1 之后尽可能少地更改代码。

如果你有一个纯 Python 项目,你现在可以发布。

如果您有 C 扩展,您可能希望等到发布候选阶段,尽管如果其他项目依赖于您的,预览版本将帮助他们测试和准备。

无论如何,现在开始测试 3.11!


头图:Uppland Runic Inscription 53,斯德哥尔摩老城有 1000 年历史的符文石(来源)

Logo

学AI,认准AI Studio!GPU算力,限时免费领,邀请好友解锁更多惊喜福利 >>>

更多推荐