Skip to content

Versioning & compatibility

NSchema ships as several independently versioned NuGet packages rather than one monolith. This page explains what the version numbers mean and how the pieces fit together.

Package Role
NSchema The nschema CLI / .NET global tool.
NSchema.Core The provider-agnostic engine (also the library).
NSchema.Postgres PostgreSQL provider.
NSchema.SqlServer SQL Server provider.
NSchema.Sqlite SQLite provider.
NSchema.Aws S3-backed state backend.

Everything depends on NSchema.Core; the providers and backends plug into it, and the CLI bundles a compatible set together.

NSchema follows Semantic Versioning: given MAJOR.MINOR.PATCH,

  • PATCH releases are backwards-compatible bug fixes.
  • MINOR releases add functionality in a backwards-compatible way.
  • MAJOR releases may contain breaking changes.

Any packages with the same MAJOR version number should be compatible. NSchema.Core follows strict semantic versioning, while all the other packages keep their major version in sync. If you’re using the CLI, you don’t have to worry about this. See Installation. If you’re embedding the engine directly, see embedding.