-
Notifications
You must be signed in to change notification settings - Fork 45
Versioning 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.
Since Avalonia is rapidly updated, we reset our revisions back to 0
and can get by with a max of 9
revisions. :)
As an example, v8.1.97.11074
uses the 8.1.97
from Prism, 1107
for Avalonia v11.0.7, and our revision 4
in the series.
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.