Skip to content

[Store] Migrate async Python client to unified package - #3624

Merged
Aionw merged 3 commits into
kvcache-ai:mainfrom
Aionw:codex/migrate-async-store-client
Sep 20, 2026
Merged

Aionw merged 3 commits into
kvcache-ai:mainfrom
Aionw:codex/migrate-async-store-client

Conversation

@Aionw

@Aionw Aionw commented Aug 24, 2026 •

Copy link
Copy Markdown
Collaborator

Description

Implements the async Store Python client slice of RFC #3534 Phase 2.

  • Moves mooncake-integration/store/async_store.py to the canonical python/mooncake/async_store.py package source and removes the old tracked location.
  • Moves the directly owned live-cluster test to python/tests/store/async_store_integration.py, updates its CI invocation, and adds mocked source-import and behavior tests that need no Store cluster.
  • Updates direct CMake installation, the transitional legacy wheel builder, packaging invariants, installed-wheel smoke coverage, CODEOWNERS, and labeling for the canonical path.
  • Preserves the public mooncake.async_store.MooncakeDistributedStoreAsync import and behavior. This does not rename the native Store extension, create the final Store facade, or migrate structured Store/services/config/buffer-pool code.

Overlap

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:

MOONCAKE_TEST_WHEEL=/absolute/path/to/dist/mooncake_transfer_engine-0.3.12.post1-cp310-cp310-linux_x86_64.whl \
  python -m pytest -q python/tests/store/test_async_store.py python/tests/packaging
python -m compileall -q python/mooncake/async_store.py \
  python/tests/store/async_store_integration.py python/tests/store/test_async_store.py
CMAKE_BUILD_PARALLEL_LEVEL=128 python -m build --wheel
python -m twine check dist/*.whl
git fetch origin main
pre-commit run --files $(git diff --name-only --diff-filter=ACMR origin/main...HEAD)

Test results:

  • Unit tests pass: 9 focused source, behavior, packaging, and isolated installed-wheel tests passed.
  • Integration tests pass (if applicable): the moved live-cluster script was not run locally because this environment has no running Store cluster; the existing CI job now invokes it from its canonical test location.
  • Manual testing done: the root PEP 517 wheel build completed, twine check passed, and the wheel smoke test installed with --no-deps in a clean venv outside the repository.

Checklist

  • I have performed a self-review of my own code
  • I have formatted my code using ./scripts/code_format.sh (not applicable: no C/C++ files changed; all relevant pre-commit format hooks passed)
  • I have run pre-commit on the files changed in this PR and all hooks pass
  • I have updated the documentation (not applicable: imports and behavior are unchanged, and no directly relevant docs reference the old source path)
  • I have added tests to prove my changes are effective
  • For changes >500 LOC: I have filed RFC [RFC]: Unify Mooncake's Python package, build, and release architecture #3534

AI Assistance Disclosure

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

OpenAI Codex performed the scoped migration, updated build/packaging metadata, added tests, and ran the reported validation. The human submitter remains responsible for reviewing and defending every changed line.

@github-actions github-actions Bot added the Tests label Sep 17, 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. The migration preserves the public import path and wrapper behavior, and the build and integration-test paths are updated consistently.

One non-blocking question: would it make sense to wire the new unit and packaging tests into CI here, or would you prefer to handle that as part of the broader packaging migration?

@Aionw

Aionw commented Sep 17, 2026 via email

Copy link
Copy Markdown
Collaborator Author

@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

@github-actions github-actions Bot added the Store label Sep 18, 2026
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.

3 participants