Skip to main content

Versioning and stability

0.x means the API can change​

While the version starts with 0., a minor release can contain a breaking change. That is not boilerplate here. The NIN format is provisional, and if NCRA confirms something different we would rather correct it quickly than carry a known-wrong format for the sake of a version number.

Pin an exact version if that matters to you:

{ "dependencies": { "@sierrafy/sdk": "0.1.0" } }

Every change is recorded in the changelog.

What counts as stable today​

SurfaceStability
validateNin and its result shapeStable. It mirrors the documented API response, so it will not churn casually.
Error codesStable. New codes may be added; existing ones will not change meaning.
loadNinFormatSchema and the schema shapeStable, though new optional fields may appear.
The default format itselfProvisional. It will change if NCRA confirms otherwise.
The OCR APIExperimental. Expect changes as accuracy work continues.

Treat the default format and the API that applies it as separate questions. The API is settled. The 8-character uppercase alphanumeric rule is a best reading of real cards.

Which packages are published​

Only @sierrafy/sdk. Every other package in the repository is a scaffold and is blocked from publishing at its own manifest. If you find something named sierrafy on PyPI or Packagist today, it is not from this project yet.

Releases​

Releases are cut from main and published from CI with npm provenance, so each tarball can be traced to the commit and workflow that built it. See RELEASING.md.