check:deps
Verify that every feature’s declared dependencies are satisfied and that signal-based connections between features are intact.
Usage
splent check:deps
What it checks
| Check | Pass | Fail/Warn |
|---|---|---|
| Declared dependencies | All requires entries in feature.toml resolve to an installed feature |
Fail: missing dependency |
| Signal connections | Importing a feature’s signals.py succeeds and all @<signal>.connect handlers register without errors |
Warn: import error or missing signal source |
| Circular dependencies | No circular requires chains detected |
Fail: cycle found |
| Version compatibility | Dependent feature’s version constraint is satisfied by the installed version | Warn: version mismatch |
Signal validation
Since v1.2.7, features use blinker signals for cross-feature business logic. check:deps verifies that:
- The emitting feature (e.g.,
splent_feature_auth) is installed and its signal (e.g.,user_registered) is importable. - Each listening feature’s
signals.pycan import and connect to the signal without errors. - No listener references a signal from a feature that is not declared in
pyproject.toml.
Example output
Dependency check — sample_splent_app
─────────────────────────────────────────────────────────────────────
splent_feature_profile
[✔] requires splent_feature_auth → v1.2.7 installed
[✔] signal user_registered → connected
splent_feature_confirmemail
[✔] requires splent_feature_mail → v1.2.7 installed
[✔] signal user_registered → connected
splent_feature_reset
[✔] requires splent_feature_mail → v1.2.7 installed
─────────────────────────────────────────────────────────────────────
All dependency checks passed.
See also
- Feature lifecycle — Signal-based decoupling — the pattern
check:depsvalidates - check:features — validates cache, symlinks, and install state
- feature:status — lifecycle state (declared to active)
- feature:order — topological install order based on dependencies