Ultimate-NodeJs-Resources icon indicating copy to clipboard operation
Ultimate-NodeJs-Resources copied to clipboard

PEP621 적용

Open phi-friday opened this issue 6 months ago • 7 comments

closes: #225

패키징 및 배포 도구로 선택된 uv 사용 방법

상세한 문서: 공식문서

설치

linux or mac

curl -LsSf https://astral.sh/uv/install.sh | sh

windows

powershell -c "irm https://astral.sh/uv/install.ps1 | iex"

pipx를 사용한 설치

pipx install uv

개발 환경 구축

파이썬 버전 설정

uv python pin <사용하고자 하는 파이썬 버전>

ex: uv python pin 3.12, uv python pin 3.11.5

의존성 동기화

uv sync

동기화된 파이썬 환경 사용
  • 쉘 환경 진입시 source .venv/bin/activate
  • 단일 스크립트 실행시 uv run python <실행하고자 하는 스크립트>

빌드

[!NOTE]
build 명령어를 공식 지원할 예정이나, 당장은 uvx를 사용해야합니다.

wheel, sdist

uvx --from build pyproject-build --installer uv

only wheel

uvx --from build pyproject-build --installer uv --wheel

only sdist

uvx --from build pyproject-build --installer uv --sdist

배포

[!NOTE]
publish 명령어를 공식 지원할 예정이나, 당장은 uvx를 사용해야합니다.

uvx twine upload dist/* -u __token__ -p <pypi 배포시 사용되는 토큰>

TODO:

  • [x] 기존 사용중이던 패키징 관련 파일 준수(setup.py , setup.cfg , MANIFEST.in , requirements.txt 반영 완료)
  • [x] 패키징 및 배포 도구 선정(rye로 결정됨)
  • [ ] 지원 파이썬 버전 구체화

pypiwhl파일을 확인 했을 때 3.5+로 작성되어 있으므로, 우선 3.5+로 작성하였음

추가1. 3.8 이상 지원 고려중이며, 적정 버전에 대한 논의가 진행중이므로, 임시 3.9+로 변경하였음.

  • [x] 의존성 목록 구체화(필수 의존성으로 plotly, beautifulsoup4 추가)

pypiwhl파일을 확인 했을 때, 다음과 같은 의존성을 확인할 수 있었음

Requires-Dist: pandas (>=0.19.2)
Requires-Dist: requests (>=2.3.0)
Requires-Dist: requests-file
Requires-Dist: lxml
Requires-Dist: tqdm

하지만 라이브러리를 실제로 사용할 때, plotlybs4가 필요 한 것으로 보이므로, 관련 내용 수정할 필요가 있음

목표:

  1. PEP621 준수
  2. 기존 패키징 결과물과 동일하거나, 동일하게 사용 가능한 결과물 확인

phi-friday avatar Aug 16 '24 01:08 phi-friday