Add a Phase 4 'm2pack commands' section to docs/cli.md with each subcommand's flags and a pointer at the m2pack-secure repo for installation. Update README.md with a short m2pack paragraph and append the Phase 4 entry to the Unreleased CHANGELOG section.
metin-release-cli
Python CLI that orchestrates Metin2 client releases — builds manifests, signs them, uploads content-addressed blobs, and promotes the new release atomically.
Phase 1 wraps make-manifest.py and sign-manifest.py from the m2dev-client
repo and adds remote diff, upload, promote, and public verification.
Install
pip install -e .[dev]
Usage
metin-release --help
metin-release release inspect --source /path/to/client
metin-release release publish --source ... --version 2026.04.14-1 ...
Add --json to get a machine-parseable envelope on stdout. Exit codes:
| Code | Meaning |
|---|---|
| 0 | success |
| 1 | operator / validation error |
| 2 | remote or network error |
| 3 | signing or integrity error |
| 4 | reserved (ERP sync, Phase 2+) |
See docs/cli.md for the full command reference.
m2pack commands
Phase 4 adds a metin-release m2pack … command group that wraps the
m2pack-secure
binary for building, verifying, diffing, and runtime-key-exporting
signed .m2p archives. The binary is not bundled — build it from the
m2pack-secure repo and either put it on PATH or set M2PACK_BINARY
to an absolute path.
metin-release m2pack build --input ... --output a.m2p --key ck --sign-secret-key sk
metin-release m2pack verify --archive a.m2p --public-key pk
MCP server
The metin-release-mcp console script (Phase 3) exposes each Phase 1
subcommand as an MCP tool over stdio. Install with the mcp extra:
pip install -e .[mcp]
metin-release-mcp --help
See docs/mcp.md for tool list, client wiring, and error handling.