uv를 더 쉽게 사용하기 위한 파이썬 패키지입니다. 버전 관리, 빌드, 배포 과정을 자동화하여 개발 워크플로우를 개선합니다.
- 프로젝트 초기화: CLI 프로젝트 구조 자동 생성 (click/argparse 지원)
- 자동 버전 관리: Git 커밋 분석을 통한 Semantic Versioning 자동 증가
- Git 태그 자동화: 버전 증가 시 자동으로 Git 태그 생성 및 푸시
- Changelog 자동 생성: git-cliff를 통한 자동 changelog 생성
- 빌드 자동화: 빌드 잔여물 정리 및 패키지 빌드
- PyPI/TestPyPI 배포: twine을 통한 안전한 패키지 업로드
- GitHub Actions 통합: 자동 배포를 위한 workflow 생성
- JSON 출력: CI/CD 친화적인 구조화된 출력
# 프로젝트 디렉토리에서
uv sync# click 사용 (기본값)
uv_easy startproject my_cli
# argparse 사용
uv_easy startproject my_cli --use argparse이 명령어는 다음을 자동으로 생성합니다:
<패키지명>/__init__.py- 패키지 초기화 파일<패키지명>/__main__.py- 메인 진입점<패키지명>/cli.py- CLI 구현 (click 또는 argparse)pyproject.toml에 스크립트 자동 추가- 기본
version명령어 포함
생성된 프로젝트 사용 예시:
# 의존성 설치
uv sync
# 버전 확인
my_cli version
# uv_easy로 버전 관리
uv_easy version up --patchuv_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# Git 커밋을 분석하여 자동으로 버전 증가
uv_easy version up --auto
# Git 태그를 푸시하지 않음
uv_easy version up --auto --no-pushuv_easy builduv_easy build --no-version-up# 마이너 버전 증가 후 빌드
uv_easy build --minor
# 메이저 버전 증가 후 빌드
uv_easy build --major
# 자동 버전 증가 후 빌드
uv_easy build --autouv_easy build --install# 현재 버전에 대한 changelog 생성
uv_easy changelog
# 특정 태그에 대한 changelog 생성
uv_easy changelog --tag v0.2.1
# 다른 파일명으로 출력
uv_easy changelog --output HISTORY.mduv_easy ready_pypiuv_easy publishuv_easy publish --testuv_easy publish --jsonuv_easy init workflowuv_easy init workflow --testuv_easy init workflow --releaseuv_easy init cliff-config# 버그 수정 후
uv_easy build --patch --install# 기능 추가 후
uv_easy build --minor --install# 호환성을 깨는 변경 후
uv_easy build --major --install# 커밋 메시지에 따라 자동 버전 증가
uv_easy build --auto --install# 1. 버전 증가, Git 태그, 빌드, 설치를 한 번에
uv_easy build --auto --install
# 2. Changelog 생성
uv_easy changelog
# 3. PyPI 배포
uv_easy publish--major: 메이저 버전을 증가시킵니다--minor: 마이너 버전을 증가시킵니다--patch: 패치 버전을 증가시킵니다--auto: Git 커밋을 분석하여 자동으로 버전을 증가시킵니다--no-push: Git 태그를 푸시하지 않습니다
--no-version-up: 버전을 증가시키지 않고 빌드만 실행합니다--major: 메이저 버전을 증가시킨 후 빌드합니다--minor: 마이너 버전을 증가시킨 후 빌드합니다--patch: 패치 버전을 증가시킨 후 빌드합니다--auto: Git 커밋을 분석하여 자동으로 버전을 증가시킨 후 빌드합니다--install: 빌드 후 현재 환경에 패키지를 설치합니다--no-push: Git 태그를 푸시하지 않습니다
--tag: 특정 태그에 대한 changelog 생성--output,-o: 출력 파일명 지정 (기본: CHANGELOG.md)
--test: TestPyPI에 업로드합니다--json: JSON 형태로 결과를 출력합니다
<package_name>: 생성할 패키지 이름 (필수)--use: 사용할 CLI 라이브러리 (click또는argparse, 기본값:click)
--test: TestPyPI용 workflow 생성--release: GitHub Release 자동화 포함
--auto 옵션을 사용하면 Git 커밋 메시지를 분석하여 자동으로 버전을 증가시킵니다:
feat:→ minor bumpfix:→ patch bumpbreaking change또는!포함 → major bump- 기타 → patch bump
{
"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 라이선스 하에 배포됩니다.