Skip to content

Bundle the FEP-6757 context in preloaded JSON-LD contexts #1211

Description

@dahlia

FEP-6757 defines its vocabulary through the context https://w3id.org/fep/6757. That URL redirects through w3id.org to Codeberg Pages, which suffers recurring outages. When the context cannot be resolved, JSON-LD expansion fails before application handlers run, so the whole document fails to parse. Fedify already bundles contexts for this reason in packages/vocab-runtime/src/contexts.ts (FEP-ef61, FEP-7aa9, FEP-22cd, and FEP-5711).

Proposal

Add packages/vocab-runtime/src/contexts/fep-6757.json and register https://w3id.org/fep/6757 in packages/vocab-runtime/src/contexts.ts.

Copy the upstream context verbatim. Do not add, remove, or correct terms under the upstream URL: a divergent copy makes Fedify expand and canonicalize differently from other processors and can break Object Integrity Proof verification. The current context defines both terms with "@type": "@id", license as http://purl.org/dc/terms/license (Dublin Core uses http:), and preferredLicense as https://w3id.org/fep/6757#preferredLicense.

This targets the 2.0-maintenance branch for a patch release, ahead of the vocabulary work, per the maintainer's decision. No implementation emits the context yet, but resolution failures are hard failures, and landing the bundle first lets the vocabulary feature rely on it.

Scope

In: the bundled JSON and its registration. Out: the vocabulary properties themselves (separate issue).

Acceptance criteria

  • https://w3id.org/fep/6757 resolves from the bundled copy with the network unavailable.
  • Offline expansion of a document that references the context yields the two IRIs above.
  • Existing contexts and their order are unchanged, and Deno, Node.js, and Bun tests pass.

Notes

Consider a non-blocking CI check that diffs each bundled w3id context against upstream to detect drift.

Activity

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

Metadata

Metadata

Assignees

Labels

component/vocabActivity Vocabulary relatedupstreamIssues caused by upstream dependencies

Type

Fields

Priority

None yet

Effort

None yet

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions