К обсуждениям

Python 3.15 RC1: матрица wheel для abi3 и нового abi3t

Редакция VOne Технологии

Практическая проверка Python 3.15 RC1: как проверить wheel C extension для обычного и free-threaded Python 3.15 с тегами abi3 и abi3t. Изолированный fixture, отрицательный контроль, заранее заданный критерий и безопасный пакет диагностики.

Обычный import не доказывает abi3t

PEP 803 добавляет Stable ABI для free-threaded Python под именем abi3t и предлагает авторам extensions явно собирать обе совместимости. Это подтверждает только границу функции, а не наличие проблемы в конкретном проекте. Практический симптом уже: Wheel импортируется в обычном CPython 3.15, поэтому его ошибочно считают готовым для free-threaded build, хотя тег, opaque PyObject API и thread-safety проверялись в другой ABI. До изменения кода зафиксируйте версию runtime, способ установки, один ожидаемый результат и один отрицательный исход. RC1 остаётся предварительным выпуском: его проверяют в отдельной среде, не ставят поверх рабочего interpreter и не используют один удачный запуск как разрешение на migration.

Две среды и два artifact

Рекомендуемый fixture: собрать минимальный extension в одноразовом CI для обычной и free-threaded сборок, вывести sys.abi_info, имя wheel и audit metadata, затем выполнить import и один детерминированный вызов. Дайте ему метку T23-08, отдельный temp root и короткий deadline. Входы должны быть синтетическими, повторяемыми и минимальными; каждый новый запуск получает новые объекты и процесс, если cache или global state способны изменить наблюдение. До опыта запишите точную команду и ожидаемый class результата. Не включайте рабочие конфиги, адреса, токены, персональные строки, production PID или полные environment dumps.

Tag проверяет installer

Опровергающий маршрут: попытаться установить каждый artifact в обе среды без переименования файла; несовместимый tag должен быть отдельным ожидаемым control, а не исправляться --force или копированием suffix. Собирайте строки формата «runtime | free-threaded | wheel tag | installer принял | import | smoke result | sanitizer/thread test». Порядок control A, target B, fresh control A2 обнаруживает загрязнение fixture: если A2 расходится с A, итог нельзя помечать passed. Пустое поле не равно нулю, отсутствие exception не доказывает правильную семантику, а изменение двух параметров сразу лишает опыт диагностической силы. Соседние причины получают отдельные строки, а не удобное общее объяснение.

Smoke, поток и sanitizer

Зелёный критерий сформулирован заранее: каждая поддерживаемая пара обозначена корректным tag, устанавливается штатно и проходит smoke plus concurrency fixture; обычный abi3 success не засчитывается за abi3t. Ветка not reproduced означает только отсутствие симптома в этой версии fixture; blocked означает нехватку capability или источника; failed control возвращает расследование к стенду. Стоп-линия: {item['stop']}. Нельзя добиваться зелёного результата отключением проверки, broad except, ростом лимита, повторением до случайного успеха или подменой предварительного release стабильным обещанием. После теста удаляются только созданные temp-ресурсы.

Что нужно владельцу wheel

Для maintainer или поддержки подготовьте: две строки sys.abi_info, wheel filenames, compiler flags, audit output и минимальный traceback без исходников продукта и registry credentials. Добавьте label T23-08, московский timestamp, точную версию RC и формулировку критерия «каждая поддерживаемая пара обозначена корректным tag, устанавливается штатно и проходит smoke plus concurrency fixture; обычный abi3 success не засчитывается за abi3t». Секреты, IP, hostnames, usernames, абсолютные домашние пути и полные логи удалите. Официальные источники подтверждают изменение «PEP 803 добавляет Stable ABI для free-threaded Python под именем abi3t и предлагает авторам extensions явно собирать обе совместимости.», но не подтверждают результат вашего теста, частоту проблемы или необходимость менять production. Такой пакет позволяет воспроизвести одну ветку, не раскрывая данные и не смешивая её с соседними issues.

Материал подготовлен редакцией VOne с помощью ИИ по открытым официальным и первичным источникам; факты, даты и ссылки перепроверены. Реальные пользовательские данные не использовались.

Источники и проверка

Информация актуальна на дату публикации. Правила сервисов, приложений и сетей могут меняться.

Ответы

0 опубликовано
Ответов пока нет. Вы можете начать обсуждение.

Ваш ответ

Добавьте свой опыт или уточнение по теме.

Вы публикуете как Аноним Аватар отличает разговоры, но не раскрывает личные данные.

Ответ появится сразу. Не публикуйте личные данные, ключи и приватные ссылки.