RFC: split LoopX distributions inside the monorepo (loopx-core / loopx-workspace / capability packages) and pin top-level module growth
Maintainer thường phản hồi trong vòng 1 ngày
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 5/5
- Thời gian dự kiến
- Hơn một tuần
- Mức phù hợp với người mới
- 25/100
- Loại issue
- Tái cấu trúc
- Độ rõ ràng
- Khá rõ ràng
- Mức độ hoạt động
- Đình trệ
- Công nghệ
- node.js, python, typescript
- Lĩnh vực
- backend, build-system, devtools
Hướng nghiên cứu
Start by reading pyproject.toml and tests/architecture/test_control_plane_import_boundaries.py to understand the current packaging and architecture checks. The RFC PR is already linked, so check its discussion before taking on work. Done would mean the agreed distribution boundaries, compatibility period, and acceptance checks are implemented and verified.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Problem
The loopx wheel is one distribution that installs the kernel, the CLI, 33 built-in capabilities, the chat/workspace server, and the Python side of the TS effect runtime. On main@3e443ad7c:
loopx/top level: 143 flat*.pyfiles / ~78.8k lines, including 37chat_*.pymodules and 9*_goal_mode/host packages next to the kernel.loopx/control_plane≈131k lines,loopx/capabilities≈115k lines,loopx/extensions≈44k lines in one package.pyproject.tomldeclaresdependencies = []and describes "a lightweight ... control plane", but the effect runtime requires Node.js ≥ 22.22.3 for every install, including CLI-only or kernel-only use.- Coupling is bidirectional: 52 kernel/CLI/top-level modules import
loopx.capabilities; 74 capability modules importloopx.control_plane. packages/already hosts 9 independently packaged extensions (loopx-finance-*,loopx-jev,loopx-obelisk,loopx-repo-health, ...), so the repository has two packaging conventions at once.
Effects: first-use installs pull everything; contributors cannot find module boundaries from the tree; the import-boundary tests protect control_plane inward edges but nothing stops the top level from growing.
Proposal (monorepo stays; distributions split)
Do not split the repository. Keep one repo and one PR/CI flow, especially while the TypeScript control-plane migration is in its transaction-cutover phase. Instead:
- Top-level regrouping first (pure moves + compat re-exports):
loopx/chat_*.py→loopx/chat/;loopx/*_goal_mode/→loopx/hosts/; keep import paths working through re-export shims for at least one minor release. - Architecture test "top-level file count does not grow": alongside
tests/architecture/test_control_plane_import_boundaries.py, pin the current count ofloopx/*.pyand only allow it to decrease. - Distributions:
loopx-core(kernel + CLI + minimal host adapters; Node runtime declared as an optional extra or bundled),loopx-workspace(chat server,apps/presentation, desktop), and per-capability packages migrated intopackages/behind the existingCapabilityRegistryprovider boundary. - Package graduation to separate repos is explicitly out of scope until the kernel migration is complete and a package has its own maintainers.
Acceptance sketch
pip install loopx-coreon a clean machine without Node succeeds andloopx --help/ read-only status work; effect-runtime commands report a typednode_unavailablediagnostic instead of failing at import time.loopx/*.pycount is pinned and decreasing; the architecture test fails on any new top-level module.- Existing
import loopx.chat_serverstyle imports keep working for one minor release with a deprecation note. - Capability packages moved to
packages/install/uninstall independently and off-state preserves core behavior (same rule as existing extensions).
- Ngôn ngữ chính
- Python
- Star
- 6.2k
- Fork
- 596
- Merge trung bình
- 7 giờ 47 phút
- Pull request đã merge (30 ngày)
- 904
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của loopx-project/loopx
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 84/100
loopx-project/loopx#6842 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
loopx-project/loopx#6108 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 65/100
loopx-project/loopx#5688 · 2 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 60/100
loopx-project/loopx#5632 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 65/100
loopx-project/loopx#5443 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của loopx-project/loopx
Issue tương tự
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 74/100
zach-blumenfeld/aip#13 ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 80/100
nathanmarlor/foxess_modbus#1287 ·
Maintainer thường phản hồi trong vòng 4 ngày
-
bug good first issue help wanted
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 84/100
OpenLakeForge/openlakeforge#498 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
good first issue hacktoberfest help wanted python
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 73/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Exact onnxruntime==1.27.0 core pin makes Pipecat-based apps uninstallable from the dashboardĐang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 69/100
pollen-robotics/reachy_mini#1493 ·
Maintainer thường phản hồi trong vòng 1 ngày