Skip to content

[Wheel] Migrate HTTP metadata service to unified package - #3632

Merged
Aionw merged 7 commits into
mainfrom
codex/migrate-http-metadata-service
Sep 24, 2026
Merged

Aionw merged 7 commits into
mainfrom
codex/migrate-http-metadata-service

Conversation

@Aionw

@Aionw Aionw commented Aug 24, 2026 •

Copy link
Copy Markdown
Collaborator

Description

Implements one module-sized Phase 2 migration from #3534 by moving the Python HTTP metadata service into the unified root Python package.

  • move mooncake.http_metadata_server and its directly owned unit test to python/mooncake and python/tests/services as their sole tracked source;
  • preserve the mooncake.http_metadata_server import and mooncake_http_metadata_server console command;
  • update direct CMake installation, temporary legacy-wheel staging, legacy installation checks, Store e2e launch paths, ownership, and labels;
  • add source-tree and isolated installed-wheel checks for the canonical module and CLI;
  • remove the old tracked source and test in the same change.

Overlap review:

Module

  • Transfer Engine (mooncake-transfer-engine)
  • Mooncake Store (mooncake-store)
  • Reshard (mooncake-reshard)
  • Mooncake EP (mooncake-ep)
  • Mooncake PG (mooncake-pg)
  • Integration (mooncake-integration)
  • P2P Store (mooncake-p2p-store)
  • Python Wheel (mooncake-wheel)
  • Common (mooncake-common)
  • Mooncake RL (mooncake-rl)
  • CI/CD
  • Docs
  • Other

Type of Change

  • Bug fix
  • New feature
  • Refactor
  • Breaking change
  • Documentation update
  • Performance improvement
  • Other

How Has This Been Tested?

Test commands:

PYTHONPATH="$PWD/mooncake-wheel:$PWD/python" /tmp/mooncake-http-metadata-tests-2589/bin/python -m pytest -q python/tests/services/test_http_metadata_server.py python/tests/packaging/test_project.py
bash -n scripts/build_wheel.sh scripts/test_installation.sh mooncake-store/tests/e2e/run_nof_heartbeat_tcp_e2e.sh mooncake-store/tests/e2e/run_oplog_batch_cluster.sh
PYTHONPATH="$PWD/mooncake-wheel:$PWD/python" /tmp/mooncake-http-metadata-tests-2589/bin/python -m mooncake.http_metadata_server --help
CMAKE_BUILD_PARALLEL_LEVEL=128 /tmp/mooncake-http-metadata-tests-2589/bin/python -m build --wheel --outdir /tmp/mooncake-http-dist-2589
/tmp/mooncake-http-metadata-tests-2589/bin/python -m twine check /tmp/mooncake-http-dist-2589/mooncake_transfer_engine-0.3.12.post1-cp310-cp310-linux_x86_64.whl
MOONCAKE_TEST_WHEEL=/tmp/mooncake-http-dist-2589/mooncake_transfer_engine-0.3.12.post1-cp310-cp310-linux_x86_64.whl /tmp/mooncake-http-metadata-tests-2589/bin/python -m pytest -q python/tests/packaging/test_installed_wheel.py
pre-commit run --files $(git diff --name-only --diff-filter=ACMR origin/main...HEAD)

Test results:

  • Unit tests pass (10 passed, 3 subtests passed)
  • Integration tests pass (isolated installed-wheel import and mooncake_http_metadata_server --help smoke test: 1 passed)
  • Manual testing done (root PEP 517 wheel built successfully; twine check passed; wheel manifest contains mooncake/http_metadata_server.py; shell syntax and source CLI help passed)

Environment note: the full legacy scripts/build_wheel.sh / scripts/test_installation.sh release path was not executed because it requires a prebuilt native release artifact set, auditwheel, and privileged system-package setup. Its changed shell paths pass bash -n, and the temporary staging contract is covered by python/tests/packaging/test_project.py.

Checklist

  • I have performed a self-review of my own code
  • I have formatted my code using ./scripts/code_format.sh (no C/C++ files changed; the PR-scoped pre-commit C/C++ hook skipped cleanly)
  • I have run pre-commit on the files changed in this PR and all hooks pass
  • I have updated the documentation (narrow Store e2e service-path references)
  • I have added tests to prove my changes are effective
  • For changes >500 LOC: I have filed RFC issue [RFC]: Unify Mooncake's Python package, build, and release architecture #3534

AI Assistance Disclosure

  • No AI tools were used
  • AI tools were used (specified below)

OpenAI Codex performed the scoped module migration, configuration and path updates, test additions, validation, diff review, and PR preparation. The human submitter remains responsible for reviewing and defending every changed line before merge.

Aionw added 3 commits August 28, 2026 16:34
…ttp-metadata-service-to

# Conflicts:
#	.github/CODEOWNERS
#	.github/labeler.yml
#	python/tests/packaging/test_installed_wheel.py
#	python/tests/packaging/test_project.py
#	scripts/build_wheel.sh

@Icedcoco Icedcoco left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM pending ci

…ttp-metadata-service-to

# Conflicts:
#	.github/CODEOWNERS
#	.github/labeler.yml
#	python/tests/packaging/test_project.py
@Aionw
Aionw enabled auto-merge (squash) September 21, 2026 12:25

@zxpdemonio zxpdemonio left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM.

@Aionw
Aionw merged commit 16b7ba3 into main Sep 24, 2026
25 checks passed
Aionw added a commit to Aionw/Mooncake that referenced this pull request Sep 28, 2026
Conflict resolution:
- .github/CODEOWNERS: kept both sides. The /python/mooncake/pg.py and
  /python/tests/pg/ entries stay grouped after /python/tests/ep/ (same
  owners), followed by main's
  /python/tests/services/test_http_metadata_server.py entry from kvcache-ai#3632.

All other files merged cleanly. .github/workflows/ci_rocm.yml now matches
main (including kvcache-ai#4266's setup-python change).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants