Didactopus/docs/dependency-resolution.md

1.1 KiB

Dependency Resolution Plan

Goals

Didactopus should support a pack ecosystem in which contributors can publish reusable foundations and specialized overlays.

Examples:

  • a general statistics foundations pack
  • a Bayesian statistics extension pack
  • an electronics foundations pack
  • a marine bioacoustics specialization pack

Manifest fields

Each pack.yaml should include:

  • name
  • version
  • didactopus_min_version
  • didactopus_max_version
  • dependencies

Dependencies use a compact form:

dependencies:
  - name: statistics-foundations
    min_version: 1.0.0
    max_version: 2.0.0

Validation stages

Stage 1

  • manifest fields exist
  • content files exist
  • required top-level keys exist

Stage 2

  • internal references are valid
  • duplicate IDs are rejected

Stage 3

  • each dependency names an installed pack
  • dependency versions satisfy declared ranges
  • pack compatibility includes current core version

Future work

  • full semantic version parsing
  • cycle detection in dependency graphs
  • topological load ordering
  • trust and signature policies