version
Show a complete version snapshot of the SPLENT workspace.
Usage
splent version [--json]
Options
| Option | Description |
|---|---|
--json |
Output in JSON format (useful for CI and scripting). |
Description
Displays the full version state of the workspace in a single view:
splent_cliandsplent_frameworkversions, read directly from theirpyproject.tomlfiles in the workspace (always up to date, regardless of when the editable install was last run)- Python version
- Active product and its version
- Every feature declared in
[tool.splent].features, with its pinned version and whether it is present in the local cache - A short fingerprint — an 8-character hash of the entire version state
Two workspaces with the same fingerprint are identical in terms of versions. Use it when reporting bugs or comparing environments.
Example output
SPLENT workspace snapshot
────────────────────────────────────────────────────────
CLI 1.1.1
Framework 1.1.1 ✔ compatible
Python 3.13.2
Product sample_splent_app 0.0.1
Features declared in pyproject:
├── splent_feature_auth @v1.2.7 ✔ in cache
├── splent_feature_redis @v1.2.7 ✔ in cache
├── splent_feature_mail @v1.2.7 ✔ in cache
├── splent_feature_public @v1.2.7 ✔ in cache
├── splent_feature_profile @v1.2.7 ✔ in cache
├── splent_feature_confirmemail @v1.2.7 ✔ in cache
└── splent_feature_reset @v1.2.7 ✖ missing from cache
────────────────────────────────────────────────────────
Fingerprint a3f9c21e
JSON output
splent version --json
{
"cli": "1.1.1",
"framework": "1.1.1",
"python": "3.13.2",
"compatible": true,
"product": {
"name": "sample_splent_app",
"version": "0.0.1"
},
"features": [
{ "name": "splent_feature_auth", "version": "v1.2.7", "in_cache": true },
{ "name": "splent_feature_redis", "version": "v1.2.7", "in_cache": true }
],
"fingerprint": "a3f9c21e"
}
Version source
CLI and Framework versions are read directly from their pyproject.toml files in the workspace, not from installed package metadata. This ensures the version shown is always current, even if the editable install has not been refreshed since the last version bump.
If neither source is available (e.g. installed from PyPI with no local source), importlib.metadata is used as a fallback.