Skip to content

[Store] Migrate Store REST service to unified Python package - #3631

Open
Aionw wants to merge 6 commits into
mainfrom
codex/migrate-store-rest-service
Open

Aionw wants to merge 6 commits into
mainfrom
codex/migrate-store-rest-service

Conversation

@Aionw

@Aionw Aionw commented Aug 24, 2026 •

Copy link
Copy Markdown
Collaborator

Description

Implements one Phase 2 module migration from RFC #3534:

  • moves the Store REST service implementation to the canonical python/mooncake/mooncake_store_service.py source root;
  • moves its directly owned API tests to python/tests/store and removes both old tracked locations;
  • preserves the public mooncake.mooncake_store_service import and mc_store_rest_server command;
  • updates the transitional setuptools wheel staging script, direct CMake install input, legacy installation smoke checks, ownership/labeling, packaging contracts, and the archived deployment source reference;
  • adds source-tree and isolated installed-wheel coverage for the canonical module and console entry point.

This is part of #3534 and does not perform any Phase 3 native-extension rename or Phase 4/5 release cutover.

Overlap with open work

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:

python -m pytest -q python/tests/store/test_mooncake_store_service_api.py python/tests/packaging/test_project.py
python -m pytest -q python/tests/packaging
CMAKE_BUILD_PARALLEL_LEVEL=128 python -m build --wheel --outdir /tmp/mooncake-store-service-dist
MOONCAKE_TEST_WHEEL=/tmp/mooncake-store-service-dist/mooncake_transfer_engine-0.3.12.post1-cp310-cp310-linux_x86_64.whl python -m pytest -q python/tests/packaging/test_installed_wheel.py
python -m twine check /tmp/mooncake-store-service-dist/mooncake_transfer_engine-0.3.12.post1-cp310-cp310-linux_x86_64.whl
python -m compileall -q python/mooncake/mooncake_store_service.py python/tests/store/test_mooncake_store_service_api.py python/tests/packaging/test_project.py python/tests/packaging/test_installed_wheel.py
bash -n scripts/build_wheel.sh scripts/test_installation.sh
pre-commit run --files $(git diff --name-only --diff-filter=ACMR origin/main...HEAD)

Test results:

  • Unit tests pass (96 focused Store REST service and source-packaging tests)
  • Integration tests pass (1 isolated installed-wheel smoke test; module import and mc_store_rest_server entry-point load succeed outside the repository)
  • Manual testing done (wheel manifest contains mooncake/mooncake_store_service.py, omits legacy/test paths, and twine check passes)

Documentation validation gap: make html could not run because Sphinx is absent. The documented uv executable is blocked by snap confinement in this container, while the pip fallback expands into the multi-gigabyte Torch/CUDA documentation dependency set. The changed Markdown passes git diff --check, trailing-whitespace, EOF, codespell, and the other PR-scoped pre-commit hooks.

Checklist

  • I have performed a self-review of my own code
  • I have formatted my code using ./scripts/code_format.sh (no C/C++ source changes; Python and CMake formatting passed through pre-commit)
  • I have run pre-commit on the files changed in this PR and all hooks pass
  • I have updated the documentation (the only service document naming the old tracked source path)
  • I have added tests to prove my changes are effective
  • For changes >500 LOC: I have filed an 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 assisted with repository analysis, the scoped migration, test maintenance, packaging/build validation, and PR preparation. The human submitter remains responsible for reviewing, understanding, and defending every changed line.

@github-actions github-actions Bot added the Store label Sep 18, 2026

@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

This is a behavior-preserving Phase 2 source migration. The missing PEP 517 CI coverage is planned for the later RFC build/release work, and the isolated-wheel aiohttp check is covered by #3632, which is expected to land around the same time. These are transition gaps rather than blockers for this PR.

Keep both sides where main migrated structured_object_store.py and
_fast_copy.c alongside the Store REST service in CODEOWNERS, labeler.yml,
the build_wheel.sh migrated-module list and test_project.py.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants