# Python Runtime and Packaging - Related REQ: N/A ## 목표 Python `3.11+` 및 `pyproject.toml` 중심 패키징 기준을 유지하고, 로컬/CI/운영의 실행 환경 편차를 줄인다. ## Runtime Baseline - 공식 지원 런타임은 Python `3.11` 이상이다. - 로컬 개발은 `venv` 기반 실행을 기본으로 한다. - 개발/테스트 의존성은 editable install(`pip install -e .[dev]`)로 일관화한다. ## Required Files | 파일 | 책임 | 필수 내용 | | --- | --- | --- | | `pyproject.toml` | 프로젝트 메타데이터와 의존성 기준 | `requires-python >=3.11` | | `README.md` | 설치/실행/테스트 진입점 | venv 생성 및 실행 절차 | | `alembic.ini` | DB migration 런타임 설정 | Alembic 동작 기준 | ## Packaging Rules - 패키징 source of truth는 `pyproject.toml`로 유지한다. - CLI 엔트리포인트 `portfoliohub`는 패키지 설치 후 동일하게 동작해야 한다. - 운영 이미지/환경에서도 개발과 동일한 Python major/minor를 사용한다. ## Validation Notes - `pip install -e .[dev]` 후 `uvicorn app.main:app --reload`와 `pytest`가 실행 가능해야 한다. - `portfoliohub --help`가 정상 출력되어야 한다. - Alembic 명령(`upgrade head`)이 현재 마이그레이션 체인에서 실패하지 않아야 한다. ## Open Implementation Points - 락파일 기반 재현성(`uv lock`, `poetry.lock` 등) 도입 여부는 팀 운영 정책에 따라 확정한다. - 배포 환경 컨테이너 표준화 시 base image pinning 정책을 문서화한다.