chore(deps): strip leaf packages from dependencies, restore extras-only model (closes #326)#327
Draft
ywatanabe1989 wants to merge 1 commit into
Draft
chore(deps): strip leaf packages from dependencies, restore extras-only model (closes #326)#327ywatanabe1989 wants to merge 1 commit into
ywatanabe1989 wants to merge 1 commit into
Conversation
…only model (#326) Per issue #326 (proj-paper-scitex-clew → operator → me, 2026-06-09): > "bare `pip install scitex` で 30+ sub-package が direct dep として > 入ります (app/audio/browser/cv/msword/genai/scholar/ui 等)" > "文書化された extras model と齟齬しています" The umbrella's `[project].dependencies` list silently grew to 38 entries — every scitex-* leaf package was duplicated there alongside its own `[project.optional-dependencies].<name>` extras entry. Result: every `pip install scitex` pulled the entire ecosystem as REQUIRED deps, ignoring the documented `scitex[stats,io]` / `scitex[all]` opt-in model. Network cost, install time, and ABI-tagged C-extension wheel churn for users who only need one module. Operator's bucket call (2026-06-09 Telegram msg 664, 661): - keep `scitex-dev` in core ("コアに scitex-dev は必要") - drop `beautifulsoup4` from core ("コア不要、optional 扱い") - `crawl4ai` not used at runtime, optional-only **Core (`[project].dependencies`) — 8 entries:** - numpy / pandas / PyYAML / tqdm / packaging / natsort - scitex-config (env / config loader; foundational) - scitex-dev>=0.17.8 (audit + skill discovery; operator-confirmed core) **Moved to `[project.optional-dependencies]`:** - All scitex-* leaves (~30): each already had a `<name>` extra entry; 7 of them (`benchmark` / `context` / `cv` / `introspect` / `msword` / `os` / `tex`) were inconsistently missing their own wheel — added. - bs4 / beautifulsoup4 — only used by `helpers/_optional_deps.py` check_optional_deps wrapper for the scholar stack (already declared in `[scholar]` / `[io]` where actually needed). - figrecipe / scitex-ui — already in `[plt]` / `[ui]` extras. `[all]` extra is unchanged (already aggregates via `scitex[<name>]` self-references) so `pip install scitex[all]` still gives the bare- equivalent of the pre-refactor install. Coordinated with companion PR #323 (scitex-dev pin bump to >=0.17.8) and the consumer-fleet quality-audit template rollout that just landed. operator-SSoT repo — opening as DRAFT, NOT merging. Operator reviews the bucket assignments + merges when ready.
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
Closes #326. Strips the 30+ scitex-* leaf packages from
[project].dependenciessopip install scitexbecomes core-minimal (8 entries) and the documentedscitex[<module>]/scitex[all]opt-in model actually works.Root cause
[project].dependenciessilently grew to 38 entries — every scitex-* leaf was duplicated there alongside its own[project.optional-dependencies].<name>extras entry. Result: everypip install scitexpulled the entire ecosystem as REQUIRED deps, ignoring the documented opt-in model. Network cost, install time, and ABI-tagged C-extension wheel churn for users who only need one module.Bucket assignments
Operator decisions (Telegram msg 664, 661, 660, 2026-06-09):
Core (
[project].dependencies) — 8 entries:numpy/pandas/PyYAML/tqdm/packaging/natsort— every scitex helper touches at least one; near-universal in the Python scientific stack.scitex-config==0.3.6— env / config loader (scitex.helpers.load_scitex_envdelegates here; required even before any module is imported).scitex-dev>=0.17.8— operator-confirmed core: "コアに scitex-dev は必要だと思います、サイテクスコンフィグあればどうせ入りますが" (Telegram msg 664). Pulls in the audit / skill discovery machinery + the project's quality-rule corpus.Moved to
[project.optional-dependencies]:<name>extra entry. 7 of them (benchmark,context,cv,introspect,msword,os,tex) were inconsistently missing their own wheel pin — added here sopip install scitex[benchmark]actually installsscitex-benchmark.bs4/beautifulsoup4— only used byhelpers/_optional_deps.pycheck_optional_depswrapper for the scholar stack; already declared in[scholar]/[io]where it's actually needed (operator confirmed: "コア不要、optional 扱い").figrecipe/scitex-ui— already in[plt]/[ui]extras.[all]extra unchanged — already aggregates viascitex[<name>]self-references, sopip install scitex[all]still produces the bare-equivalent of the pre-refactor install for users who want everything.Test plan
pip install -e ".[all,dev]"(already the existing fallback chain); should still resolve the same wheel set.pip install scitexon a fresh venv resolves only the 8 core entries (verify the size shrink).pip install scitex[stats,io]resolves the documented per-module extras.scitex.helpers.load_scitex_env()still works (scitex-config in core).scitex-devCLI still discoverable post-install (scitex-dev in core).scitex.audio,scitex.cv, etc. raise a friendly ImportError pointing atpip install scitex[<name>]when the corresponding extra is not installed (verified via_AVAILABLEflags + existing_install_guide.py).Notes