Skip to content

FR: dependency override (replace) — redirect a metadata dependency to a local path or fork #301

Description

@dmealing

Gap

No way to redirect a declared metadata dependency to a different location — a local checkout, or a patched fork — without editing the declaration itself.

Every enterprise eventually needs "we are running a patched shared model while the fix lands upstream," and needs it to be a local, uncommitted override rather than a change to the shared declaration.

Prior art (open source)

Go modules — the replace directive redirects a module to a local path or a fork, and is understood to be a local/temporary concern. https://go.dev/ref/mod

Notes

  • Not needed while only path sources exist: a path source is an override, since it names a location directly.
  • Becomes necessary once package sources land (FR-023 — Metadata packages: cross-repo distribution + reuse #9), where the location is resolved by an ecosystem rather than named.
  • Should compose with the set semantics in the source-resolution design: an override replaces a member of the source set, it does not add one.
  • Worth deciding whether overrides live in the committed config or in a local, gitignored sidecar. Go puts them in the committed go.mod, which is arguably the wrong default for this case.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions