Native sub-issue of #20 in M14: Peer Extensions for v0.5.x.
Goal
Author docs/adr/0008-peer-extensions.md recording the decision that GraphForge extensions
(datasets first; later ontology / algorithm / epistemology / UI) are peer crates over the public
gf-api SDK, and that Core never depends on an extension.
Content
- Context: datasets are greenfield (old registry lived only in the deleted Python shim, CurateLabs/graphforge-legecy#862);
ADR 0006 already forbids lower→higher layer deps. This ADR names the concrete extension point.
- Decision: peer extensions are crates depending on
gf-api, never on gf-core/graph layer;
they ship their own language packages; Core stays extension-agnostic.
- Enforcement: a CI delete/boundary gate (workspace builds with the extension removed; no
graph-layer crate depends on it).
- Consequences (pos/neg) and Alternatives considered (language-packages-only; separate repo).
Match the house style of ADR 0006/0007 (frontmatter: Status / Date / Build target / Related).
Done when
Native sub-issue of #20 in M14: Peer Extensions for v0.5.x.
Goal
Author
docs/adr/0008-peer-extensions.mdrecording the decision that GraphForge extensions(datasets first; later ontology / algorithm / epistemology / UI) are peer crates over the public
gf-apiSDK, and that Core never depends on an extension.Content
ADR 0006 already forbids lower→higher layer deps. This ADR names the concrete extension point.
gf-api, never ongf-core/graph layer;they ship their own language packages; Core stays extension-agnostic.
graph-layer crate depends on it).
Match the house style of ADR 0006/0007 (frontmatter: Status / Date / Build target / Related).
Done when
docs/adr/0008-peer-extensions.mdmerged