provisioning-platform/crates/ontoref-dns/adrs/adr-003-provider-versioning.ncl

28 lines
1.1 KiB
Text
Raw Normal View History

{
id = "adr-003",
title = "ontoref-dns semver tracks trait+types surface, not upstream provider APIs",
status = "accepted",
date = "2026-05-11",
context = "
Cloudflare and CoreDNS release their own API versions independently. Tying
ontoref-dns semver to upstream API versions would create unnecessary churn
for consumers.
",
decision = "
ontoref-dns minor/patch bumps only when the DnsProvider trait or shared types change.
Provider-internal API migrations (e.g. Cloudflare v4 → v5) are patch releases on
ontoref-dns and transparent to consumers.
Config types (CoreDnsConfig, CloudflareConfig) carry #[non_exhaustive] from day one
so that new config fields are additive minor changes.
Providers that cannot satisfy an invariant return DnsError::Unsupported,
never silent behavioural differences.
",
consequences = [
"Consumers depend on ontoref-dns version only for trait changes.",
"Provider API migrations require no consumer changes.",
"Conformance suite enforces Unsupported is used correctly.",
],
}