mini가 프로젝트에 어떻게 맞추는가
mini는 코드를 읽고, 프로젝트에 맞는 위치에서 버전을 올립니다 — 언어를 넘나들며, 합리적인 대체 수단과 함께.
언어를 인식하는 프로젝트 맵
mini map은 기계가 읽을 수 있는 프로젝트 맵을 단일 "프로젝트 언어"가 아니라 확장자별로 파일 단위로 만듭니다. 프로젝트는 여러 언어를 섞을 수 있으며, 인식된 각 파일이 맵에 들어갑니다. 지원하는 확장자는 다음과 같습니다:
.ts .tsx .php .rs .py .go .java .cs .kt .kts .swift .rb
인식되지 않는 확장자의 파일과, vendor/, target/, var/cache/, node_modules/ 같은 벤더 또는 빌드 디렉터리는 건너뜁니다 — 그래서 맵은 당신 자신의 소스에 집중한 채로 유지됩니다.
버전이 들어가는 곳
--bump(그리고 선택적으로 --push)로 단계를 닫으면, mini는 새 버전을 당신의 프로젝트에 맞는 파일에 씁니다. 아래 소스들을 정해진 순서로 시도하고, 이미 쓸 만한 버전을 담고 있는 첫 번째 것이 채택됩니다 — 그 단일 파일만 변경됩니다.
| 파일 | mini가 여기에 버전을 쓸 때 |
|---|---|
| package.json | JavaScript / TypeScript 프로젝트 — package.json의 "version" 필드. |
| Cargo.toml | Rust 프로젝트 — Cargo.toml의 [package] 섹션 아래 버전. |
| pyproject.toml | Python 프로젝트 — pyproject.toml의 [project] 또는 [tool.poetry] 아래 버전. |
| setup.py | setup.py를 쓰는 Python 프로젝트 — version="…" 인자. |
| composer.json | PHP 프로젝트 — composer.json에 이미 "version" 필드가 있을 때만(mini는 절대 추가하지 않습니다). |
| __version__ | Python 프로젝트 — 흔한 위치의 __version__ = "…" 줄. |
| VERSION | 인식되는 매니페스트가 없는 모든 프로젝트 — x.y.z 한 줄을 담은 단순한 VERSION 파일. 아직 없으면 0.1.0으로 생성됩니다. |
쓰기는 항상 버전 값의 순수한 텍스트 치환이며, JSON이나 TOML을 다시 포매팅하지 않으므로 변경은 한 줄로 남습니다.
예: 이 사이트 자체는 composer.json에 버전 필드가 없는 PHP/Symfony 프로젝트라서, 버전 상승이 VERSION 대체 파일로 떨어집니다.