Versioning - jamescourtney/FlatSharp GitHub Wiki

Generally, FlatSharp adheres to Semantic Versioning, with some modifications.

Stable Namespaces

Stable namespaces follow standard semantic versioning. The API will only introduce breaking changes in major versions. Stable namespaces:

  • FlatSharp

Note: These refer to namespaces, not NuGet packages!

Unstable Namespaces

Because FlatSharp is a tool to generate C# that you include in your own assembly, the dependencies of the generated code must be accessible across assemblies. This implies that FlatSharp's "internal" API must be public. For clarity, these are grouped into the FlatSharp.Internal and FlatSharp.CodeGen namespaces.

  • FlatSharp.Internal: Items under this namespace are dependencies of the generated code. Your code is not expected to directly consume these types. These APIs may change at any time without warning, with any release of FlatSharp.
  • FlatSharp.CodeGen: Items under this namespace are used to actually emit the generated C# code from FlatSharp. This items are generally used to extend FlatSharp. Items in this namespace may change as new features are required, though we try to avoid changes to these APIs. These APIs may change in major and minor versions, but not revision versions (major.minor.revision).