Feature: install rule packs (versions, features, tiers) #16

Open
opened 2026-10-13 11:41:23 +02:00 by michael · 0 comments
Owner

Context

Found while adding question catalogs to fragjan (DAW/fragjan#136).
Rule packs are currently not installed but symlinked: both the dev
(<repo>/var/rules) and the installed fragjan (/var/lib/fragjan/rules)
point into the fragjan-templates repo. Dev and production therefore see
the same packs. A pack using a new capability (catalog packs without
includes.rules) makes every older installed fragjan fault on each run.

Goal

Install rule packs like modules: versioned, signed, per installation --
and decide in one place whether an installation can and may use a pack.

Topics to design together

  • Install / update / list / remove for packs (registry like modules,
    .stpkg or own format), target $var/rules
  • Compatibility -- packs declare required capabilities instead of a
    fragjan version (dev builds are not bumped until release):
    requires:
      features: [catalog]
      primitives: []
    
    Host declares its feature list; unknown features -> pack skipped with
    a clear note, not a fault
  • Tiers / paid packs -- tier: free already exists in pack.yaml;
    licensing and unlock belong to the same check
  • Signatures -- reuse daw-keyring.pub as for modules
  • Dev mode -- keep symlinking to fragjan-templates possible for pack
    development, separate from installed packs

Out of scope

  • Content of packs
  • Changes to the fragjan loader beyond reading requires.features
    (separate fragjan issue once the design is settled)

Notes

  • Candidate for the migration to the new common (2.x)
  • Until then: update fragjan before committing packs that need new
    capabilities to fragjan-templates

Refs: DAW/fragjan#136

## Context Found while adding question catalogs to fragjan (DAW/fragjan#136). Rule packs are currently not installed but symlinked: both the dev (`<repo>/var/rules`) and the installed fragjan (`/var/lib/fragjan/rules`) point into the fragjan-templates repo. Dev and production therefore see the same packs. A pack using a new capability (catalog packs without `includes.rules`) makes every older installed fragjan fault on each run. ## Goal Install rule packs like modules: versioned, signed, per installation -- and decide in one place whether an installation can and may use a pack. ## Topics to design together - **Install / update / list / remove** for packs (registry like modules, `.stpkg` or own format), target `$var/rules` - **Compatibility** -- packs declare required capabilities instead of a fragjan version (dev builds are not bumped until release): ```yaml requires: features: [catalog] primitives: [] ``` Host declares its feature list; unknown features -> pack skipped with a clear note, not a fault - **Tiers / paid packs** -- `tier: free` already exists in pack.yaml; licensing and unlock belong to the same check - **Signatures** -- reuse `daw-keyring.pub` as for modules - **Dev mode** -- keep symlinking to fragjan-templates possible for pack development, separate from installed packs ## Out of scope - Content of packs - Changes to the fragjan loader beyond reading `requires.features` (separate fragjan issue once the design is settled) ## Notes - Candidate for the migration to the new common (2.x) - Until then: update fragjan before committing packs that need new capabilities to fragjan-templates Refs: DAW/fragjan#136
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
DAW/daw-module-manager#16
No description provided.