-
Notifications
You must be signed in to change notification settings - Fork 41
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
Prism | v8.1.97 |
8.1.97 |
Avalonia | v11.0.7 |
+ .1107
|
Our Revision | rev 4 |
+ 4
|
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.