Skip to content

feat: expose a machine-readable DSH Compatibility Radar #47

Description

@Altairpaca

Problem

The DSH plugin ecosystem is moving quickly enough that typecheck/unit-test success is not sufficient evidence of compatibility. Real failures can appear at package resolution, Cordis composition, Web client materialization, runtime lifecycle, native install scripts or clean-profile boot.

DSHelm already tracks these boundaries internally through compatibility.json, compatibility-candidates.json, compatibility-evidence.json, #34 and the candidate CI lane. That evidence should become a small public product surface rather than remain maintainer-only CI state.

Community context:

Product contract

Expose compatibility as evidence by layer, not as one broad supports DSH 0.1.x boolean.

At minimum a host/candidate should be representable as:

DSH 0.1.0-rc.7   VERIFIED
DSH 0.1.5-rc.1   CANDIDATE

source/API        PASS
package graph     FAIL|PASS|PENDING
packed install    PASS|PENDING
clean profile     PASS|PENDING
session lifecycle PASS|PENDING
web client        PASS|PENDING
runtime journey   PASS|PENDING

Scope

  • Define a stable JSON projection derived from the existing compatibility candidate/evidence contracts.
  • Preserve evidence layer, status, target version, source/commit where applicable, observed time and blocker detail.
  • Distinguish verified, candidate, blocked, unknown/newer, and mixed-cohort states.
  • Make the projection consumable by dshelm doctor / doctor: diagnose DSH/plugin version skew and current-client compatibility #41 without duplicating compatibility logic.
  • Add a compact human-readable Compatibility Card for README/release notes/control-plane use.
  • Keep source/API PASS distinct from package/runtime/Web verification.
  • Make stale evidence visible instead of silently carrying it forward when the DSH candidate changes.
  • Provide fixture coverage proving a candidate cannot render as verified until the machine promotion contract passes.
  • Document the schema so plugin indexes/marketplaces can consume it later without scraping README text.

Acceptance

Non-goals

  • an autonomous plugin migration bot;
  • claiming compatibility from semver ranges alone;
  • remote telemetry or phoning home from doctor;
  • replacing the broader DSH community upgrade-skill efforts.

This is the public/easily consumable layer above #34 and #41. It should turn DSHelm's compatibility discipline into reusable ecosystem infrastructure rather than another private CI convention.

Related: #32 #34 #41 #45

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions