Помогите протестировать Python 3.11 beta!

Призываем всех сопровождающих библиотек Python! 🐍

Python 3.11 находится в бета-версии! 🎉

PEP 664 определяет график выпуска Python 3.11.0:

  • Вторая бета-версия вышла 31 мая 2022 года.
  • Первый релиз-кандидат назначен на 1 августа 2022 года
  • И полный релиз назначен на 3 октября 2022 года.

В своем объявлении Пабло Галиндо Сальгадо, менеджер по выпуску Python 3.10 и 3.11, сказал:

Мы настоятельно рекомендуем сопровождающим сторонних проектов Python протестировать 3.11 на этапе бета-тестирования и как можно скорее сообщить о найденных проблемах в баг-трекер Python. Хотя планируется, что релиз будет полностью функциональным на этапе бета-тестирования, возможно, что функции будут изменены или, в редких случаях, удалены вплоть до начала этапа кандидата в релизы (понедельник, 2021-08-02). Наша цель — отсутствие изменений ABI после бета-версии 4 и как можно меньше изменений кода после 3.11.0rc1, первого релиз-кандидата. Для достижения этой цели очень важно получить как можно больше информации о 3.11 на этапе бета-тестирования.

Тестирование с 3.11

Теперь для сопровождающих библиотек настало время начать тестирование 3.11 в ваших проектах. Вам пока не нужно объявлять о поддержке и выпуске 3.11, но есть два больших преимущества тестирования 3.11 на CI:

  1. В Python 3.11 были произведены удаления и изменения. Тестирование сейчас поможет вам сделать ваш код совместимым и избежать больших сюрпризов (для вас и ваших пользователей) при большом запуске в октябре.

  2. Вы можете найти ошибки в самом Python! Сообщая о них, вы сможете добиться их исправления и помочь всем.

Как

Действия на GitHub: setup-python

Чтобы протестировать последнюю альфа-, бета- или релиз-кандидат с помощью actions/setup-python, добавьте 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@v4
        with:
          python-version: ${{ matrix.python-version }}
Войти в полноэкранный режим Выйти из полноэкранного режима

Действия на GitHub: deadsnakes

Для проверки последней ночной сборки мы можем использовать 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 }}
Войти в полноэкранный режим Выйти из полноэкранного режима

Travis CI

Я рекомендую перейти на другой CI.

Тем временем вы также можете добавить 3.11-dev в .travis.yml, хотя на момент написания статьи он указывает на 3.11.0a3 от 2021-12-08, что лучше, чем ничего.

language: python
python:
  - "3.7"
  - "3.8"
  - "3.9"
  - "3.10"
  - "3.11-dev"
Вход в полноэкранный режим Выход из полноэкранного режима

Опять же, я рекомендую перейти на другой CI.

Другие CI

Используете ли вы другие CI? Пожалуйста, оставьте комментарий, если вы знаете, как протестировать 3.11!

Когда поддерживать 3.11?

Когда вы должны объявить о поддержке и добавить Язык программирования :: Python :: 3.11 классификатора Trove?

Прежде всего, убедитесь, что ваши тесты проходят на 3.11 beta. Один из вариантов — подождать до выхода финальной версии 3.11.0.

Или, как было сказано выше:

Наша цель — отсутствие изменений ABI после beta 4 и как можно меньше изменений кода после 3.11.0rc1, первого релиз-кандидата.

Если у вас чисто Python-проект, вы можете выпустить релиз сейчас.

Если у вас есть расширения на C, то лучше подождать до стадии релиз-кандидата, хотя, если другие проекты зависят от вашего, предварительный релиз поможет им протестировать и подготовиться.

В любом случае, начинайте тестировать 3.11 уже сейчас!


Фотография заголовка: Уппландская руническая надпись 53, рунный камень возрастом 1000 лет в старом городе Стокгольма (источник)

Оцените статью
Procodings.ru
Добавить комментарий