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 the following.
- 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