Since v1.1.0, every added/removed config field broke the public config API (cargo-semver-checks flags struct-literal / field changes), because the config structs are a struct-literal contract. They are loaded from YAML via Deserialize and not meant to be hand-constructed by downstream.
Mark all config structs (and the DescriptorSource enum) #[non_exhaustive] so field add/remove stops being a breaking change. This is itself a breaking change (one-time), so the next release is a major bump (2.0.0); after it, config evolves via minor bumps.
Also center the README donation section.
Estimate: 1h
Since v1.1.0, every added/removed config field broke the public
configAPI (cargo-semver-checks flags struct-literal / field changes), because the config structs are a struct-literal contract. They are loaded from YAML viaDeserializeand not meant to be hand-constructed by downstream.Mark all
configstructs (and the DescriptorSource enum)#[non_exhaustive]so field add/remove stops being a breaking change. This is itself a breaking change (one-time), so the next release is a major bump (2.0.0); after it, config evolves via minor bumps.Also center the README donation section.
Estimate: 1h