Versioning

The service follows semantic versioning from 1.0.0. What it versions is the contract these pages describe: the routes under /v1/, the shape of every response, the values a form submits, and the keys of /v1/locales/:lang.

ChangeDescription
MajorA route, field or locale key removed or renamed; a submitted value changed
MinorA country curated, a language added, a route or key added
PatchWording, and a country's rules corrected

Submitted values

A submitted value is what an order stores: the field names, and the code of a state option. A subdivision renamed upstream changes a stored state value, so it ships as a major version with a migration, never inside a data refresh.

Corrections

A patch can change the values a response carries while its shape stays the same: a postcode pattern that refused real postcodes, a state's postcode prefix refreshed from libaddressinput, or a field that should not have been required. A client reads pattern, required and every text from the response each time, never from a copy of its own, so these corrections reach it without a release of its own. A client that stores a country's rules keys them on their version, which changes with any of them.

The release history is in CHANGELOG.md.