The Plugin Registry Serves Each Line

Policy major-lines-run-separately (the design page Major Lines Run Separately, §4b) runs the v3 and v4 platform lines side by side: core and every plugin repository keep main3 for v3 and main for v4. The plugin registry has to follow: an instance whose record says updatePattern: "3.*" must be listed and served each repository at its v3 ref, and an instance on "4.*" at main. A v3 instance must never be offered a v4-only package version or v4 source.

This page records how the ref was chosen before lines existed, and the declaration that now chooses it.

How the ref was chosen before lines

So once MeshWeaver.Plugins main carries v4, every instance — v3 included — would be listed and served v4 source.

The declaration: lineRefs on a registry source

A registry source declares the ref it is served at per line, on the record:

{
  "name": "Plugins",
  "url": "https://github.com/Systemorph/MeshWeaver.Plugins",
  "ref": "main",
  "lineRefs": { "3": "main3" },
  "isRegistrySource": true
}

Who states which line

Landing order

  1. Core: the record field, its rendering and the PlatformLine/ForLine reader. Changes nothing for a record without lineRefs.
  2. MeshWeaver.Plugins: the registry endpoints serve per line. It needs a platform floor at the first sealed core set carrying step 1 (policy request-min-version-wait-until-deployed).
  3. The Memex records declare lineRefs, once the control instance runs a build that reads the field and the registry runs step 2. Only repositories that already have their main3 get an entry.

Until step 3 nothing in the fleet behaves differently.

What this does not cover