Jan Nedbal ae0cbb7e9b cli: implement m2pack build and verify wrappers
Shell out to m2pack-secure with --json, parse its envelope, and
translate into the standard metin-release Result envelope under
data.m2pack. Non-zero exit and non-JSON output map to SubprocessError
with m2pack_failed / m2pack_invalid_json / m2pack_empty_output codes.
2026-04-14 22:30:51 +02:00
2026-04-14 19:33:48 +02:00
2026-04-14 19:33:41 +02:00
2026-04-14 19:33:48 +02:00
2026-04-14 18:51:38 +02:00
2026-04-14 19:33:48 +02:00

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.

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.

Description
Python CLI for orchestrating Metin2 client releases (Phase 1 of metin-release-cli-plan)
Readme MIT 116 KiB
2026-04-14 19:21:55 +02:00
Languages
Python 100%