-
Notifications
You must be signed in to change notification settings - Fork 0
Build: migrate to uv #119
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Build: migrate to uv #119
Conversation
mjy926
commented
Dec 29, 2025
- 패키지 관리를 poetry에서 uv로 변경했습니다.
📝 WalkthroughWalkthrough프로젝트 전체의 의존성 관리 및 빌드 시스템을 Poetry에서 UV(astral-sh/uv) 및 Hatchling으로 마이그레이션합니다. CI 워크플로우, Docker 이미지 빌드 단계, 프로젝트 메타데이터(pyproject.toml), 설치 문서(README.md) 및 관련 설정 파일이 해당 툴체인에 맞게 업데이트됩니다. Changes
Estimated code review effort🎯 4 (Complex) | ⏱️ ~45 minutes Pre-merge checks and finishing touches✅ Passed checks (3 passed)
✨ Finishing touches🧪 Generate unit tests (beta)
📜 Recent review detailsConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro 📒 Files selected for processing (1)
🚧 Files skipped from review as they are similar to previous changes (1)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 2
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
README.md (1)
4-4: Poetry 배지가 더 이상 유효하지 않습니다.프로젝트가 uv로 마이그레이션되었으므로, Poetry 배지를 제거하거나 uv 배지로 교체해야 합니다.
🔎 제안된 수정
-[](https://github.com/python-poetry/poetry/releases/tag/1.5.1) +[](https://github.com/astral-sh/uv)
🧹 Nitpick comments (2)
pyproject.toml (1)
25-26: 테스트 의존성이 메인 dependencies에 포함되어 있습니다.
pytest-mock과moto는 테스트용 패키지입니다. 이들이 메인 dependencies에 있으면 프로덕션 이미지에 불필요하게 포함됩니다. dev 그룹으로 이동하는 것을 권장합니다.🔎 수정 제안
dependencies = [ ... - "pytest-mock==3.8.2", - "moto[all, ec2, s3]==4.2.7", ... ] [dependency-groups] dev = [ "pytest>=7.3.1,<8", + "pytest-mock==3.8.2", + "moto[all, ec2, s3]==4.2.7", "pre-commit>=3.3.1,<4", ... ]Dockerfile (1)
3-3:uv:latest대신 특정 버전 태그 사용을 권장합니다.
:latest태그는 빌드 재현성을 저해할 수 있습니다. 특정 버전을 고정하면 예기치 않은 breaking changes를 방지할 수 있습니다.🔎 수정 제안
-COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /bin/ +COPY --from=ghcr.io/astral-sh/uv:0.9.18 /uv /uvx /bin/
📜 Review details
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
⛔ Files ignored due to path filters (2)
poetry.lockis excluded by!**/*.lockuv.lockis excluded by!**/*.lock
📒 Files selected for processing (5)
.github/workflows/test.yamlDockerfileREADME.mdpoetry.tomlpyproject.toml
💤 Files with no reviewable changes (1)
- poetry.toml
🧰 Additional context used
🪛 actionlint (1.7.9)
.github/workflows/test.yaml
33-33: step must run script with "run" section or run action with "uses" section
(syntax-check)
🔇 Additional comments (6)
README.md (1)
9-21: LGTM!uv 설치 가이드와
uv sync명령어가 올바르게 업데이트되었습니다..github/workflows/test.yaml (1)
42-66: LGTM!
uv run명령어가 pytest, pre-commit, alembic에 올바르게 적용되었습니다. 단, 위에서 언급한--no-dev플래그 문제가 해결되어야 정상 동작합니다.Dockerfile (2)
5-15: LGTM!UV 환경 변수 설정과
uv sync명령어가 프로덕션 Docker 빌드에 적합하게 구성되었습니다.--no-dev와--no-install-project플래그 사용이 올바릅니다.
17-40: LGTM!런타임 스테이지가 잘 구성되었습니다. slim 이미지 사용, 환경 변수 설정, 필요한 파일 복사가 모두 적절합니다.
pyproject.toml (2)
1-7: LGTM!프로젝트 메타데이터가 PEP 621 형식에 맞게 올바르게 정의되었습니다.
43-51: LGTM!Hatch 빌드 타겟 설정과 hatchling 빌드 백엔드 구성이 올바릅니다.