Loading
Commits on Source 9
-
Matt Cockayne authored
-
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.
-
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.
-
Matt Cockayne authored
-
Matt Cockayne authored
-
Matt Cockayne authored
-
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.
-
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. -
Matt Cockayne authored