uv를 더 쉽게 사용하기 위한 도구
Project description
uv_easy
uv를 더 쉽게 사용하기 위한 파이썬 패키지입니다. 버전 관리, 빌드, 배포 과정을 자동화하여 개발 워크플로우를 개선합니다.
🚀 주요 기능
- 자동 버전 관리: Git 커밋 분석을 통한 Semantic Versioning 자동 증가
- Git 태그 자동화: 버전 증가 시 자동으로 Git 태그 생성 및 푸시
- Changelog 자동 생성: git-cliff를 통한 자동 changelog 생성
- 빌드 자동화: 빌드 잔여물 정리 및 패키지 빌드
- PyPI/TestPyPI 배포: twine을 통한 안전한 패키지 업로드
- GitHub Actions 통합: 자동 배포를 위한 workflow 생성
- JSON 출력: CI/CD 친화적인 구조화된 출력
📦 설치
# 프로젝트 디렉토리에서
uv sync
🛠️ 사용법
버전 관리
현재 버전 확인
uv_easy version show
수동 버전 증가
# 패치 버전 증가 (0.1.0 → 0.1.1)
uv_easy version up --patch
# 마이너 버전 증가 (0.1.0 → 0.2.0)
uv_easy version up --minor
# 메이저 버전 증가 (0.1.0 → 1.0.0)
uv_easy version up --major
자동 버전 증가 (Semantic Versioning)
# Git 커밋을 분석하여 자동으로 버전 증가
uv_easy version up --auto
# Git 태그를 푸시하지 않음
uv_easy version up --auto --no-push
빌드
기본 빌드 (패치 버전 증가 후 빌드)
uv_easy build
버전 증가 없이 빌드만
uv_easy build --no-version-up
특정 버전 증가 후 빌드
# 마이너 버전 증가 후 빌드
uv_easy build --minor
# 메이저 버전 증가 후 빌드
uv_easy build --major
# 자동 버전 증가 후 빌드
uv_easy build --auto
빌드 후 자동 설치
uv_easy build --install
Changelog 생성
# 현재 버전에 대한 changelog 생성
uv_easy changelog
# 특정 태그에 대한 changelog 생성
uv_easy changelog --tag v0.2.1
# 다른 파일명으로 출력
uv_easy changelog --output HISTORY.md
PyPI/TestPyPI 배포
PyPI 배포 준비 (URLs 설정)
uv_easy ready_pypi
PyPI 업로드
uv_easy publish
TestPyPI 업로드
uv_easy publish --test
JSON 출력 (CI/CD용)
uv_easy publish --json
GitHub Actions 설정
기본 workflow 생성
uv_easy init workflow
TestPyPI용 workflow 생성
uv_easy init workflow --test
GitHub Release 자동화 포함
uv_easy init workflow --release
git-cliff 설정 파일 생성
uv_easy init cliff-config
🔄 전체 워크플로우
개발 중 패치 릴리즈
# 버그 수정 후
uv_easy build --patch --install
새로운 기능 추가
# 기능 추가 후
uv_easy build --minor --install
메이저 업데이트
# 호환성을 깨는 변경 후
uv_easy build --major --install
자동 Semantic Versioning
# 커밋 메시지에 따라 자동 버전 증가
uv_easy build --auto --install
완전 자동화된 릴리즈
# 1. 버전 증가, Git 태그, 빌드, 설치를 한 번에
uv_easy build --auto --install
# 2. Changelog 생성
uv_easy changelog
# 3. PyPI 배포
uv_easy publish
📋 명령어 옵션
uv_easy version up
--major: 메이저 버전을 증가시킵니다--minor: 마이너 버전을 증가시킵니다--patch: 패치 버전을 증가시킵니다--auto: Git 커밋을 분석하여 자동으로 버전을 증가시킵니다--no-push: Git 태그를 푸시하지 않습니다
uv_easy build
--no-version-up: 버전을 증가시키지 않고 빌드만 실행합니다--major: 메이저 버전을 증가시킨 후 빌드합니다--minor: 마이너 버전을 증가시킨 후 빌드합니다--patch: 패치 버전을 증가시킨 후 빌드합니다--auto: Git 커밋을 분석하여 자동으로 버전을 증가시킨 후 빌드합니다--install: 빌드 후 현재 환경에 패키지를 설치합니다--no-push: Git 태그를 푸시하지 않습니다
uv_easy changelog
--tag: 특정 태그에 대한 changelog 생성--output,-o: 출력 파일명 지정 (기본: CHANGELOG.md)
uv_easy publish
--test: TestPyPI에 업로드합니다--json: JSON 형태로 결과를 출력합니다
uv_easy init workflow
--test: TestPyPI용 workflow 생성--release: GitHub Release 자동화 포함
🎯 Semantic Versioning 자동 감지
--auto 옵션을 사용하면 Git 커밋 메시지를 분석하여 자동으로 버전을 증가시킵니다:
feat:→ minor bumpfix:→ patch bumpbreaking change또는!포함 → major bump- 기타 → patch bump
📊 JSON 출력 예시
{
"version": "0.2.1",
"repository": "pypi",
"artifacts": [
"dist/uv_easy-0.2.1.tar.gz",
"dist/uv_easy-0.2.1-py3-none-any.whl"
]
}
🔧 요구사항
- Python 3.9 이상
- uv
- pyproject.toml 파일이 있는 프로젝트
- Git 저장소
📄 라이선스
이 프로젝트는 MIT 라이선스 하에 배포됩니다.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
No source distribution files available for this release.See tutorial on generating distribution archives.
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
uv_easy-0.2.4-py3-none-any.whl
(13.9 kB
view details)
File details
Details for the file uv_easy-0.2.4-py3-none-any.whl.
File metadata
- Download URL: uv_easy-0.2.4-py3-none-any.whl
- Upload date:
- Size: 13.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
29d9211fd2c64b117376c13a2907656a603f2d26eedb53e2865d48c9cd19195b
|
|
| MD5 |
f3ad9bfe5b21c2174bb5846a152fc4cb
|
|
| BLAKE2b-256 |
76ce7dfb8ef136a976ffb2d3248223277e69567831eecfca418397b8dadfb15e
|