Skip to content

Versioning Schema

Damian edited this page Jul 26, 2024 · 7 revisions

Prism.Avalonia Version Schema

Our package versions are based on the SemVer schema Major.Minor.Build.Revision using a hybrid between the Prism library, Avalonia projects, plus an incremental bump when provisioning.

Major[.Minor[.Build[.Revision]]]

Major.Minor.Build - Prism library
Revision - Avalonia + Prism.Avalonia

Because .NET's .revision segment uses Assembly Version Attribute, it is limited to a ushort value of 65535 (reference). Therefore, we cannot breakup Avalonia v11.2.13 into 110213 + our Rev 99 into 11021399 for our revisions. My goal is to match Prism's schema as much as possible.

Example

As an example, v8.1.97.11074 uses the 8.1.97 from Prism, 1107 for Avalonia v11.0.7, and 4 for our revision in that series.

Versioning Limitations

Trying to be compatible with 4 independent systems does have its limitations, where the 4th is NuGet. NuGet only allows for a maximum number value of USHORT (65K) per segment, versus the usual Assembly versionioning of UINT.

This means we can't use something cleaner such as, 9.0.401.11007xx-pre where xx is reserved for us.

Clone this wiki locally