Jan Nedbal 5c32224ff0 Merge branch 'claude/phase-4-m2pack'
Add Phase 4 m2pack CLI + MCP wrapping. New top-level 'metin-release
m2pack' command group with build, verify, diff, and export-runtime-key
subcommands that shell out to the real m2pack-secure binary (resolved
via M2PACK_BINARY env or PATH). Each wrapper translates m2pack's own
JSON envelope into the canonical Result shape, keeping the raw m2pack
output under data.m2pack for callers that need the untranslated version.
The MCP server exposes the same four as m2pack_* tools via the existing
ToolSpec catalogue; all 12 tools (8 release_* + 4 m2pack_*) appear in
--list-tools and pass the parametrised schema mirror test.

93 tests green (71 -> 93), no new dependencies.
2026-04-14 22:33:13 +02:00
2026-04-14 22:31:16 +02:00
2026-04-14 22:31:16 +02:00
2026-04-14 18:51:38 +02:00
2026-04-14 22:31:16 +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.

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.

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%