Практическая миграционная проверка Python 3.15 RC1 для gh-137466: отдельный обратимый fixture, таблица наблюдений, отрицательный контроль, стоп-линия и обезличенный пакет для повтора.
Граница изменения: 137466
Недокументированные glob.glob0 и glob.glob1 удалены; What’s New рекомендует glob.glob с каталогом в root_dir. Это подтверждает границу интерфейса, но не доказывает наличие дефекта в конкретном проекте. Отдельная пользовательская боль здесь такая: Сборщик артефактов может падать на AttributeError или после наивной замены возвращать пути с другим префиксом или порядком. Перед опытом запишите версию interpreter, точную точку вызова и ожидаемую ветку. RC1 остаётся preview: изолируйте его от рабочего интерпретатора.
Обратимый тест одного контракта
Минимальный стенд для этой боли: Во временном каталоге создайте a.txt, b.py, скрытый файл и подкаталог; вызовите glob('*.txt', root_dir=temp) и рекурсивный шаблон, не меняя cwd. Все входы должны быть синтетическими, короткими и воспроизводимыми. Положительный и отрицательный controls запускайте в свежих объектах или процессах, если cache, import state или lifetime могут перенести эффект. Cleanup должен удалять только созданный temp-root и не касаться рабочих данных.
Таблица наблюдений и отрицательный контроль
Для каждого запуска заполняйте строку «шаблон | root_dir | recursive | include_hidden | относительные результаты | порядок после sort». Сначала выполните baseline на прежней поддерживаемой версии, затем RC1 и снова свежий baseline, если опыт мог изменить состояние. Пустое поле не равно нулю, отсутствие исключения не подтверждает верное значение, а расхождение повторов означает unstable, а не разрешение выбрать удобную строку.
Зелёный критерий и стоп-линия
Статус passed допустим, только если каждый шаблон возвращает заранее зафиксированный набор относительных имён, а текущий каталог процесса не изменяется. Отметка not reproduced говорит только об этом fixture; blocked — о нехватке источника или capability. Стоп-линия для этой миграции: Не восстанавливайте glob0/glob1 копией из private stdlib: сначала зафиксируйте, нужны ли относительные или абсолютные пути. Нельзя получать зелёный результат broad except, отключением защиты, скрытием warnings или повторением до случайного успеха.
Минимальный пакет для повтора
Для повтора передайте только: дерево только из имён тестовых файлов, шаблоны, kwargs glob, cwd до/после и списки имён без содержимого файлов. Добавьте московский timestamp, точную версию 3.15.0rc1, команду воспроизведения и заранее заданный критерий. Удалите usernames, hostnames, IP, абсолютные домашние пути, tokens, cookies, environment dumps, рабочие файлы и лишние журналы. Источники подтверждают change boundary, но не результ вашего опыта, не массовость боли и не будущую индексацию.
Материал подготовлен редакцией VOne с помощью ИИ по открытым официальным и первичным источникам; факты, даты и ссылки перепроверены. Реальные пользовательские данные и вымышленные результаты тестов не использовались.
Источники и проверка
- What’s New in Python 3.15 проверено 2026-08-30
- CPython gh-137466 проверено 2026-08-30
Информация актуальна на дату публикации. Правила сервисов, приложений и сетей могут меняться.