Skip to content

refactor(umbrella): thin to coordinator+namespace — media/cloud/module/project→owners, drop utils + umbrella linter (Phase B)#308

Merged
ywatanabe1989 merged 2 commits into
developfrom
chore/umbrella-thinning-phase-b
May 31, 2026
Merged

refactor(umbrella): thin to coordinator+namespace — media/cloud/module/project→owners, drop utils + umbrella linter (Phase B)#308
ywatanabe1989 merged 2 commits into
developfrom
chore/umbrella-thinning-phase-b

Conversation

@ywatanabe1989
Copy link
Copy Markdown
Owner

Phase B — umbrella thinning

Reduce the umbrella to coordinate + namespace only by deleting in-tree logic dirs and aliasing to their released owners.

Changes

Module Action Alias mechanism
media delete src/scitex/media/ hard-dep EXTERNAL_REEXPORTS["media"]="scitex_etc.media" + _LazyModule(external=...); scitex-etc>=0.2.0
linter delete _linter_plugin.py + linter.py, drop lazy module + 2 entry-points channel is now scitex.dev.linter (→ scitex_dev.linter); STX-I/STX-S ship in scitex-dev>=0.16.0
utils delete src/scitex/utils/ none — no real importers; helpers already live in scitex-io/etc/notification
cloud delete src/scitex/cloud/ OPTIONAL peer → scitex_hub via _DEFAULT_BRANDED + _LazyModule(external="scitex_hub")
module delete src/scitex/module/ OPTIONAL peer → scitex_hub.module; _CallableModuleWrapper gained external= so scitex.module(...) callability is preserved
project delete src/scitex/project/ OPTIONAL peer → scitex_hub.project

Optional-peer degradation (scitex-hub absent)

import scitex stays clean; scitex.cloud/.project raise the friendly _make_missing_peer_stub install hint on attribute access; scitex.module(...) raises an ImportError with the same install hint. scitex-hub is kept out of [all] so CI's matrix skips cloud/module/project.

Pins bumped

  • scitex-dev>=0.16.0 (core dep, dev extra, linter extra)
  • scitex-etc>=0.2.0 (core dep, etc extra, dev extra)
  • new [cloud]/[hub]/[module]/[project] extras pin scitex-hub>=0.19.0
  • dev extra: scitex-cloudscitex-hub>=0.19.0

Verification

  • python -c "import scitex" clean.
  • scitex.mediascitex_etc.media; scitex.dev.linter resolves; scitex.cloud/.module/.project resolve to scitex_hub when present, give install hint when absent.
  • tests/integration/test_cross_package_imports.py: 165 passed / 31 skipped.
  • tests/test_integration.py + tests/test_skills_quality.py: 41 passed / 1 xfailed.
  • Net +92 / -3871 LoC.

DO NOT MERGE — open for review.

…e/project→owners, drop utils + umbrella linter (Phase B)

Reduce the umbrella to coordinate + namespace only by deleting in-tree
logic dirs and aliasing to their released owners.

- media: delete src/scitex/media/; alias to scitex_etc.media (hard dep,
  EXTERNAL_REEXPORTS); bump scitex-etc>=0.2.0 at all sites.
- linter: delete _linter_plugin.py + linter.py; remove the linter lazy
  module + scitex_dev.linter.plugins / scitex_linter.plugins entry
  points. STX-I/STX-S rules now ship in scitex-dev>=0.16.0; the channel
  is scitex.dev.linter. Bump scitex-dev>=0.16.0 at all sites.
- utils: delete src/scitex/utils/ (no real importers; was already a thin
  re-export aggregator over scitex-io/etc/notification). Drop the utils
  extra and its [all] self-ref.
- cloud/module/project: delete in-tree dirs; register as OPTIONAL peers
  aliasing scitex_hub (+ .module / .project). scitex-hub stays out of
  [all] so CI's matrix skips them. _CallableModuleWrapper gains
  `external=` so scitex.module(...) callability is preserved while
  proxying scitex_hub.module; a missing scitex-hub raises a friendly
  install hint instead of crashing import. Add [cloud]/[hub]/[module]/
  [project] extras pinning scitex-hub>=0.19.0.
- skills: orphaned _skills/ under the deleted dirs go with them.
- tests: delete tests/media/ (owned by scitex-etc); prune now-dead
  in-tree-only / scitex_cloud / scitex_linter entries from the
  cross-package import gate.

Net: 52 files, +92 / -3871.
scitex-hub (>=0.19.0) is an unreleased optional peer (powers cloud/
module/project). Listing it in the [dev] bundle broke CI's
`uv pip install -e .[all,dev]` resolve (no PyPI candidate), which
silently fell through to plain `-e .` — leaving pytest uninstalled
("pytest: command not found"). Keep scitex-hub only in the opt-in
[cloud]/[hub]/[module]/[project] extras, never in [all] or [dev].
@ywatanabe1989 ywatanabe1989 merged commit b6dec5d into develop May 31, 2026
7 checks passed
@ywatanabe1989 ywatanabe1989 deleted the chore/umbrella-thinning-phase-b branch May 31, 2026 00:28
@github-actions github-actions Bot locked and limited conversation to collaborators May 31, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant