spl:compare
Compares two products of the workspace by their feature sets, what they share and what is specific to each. The header gives a reuse percentage (shared over union), a quick health signal for a product line. It runs in detached mode (no product selected).
Example
$ splent spl:compare innosoft_app diversolab_app
innosoft_app ↔ diversolab_app
23 feature(s) in innosoft_app · 26 feature(s) in diversolab_app
Reuse: 18/31 shared (58%)
Shared (18)
splent_io/splent_feature_about
splent_io/splent_feature_admin
splent_io/splent_feature_auth
splent_io/splent_feature_cloudflare
splent_io/splent_feature_contact
splent_io/splent_feature_legal
splent_io/splent_feature_mail
splent_io/splent_feature_map
splent_io/splent_feature_media
splent_io/splent_feature_nginx
splent_io/splent_feature_partners
splent_io/splent_feature_post
splent_io/splent_feature_public
splent_io/splent_feature_redis
splent_io/splent_feature_session_redis
splent_io/splent_feature_settings
splent_io/splent_feature_team
splent_io/splent_feature_theme
Only in innosoft_app (5)
splent_io/splent_feature_edition_staff
splent_io/splent_feature_editions
splent_io/splent_feature_events
splent_io/splent_feature_skin_arcade
splent_io/splent_feature_survey
Only in diversolab_app (8)
splent_io/splent_feature_careers
splent_io/splent_feature_comments
splent_io/splent_feature_projects
splent_io/splent_feature_research_projects
splent_io/splent_feature_skin_academic
splent_io/splent_feature_slider
splent_io/splent_feature_tools
splent_io/splent_feature_wordpress_import
What it does
- Reads every feature list in each product’s
pyproject.toml(features,features_devandfeatures_prod), so a feature only one environment uses still counts. - Matches features by organisation and package. The version is ignored, so two products pinned to different versions of a feature still share it.
- Prints the shared features and those only in each product.