Following system colour scheme Selected dark colour scheme Selected light colour scheme

Python 개선 제안 한국어 번역

PEP 715 – PyPI에서 bdist_egg 배포 업로드 비활성화

Author:
William Woodruff <william at yossarian.net>
Sponsor:
Donald Stufft <donald at stufft.io>
PEP-Delegate:
Donald Stufft <donald at stufft.io>
Discussions-To:
Discourse thread
Status:
Final
Type:
Standards Track
Topic:
Packaging
Created:
06-Jun-2023
Post-History:
09-Jun-2023
Resolution:
24-Jun-2023

Table of Contents

번역·라이선스 안내

이 비공식 한국어 번역은 원문 Copyright 절의 Public Domain or CC0-1.0, whichever is more permissive 조건에 따라 제공합니다. 원저자와 공식 원문은 그대로 표시합니다. 수정되지 않은 기준 원문 · 공식 최신판

초록

이 PEP는 PyPI에서 bdist_egg 배포 유형의 신규 업로드를 지원 중단한 후 비활성화할 것을 권고합니다. 이와 병행하여, 이 PEP는 .egg 접미사를 사용하는 배포 파일 이름의 신규 업로드도 지원 중단한 후 비활성화할 것을 권고합니다.

이 PEP 이후 PyPI는 sdistbdist_wheel 유형의 신규 업로드만 허용하며, 각각 .tar.gz/.zip.whl 접미사를 사용하는 파일에 해당합니다.

이 PEP는 이전에 업로드된 bdist_egg 배포판이나 .egg 접미사를 사용하는 파일을 제거하거나 그 밖의 방식으로 영향을 주는 것을 권고하지 않습니다.

근거

이전 작업

이 제안의 기반은 PEP 527에서 마련되었으며, 이 PEP는 거의 사용되지 않거나 사용되지 않는 일부 파일 확장자와 배포 유형에 대한 업로드 지원을 지원 중단하고 결국 제거할 것을 제안했습니다.

특히 PEP 527bdist_dumb, bdist_rpm, bdist_dmg, bdist_msi, bdist_wininst 배포 유형과 배포 파일 이름에 사용되는 .tar, .tar.bz2, .tar.xz, .tar.Z, .tgz, .tbz 파일 확장자를 제거할 것을 제안했습니다.

PEP 527은 2020년 4월 13일 병합된 Warehouse 대상 PR #7529를 통해 완전히 시행되었습니다.

bdist_egg 형식

bdist_egg 파일 형식은 egg 형식의 배포판을 식별합니다. egg 형식은 2004년에 setuptools에서 도입되었으며, 2012년에 PEP 427을 통해 처음 도입된 빌드된 배포판을 위한 표준화된 형식wheel 형식과 기능 면에서 대략 동등합니다.

egg 형식은 오랫동안 존재했음에도 PyPI에서 제한적으로 채택되었습니다. 해당 이슈에서 확인된 몇 가지 사항은 다음과 같습니다.

  • 2023년 5월 한 달 동안 bdist_egg 업로드는 PyPI에 대한 전체 배포 업로드의 0.2%를 차지했습니다.
  • pip는 2016년에 --egg 옵션을 지원 중단했습니다.
  • setuptools는 2019년부터 egg 지원을 지원 중단된 것으로 간주해 왔습니다.
  • buildsdistbdist_wheel 파일 형식만 지원합니다.

이상을 고려하여, 이 PEP는 PEP 527에서 제시한 것과 동일한 다음의 근거에 따라 bdist_egg 형식을 제거할 것을 제안합니다.

  • Egg 배포판은 더 넓은 생태계에서 유용성이 제한적이므로 상호성 없는 유지 관리 부담을 나타냅니다.
  • 빌드된 배포 형식이 하나 더 있으면 최종 사용자가 혼란을 겪으며, wheel 형식 대신 이를 잘못 선택할 수 있습니다.

이 PEP는 표준화와 중복에 근거한 제거 논거를 추가로 제시합니다. egg 형식은 어떠한 PEP나 다른 커뮤니티 표준에서도 표준화되지 않았으며, 표준화되고 폭넓게 지원되는 대안인 wheel과 상당 부분 중복됩니다.

.egg 파일 확장자

.egg 파일 확장자는 bdist_egg 형식의 배포판에만 사용됩니다. 따라서 PyPI가 bdist_egg 배포판의 신규 배포 업로드를 비활성화하는 상황에서는 아무런 목적도 없습니다.

제거 절차

이 PEP는 PyPI에서 기존 파일을 NOT 제거할 것을 제안하며, 새 파일의 업로드만 허용하지 않습니다.

PyPI는 한 달의 지원 중단 유예 기간을 제공합니다. 지원 중단 기간이 시작되면, 2023년 1월 1일 이후 하나 이상의 egg 배포판을 업로드한 프로젝트의 유지 관리자는 egg 배포 업로드 지원이 곧 종료된다는 내용의 일회성 이메일을 받게 됩니다.

유예 기간 동안 사용자는 신규 및 기존 프로젝트에 egg 배포판을 계속 업로드할 수 있습니다. 이 기간에 egg 배포판을 업로드하면 위와 유사한 이메일이 프로젝트의 모든 유지 관리자에게도 전송되어, 지원 종료가 임박했음을 알립니다.

유예 기간이 끝나면 PyPI에서 egg 배포판 업로드 지원이 중단됩니다.

선행 사례

위의 제거 절차는 PEP 527의 절차를 기반으로 하며, 다음과 같은 변경 사항이 있습니다.

  • 이전에 egg를 업로드한 프로젝트뿐만 아니라 모든 프로젝트가 유예 기간 동안 egg를 업로드할 수 있습니다.
  • 유예 기간 동안 egg를 업로드하면 시작 시 전송되는 일회성 이메일에 더해 유지 관리자에게 이메일이 추가로 전송됩니다.

하위 호환성

제한적인 영향

근거 섹션에서 언급했듯이, 이 PEP는 대다수의 PyPI 사용자와 프로젝트에 아무런 영향을 미치지 않을 것으로 예상되며, 남아 있는 소수의 사용 사례에 미치는 영향을 최소화하기 위해 지난 1년 반 동안 상당한 커뮤니티 조정이 이루어졌습니다.

호스팅된 파일

이 PEP는 PyPI에 이미 업로드된 egg 배포판을 제거할 것을 제안하지 않습니다. 이전에 업로드된 모든 egg 배포판은 계속 다운로드할 수 있으므로, 기존 사용자도 계속 다운로드할 수 있습니다.

유예 기간

이 PEP는 위에 문서화된 제거 절차를 사용하며, 이 절차는 이전에 PyPI에 egg 배포판을 업로드한 프로젝트에 1개월의 유예 기간을 지정합니다.

유예 기간이 끝나면 PyPI에서 새 egg 배포판 업로드 지원이 중단됩니다.

보안 영향

이 PEP는 egg 배포판의 업로드 지원 제거와 관련된 긍정적 또는 부정적인 보안 영향을 식별하지 않습니다.

이 내용을 가르치는 방법

제거 절차의 일환으로 PyPI는 2023년에 이전에 egg 배포판을 업로드한 프로젝트의 모든 유지 관리자에게 이메일을 보냅니다.

또한 PyPI는 유예 기간의 시작과 종료를 공개적으로 알리는 게시물을 PyPI 블로그에 작성합니다.