feat(packaging): V7 distribution split — add quant-platform-* package manifests#32
Merged
Merged
Conversation
There was a problem hiding this comment.
Pull request overview
This PR introduces a Phase 7 “distribution split” for the Quant Platform monorepo by adding separate installable distribution manifests (under packages/) while keeping existing runtime imports (src.*) working via new root-level quant_platform_* facade packages. It also updates docs/changelog and adds tests to validate the packaging layout.
Changes:
- Add six
packages/quant_platform_*/pyproject.tomlmanifests defining layered dependencies and console scripts. - Add root
quant_platform_*facade packages for backwards-compatible imports. - Add documentation + changelog updates and a new packaging-focused test suite.
Reviewed changes
Copilot reviewed 21 out of 21 changed files in this pull request and generated 6 comments.
Show a summary per file
| File | Description |
|---|---|
tests/test_distribution_split.py |
Adds tests validating manifests, dependency layering, facade imports, and docs discoverability. |
README.md |
Updates architecture section to describe runtime vs distribution views and lists split packages. |
quant_platform_web/cli.py |
Adds console entrypoint module for the web distribution. |
quant_platform_web/__init__.py |
Adds web distribution facade constants intended to point to frontend/static asset locations. |
quant_platform_sdk/__init__.py |
Adds SDK facade that re-exports src.sdk surface. |
quant_platform_ml/__init__.py |
Adds ML facade with group constants. |
quant_platform_core/__init__.py |
Adds core facade re-exporting src.core and contract version. |
quant_platform_cli/backtest.py |
Adds quant-backtest console entry point wrapper. |
quant_platform_cli/__init__.py |
Adds CLI facade exposing main. |
quant_platform_adapters_cn/__init__.py |
Adds adapters-cn facade with group constants. |
pyproject.toml |
Expands root setuptools package discovery to include quant_platform_* facades. |
packages/README.md |
Documents the distribution split and provides build examples. |
packages/quant_platform_web/pyproject.toml |
Defines the quant-platform-web distribution manifest and included packages. |
packages/quant_platform_sdk/pyproject.toml |
Defines the quant-platform-sdk distribution manifest. |
packages/quant_platform_ml/pyproject.toml |
Defines the quant-platform-ml distribution manifest and extras. |
packages/quant_platform_core/pyproject.toml |
Defines the quant-platform-core distribution manifest and included modules. |
packages/quant_platform_cli/pyproject.toml |
Defines the quant-platform-cli distribution manifest and scripts. |
packages/quant_platform_adapters_cn/pyproject.toml |
Defines the quant-platform-adapters-cn distribution manifest. |
docs/ROADMAP.md |
Marks Phase 7 distribution split as implemented and clarifies packaging boundary. |
docs/architecture/open-platform.md |
Adds Phase 7 distribution status section and updates phase table. |
CHANGELOG.md |
Adds Phase 7 changelog entries and test notes. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Comment on lines
+5
to
+7
| import tomllib | ||
|
|
||
|
|
Comment on lines
+4
to
+8
| from pathlib import Path | ||
|
|
||
| REPOSITORY_ROOT = Path(__file__).resolve().parent.parent | ||
| FRONTEND_DIR = REPOSITORY_ROOT / "frontend" | ||
| STATIC_WEB_DIR = REPOSITORY_ROOT / "src" / "platform" / "web" |
| import argparse | ||
| import os | ||
|
|
||
| from src.platform.api_server import run_api_server |
| include = [ | ||
| "quant_platform_web*", | ||
| "src.platform*", | ||
| ] |
| qlib = ["qlib>=0.9.2"] | ||
| finrl = ["finrl>=0.3.7", "stable-baselines3>=2.2.0", "gymnasium>=0.29.0"] | ||
| torch = ["torch>=2.1.0"] | ||
| all = ["quant-platform-ml[qlib,finrl,torch]", "lightgbm>=4.0.0"] |
Comment on lines
+39
to
+42
| "src.backtest*", | ||
| "src.data_sources*", | ||
| "src.optimizer*", | ||
| "src.strategies*", |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
V6 Phase 7 — distribution split: introduce independent installable packages for each platform layer.
Changes
packages/quant-platform-core/,quant-platform-sdk/,quant-platform-adapters-cn/,quant-platform-ml/,quant-platform-web/,quant-platform-cli/withpyproject.tomlmanifests and layered dependency declarations.quant_platform_*/import facades at the root so existingimport quant_platform_corepaths continue to work without modification.Conflict Resolution
CHANGELOG.mdconflict between this branch (Phase 7) andorigin/main(Phase 6 Platform/Runtime alignment) — both sets of entries are retained.Test Results
All CI checks pass locally: