Commits on Source 9

  • Matt Cockayne's avatar
  • Matt Cockayne's avatar
    chore: name a legal person as the copyright holder · e99795f7
    Matt Cockayne authored
    A handle cannot own or enforce copyright, and the estate was
    split between two holder strings. Names both so the notice
    identifies a legal person without orphaning the handle.
    e99795f7
  • Matt Cockayne's avatar
    docs: correct the social links and point at the blog guide · 9f996992
    Matt Cockayne authored
    The Discord invite had expired, GitHub and dev.to were missing, and
    the social block was inconsistent across the docs estate. Also adds
    the phpbotscout callout and a link to the guide covering this module,
    so the docs stop being a dead end.
    9f996992
  • Matt Cockayne's avatar
  • Matt Cockayne's avatar
    10ace376
  • Matt Cockayne's avatar
    062d9187
  • Matt Cockayne's avatar
    docs(specs): add 0008 to the index · 02b9cfa6
    Matt Cockayne authored
    Spec 0008 settles how a forge provider obtains the connection it sits on:
    a comparable Endpoint replaces ReleaseSourceConfig, two transport-injection
    rungs are added alongside the existing credential seam, and reuse moves to
    an opt-in forge/pool. It implements the estate adapter-lifecycle spec.
    02b9cfa6
  • Matt Cockayne's avatar
    feat: address a provider by a comparable Endpoint · dc2b7200
    Matt Cockayne authored
    Replaces ReleaseSourceConfig with Endpoint{Type, Host, Name}, carrying
    connection identity and nothing else. This is a breaking change to the
    ProviderFactory signature and to every adapter's Settings, made
    deliberately and pre-1.0.
    
    Reuse needs a key, and ReleaseSourceConfig could not be one. Params is a
    map, so the struct is not comparable; and no comparable subset of it is
    safe, because four of its six fields are not connection identity at all.
    Owner is read by nothing — it was an unread second copy of a value already
    passed to every operation. Repo was read once, as direct's tool-name
    fallback. Private was read once, by bitbucket. Params was read only by
    direct and bitbucket.
    
    The defect that forced it: direct never reads Host, so every direct source
    shared the address ("direct", ""). A tool with two direct download sources
    — an ordinary configuration — could not tell them apart, and the second
    would silently get the first one's url_template.
    
    Endpoint.Name fixes that and the credential case with it. It selects which
    configured source of a type this is, and scopes the subtree the provider
    reads: bare <type> when empty, <type>.<name> otherwise. So two direct
    sources, or two credentials for one host, are two endpoints reading
    different subtrees rather than one address meaning two things. Section
    walks the Config one level per hop rather than composing a dotted key,
    because whether "a.b" is a path or a literal is the Config
    implementation's business; Validate rejects a dotted Name for the same
    reason.
    
    direct's seven Params keys move into that subtree, joined by tool_name
    which Repo used to supply. There is no compatibility window: the old keys
    are not read. The whole cost of that lands on one diagnostic, so the
    existing "url_template is required" error now names the configuration key
    it expects and says the Params route was removed — a tool that upgrades
    without migrating gets its migration notice there.
    
    Owner and Repo are gone from the address entirely. They are parameters of
    an operation, and stay on the methods that already take them.
    
    Implements forge spec 0008 D1, D2, D3 and D9.
    dc2b7200
  • Matt Cockayne's avatar
    chore(main): release v0.12.0 · 44ab9bac
    Matt Cockayne authored
    44ab9bac
Loading
Loading