Status & known issues상태와 알려진 문제
What works today. “Implemented” means a test in this repository exercises it.
지금 되는 것. “구현” 은 이 저장소의 테스트가 그것을 실행한다는 뜻입니다.
Feature status기능 상태
| Feature기능 | Status상태 |
|---|---|
| Python install, list, find, uninstall with pinned SHA-256고정 SHA-256 을 쓰는 Python install, list, find, uninstall | implemented구현 |
| Targets: add, remove, family source folders타깃: add, remove, 계열별 소스 폴더 | implemented구현 |
Per-target remove and sync into build/crossenv타깃별 remove 와 build/crossenv 로의 sync | implemented구현 |
Per-target add (markers checked against uv)타깃별 add (uv 로 검증한 마커) | partial부분 |
init, target list, package add/remove, dev-environment add/remove/sync/treeinit, target list, package add/remove, 개발 환경 add/remove/sync/tree | partial부분 |
C/C++ extensions through Meson (ppp build, host only)Meson 을 통한 C/C++ 확장 (ppp build, 호스트만) | partial부분 |
Bundles: resource, single, fat, patch번들: resource, single, fat, patch | implemented구현 |
bytecode levelbytecode 레벨 | partial부분 |
native / mixed levels (semantics decided, compile slot in draft)native / mixed 레벨 (의미 결정, 컴파일 슬롯 초안) | planned계획 |
| Rust, Nuitka, Cython, minificationRust, Nuitka, Cython, 최소화 | planned계획 |
binary bundle, deploy, code pushbinary 번들, deploy, 코드 푸시 | planned계획 |
| GraalVM native binary in CICI 에서의 GraalVM 네이티브 바이너리 | partial부분 |
The item-by-item contract, with the test behind each line, is docs/SPEC.md.
항목별 계약과 각 줄의 근거 테스트는 docs/SPEC.md 에 있습니다.
Known issues알려진 문제
pypackpack --version,-vand a barehelpare not wired; useppp versionand--help.pypackpack --version,-v, 대시 없는help는 연결되지 않았습니다.ppp version과--help를 쓰세요.initcannot take targets; add them afterwards withtarget add.init은 타깃을 받지 못합니다. 나중에target add로 추가하세요.ppp syncignores the venv path, andpython usedoes not clean packagebuild/directories.ppp sync는 venv 경로를 무시하고,python use는 패키지의build/를 정리하지 않습니다.- Several commands find the project through
user.dirrather than an explicit directory.몇몇 명령은 명시적 디렉터리가 아니라user.dir로 프로젝트를 찾습니다. - The downloader holds a whole archive in memory;
.tar.xzand PAX/GNU long names are not read.다운로더가 아카이브 전체를 메모리에 둡니다..tar.xz와 PAX/GNU 긴 이름은 읽지 않습니다.
Scope decisions범위 결정
Recorded 2026-10-04 (#70).
2026-10-04 에 기록했습니다 (#70).
- Python: CPython 3.15 and later, free-threaded only (3.15t; python-multiplatform #158). Extensions will target PEP 803's
abi3t, and a dependency that re-enables the GIL will be reported at build time. Today 3.14.7 and 3.13.0 are still installable.Python: CPython 3.15 이상, free-threaded 전용입니다 (3.15t, python-multiplatform #158). 확장은 PEP 803 의abi3t를 대상으로 하고, GIL 을 다시 켜는 의존성은 빌드할 때 알릴 예정입니다. 지금은 3.14.7 과 3.13.0 을 아직 설치할 수 있습니다. - WASM (
wasm32-pyodide2024) is in the first release's scope. Nothing installs or compiles for it yet.WASM (wasm32-pyodide2024) 은 첫 릴리스 범위에 듭니다. 아직 설치·컴파일 경로는 없습니다. buildbundles: it takes the bundle as an argument, as the maintainer's first spec sheet wrote it. There is nobundlecommand.build가 번들까지 합니다. 메인테이너의 첫 사양서대로 번들을 인자로 받으며,bundle명령은 없습니다.- Deploy destination follows the artefact: libraries go to PyPI, apps to FastTrack.배포 대상은 산출물에 따라 정해집니다. 라이브러리는 PyPI, 앱은 FastTrack 입니다.
- pypackpack itself is distributed on PyPI as native wheels (
uv tool install pypackpack).pypackpack 자체는 PyPI 에 네이티브 휠로 배포합니다 (uv tool install pypackpack).
Contributing기여하기
Changes go intent → spec → test → code: a behaviour change starts in docs/SPEC.md, its test is written and seen failing, then the code makes it pass. implemented always cites a test in this repository.
변경은 의도 → 스펙 → 테스트 → 코드 순서입니다. 동작 변경은 docs/SPEC.md 에서 시작하고, 테스트를 먼저 써서 실패를 본 뒤, 코드로 통과시킵니다. implemented 는 언제나 이 저장소의 테스트를 근거로 듭니다.
./gradlew :packpack:test # the library
./gradlew :packpack:cliTest # the command line
python3 docs/guide/check_guide.py # this site