SPLENT Cache

The cache at .splent_cache/features/ holds pinned features as read-only snapshots, one per version. Editable features live at the workspace root instead. The cache makes a pinned feature the same on every machine, and fast to reuse.

splent cache:status

What the cache holds

.splent_cache/features/
└── splent_io/
    ├── splent_feature_notes@v1.0.0/   ← snapshot, read-only
    ├── splent_feature_notes@v1.2.7/   ← snapshot, read-only
    └── splent_feature_cache@v1.2.7/   ← snapshot, read-only

Each entry is a shallow clone of one git tag, with its write bits removed. Never edit files there. To change a pinned feature, unlock it with splent feature:unlock <name>, which copies it to the workspace root. Editable and pinned features covers every command that moves a feature between the two.

Namespaces map to organisations on the forge, with - and . written as _.


Your product holds relative symlinks in <product>/features/<org>/, which product:resolve creates and updates.

# Pinned, into the cache
features/splent_io/splent_feature_notes@v1.2.7 → ../../../.splent_cache/features/splent_io/splent_feature_notes@v1.2.7

# Editable, at the workspace root
features/splent_io/splent_feature_notes → ../../../splent_feature_notes

Several versions of one feature can sit side by side, so two products can pin different ones. A feature can be editable for one product and pinned for another.


Keeping the cache tidy

Command Shows or does
cache:status Every entry, pinned in the cache and editable at the workspace root
cache:size Disk usage per namespace and entry
cache:versions The cached versions of one feature
cache:usage Which products use each feature
cache:orphans Entries no product uses
cache:outdated Products on an older version than one in the cache
cache:prune Deletes orphaned entries and cleans broken symlinks
cache:clear Wipes the cache, whole or by namespace or feature

cache:prune is the safe option, since it removes only what no product uses. See the Cache CLI reference.


Other folders under .splent_cache/

.splent_cache/
├── features/                    ← pinned feature snapshots
├── spls/sample_splent_spl@v4/   ← a model fetched from UVLHub
└── marketplace/index.json       ← written by marketplace:index

spls/ holds the UVL models fetched by DOI, and marketplace/index.json the local marketplace index. Both are rebuilt on demand, and the cache:* commands never touch them.


Table of contents


Back to top

splent. Distributed by an LGPL license v3. Contact us: drorganvidez@us.es