피드로 돌아가기
Python InsiderBackend
원문 읽기
Python 팀이 바이트코드 매직 넘버 변경으로 rc1 .pyc 파일 호환성을 깨뜨렸고, 세 번째 릴리스 후보를 추가해 테스트 기간을 확보
Python 3.14.0rc2 and 3.13.7 are go!
AI 요약
Context
Python 3.14.0rc2는 원래 2025-08-26에 계획되었으나, rc1 단계에서 발견된 바이트코드 매직 넘버 버그가 .pyc 파일의 하위 호환성을 깨뜨리는 문제가 발생했다. 이로 인해 rc1으로 생성된 모든 .pyc 파일이 rc2에서 재컴파일되어야 하는 상황이 발생했다.
Technical Solution
- 바이트코드 매직 넘버 수정: rc1과 rc2 간 .pyc 파일 포맷 변경으로 자동 재컴파일 필요
- 세 번째 릴리스 후보(rc3) 추가: 3.14.0 최종 릴리스 일정(2025-10-07)은 유지하면서 중간 테스트 기간 확보
- ABI 안정성 유지: rc2 이후 ABI 변경 없음 보증으로 휠 호환성 보장
- 휠 호환성 정책: rc1으로 빌드된 바이너리 휠은 rc2, rc3, 3.14.x 모두에서 동작
- Sigstore 서명 도입: PEP 761에 따라 PGP 서명 대신 Sigstore 기반 검증 제공
- 실험적 JIT 컴파일러 포함: macOS와 Windows 공식 바이너리에 포함
- Android 바이너리 신규 지원: rc2부터 공식 Android 릴리스 바이너리 제공
Key Takeaway
릴리스 후보 단계의 바이트코드 수준 버그 발견 시 추가 후보 릴리스로 충분한 테스트 기간을 확보하되, ABI 안정성을 명시적으로 보증하는 정책으로 에코시스템 신뢰도를 유지할 수 있다.
실천 포인트
바이트코드 형식을 변경하는 런타임 수정이 필요한 경우, 빌드된 아티팩트(휠, 패키지)의 호환성 범위를 명확히 구분하고(rc1 빌드 ≠ rc2 빌드), ABI 안정성 보증 시점을 명시해야 다운스트림 개발자의 재빌드 비용을 예측 가능하게 만들 수 있다.