You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* Update docs for Build Infra.
* Removed extraneous entry in RESX
* Updated to remove CVE vulnerability in dependent packages
* Updated projects to use .NET 8.0 (LTSC) as the target version
Implements feature #24

17
17

18
18
19
+
## Supported Runtimes
20
+
This library supports the following .NET runtime versions.
21
+
* .NET 8.0 (LTSC) and later
22
+
23
+
.NET standard 2.0 does not support the many uses of `static abstract` that are utilized
24
+
in this library. Therefore, supporting that runtime is not possible with simple PolyFill's.
25
+
It requires fairly significant preprocessor conditional coding AND major changes to the
26
+
tests to validate BOTH variants. Thus, unless there is a strong compelling case that's not
27
+
something this library will support.
28
+
19
29
## Overview
20
30
Officially, NuGet Packages use a SemVer 2.0 (see http://semver.org).
21
31
However, SemVer 2.0 doesn't consider or account for publicly available CI builds.
@@ -26,41 +36,46 @@ allowing for automated CI builds. These new versions are called a [Constrained S
26
36
Version](http://csemver.org) (CSemVer).
27
37
28
38
## Constrained use of Constrained Semantic Versions
29
-
A CSemVer is unique for each CI build and always increments while supporting official releases.
30
-
In the real world there are often cases where there are additional builds that are distinct
31
-
from official releases and CI builds. Including Local developer builds, builds generated from a
32
-
Pull Request (a.k.a Automated buddy build). CSemVer doesn't explicitly define any format for
33
-
these cases. So this library defines a pattern of versioning that is fully compatible with
34
-
CSemVer and allows for the additional build types in a way that retains precedence having the
35
-
least surprising consequences. In particular, local build packages have a higher precedence
36
-
than automated builds (CI or release) versions if all other components of the version match.
37
-
This ensures that what you are building includes the dependent packages you just built instead
38
-
of the last one released publicly.
39
+
A CSemVer is unique for each CI build and always increments while supporting official
40
+
releases. In the real world there are often cases where there are additional builds that
41
+
are distinct from official releases and CI builds. Including Local developer builds,
42
+
builds generated from a Pull Request (a.k.a Automated buddy build). CSemVer doesn't
43
+
explicitly define any format for these cases. So this library defines a pattern of
44
+
versioning that is fully compatible with CSemVer and allows for the additional build types
45
+
in a way that retains precedence having the least surprising consequences. In particular,
46
+
local build packages have a higher precedence than automated builds (CI or release)
47
+
versions if all other components of the version match. This ensures that what you are
48
+
building includes the dependent packages you just built instead of the last one released
49
+
publicly.
39
50
40
51
>[!WARNING]
41
-
> The formal 'spec' for [CSemVer](https://csemver.org) remains silent on the point of the short
42
-
> format.<sup>[1](#footnote_1)</sup> Instead it relies on only examples. However, the examples are inconsistent on the
43
-
> requirement of a delimiter between the short name and number components of a version. It
44
-
> shows two examples '1.0.0-b03-01' ***AND*** '5.0.0-r-04-13'. So, which is it? Is the
45
-
> delimiter required or not?
52
+
> The formal 'spec' for [CSemVer](https://csemver.org) remains silent on the point of the
53
+
> short format.<sup>[1](#footnote_1)</sup> Instead it relies on only examples. However,
54
+
> the examples are inconsistent on the requirement of a delimiter between the short name
55
+
> and number components of a version. It shows two examples '1.0.0-b03-01' ***AND***
56
+
> '5.0.0-r-04-13'. So, which is it? Is the delimiter required or not?
46
57
>
47
58
> This may seem like an entirely academic issue, but when parsing an input it impacts the
48
-
> validity of inputs. Also, when the dealing with ordering and the length of otherwise equal
49
-
> components comes into play it can impact the behavior as well. How are `1.0.0-b03-01` and
50
-
> `1.0.0-b-03-01` ordered in relation to each other? Is the former even a valid CSemVer?
59
+
> validity of inputs. Also, when the dealing with ordering and the length of otherwise
60
+
> equal components comes into play it can impact the behavior as well. How are
61
+
> `1.0.0-b03-01` and `1.0.0-b-03-01` ordered in relation to each other? Is the former
62
+
> even a valid CSemVer?
51
63
>
52
-
> ***This implementation is making no assumptions and simply does NOT support the short form.***
53
-
> That may seem like a hard stance but given the ambiguities of the spec, documenting the behavior
54
-
> is difficult. Additionally, handling all the potential variations makes for extremely complex
55
-
> implementation code. All of that for a feature in support of a NuGet client that is now obsolete.
56
-
> (NuGet v3 can handle the full name just fine!). Thus, the lack of support in this library.
64
+
> ***This implementation is making no assumptions and simply does NOT support the short
65
+
> form.*** That may seem like a hard stance but given the ambiguities of the spec,
66
+
> documenting the behavior is difficult. Additionally, handling all the potential
67
+
> variations makes for extremely complex implementation code. All of that for a feature
68
+
> in support of a NuGet client that is now obsolete. (NuGet v3 can handle the full name
69
+
> just fine!). Thus, the lack of support in this library.
57
70
58
71
## End User Documentation
59
-
Full documentation on the tasks is available in the project's [docs site](https://ubiquitydotnet.github.io/Ubiquity.NET.Versioning/)
72
+
Full documentation on the tasks is available in the project's
Documentation on building and general maintenance of this repo are provided in the [Wiki](https://github.com/UbiquityDotNET/Ubiquity.NET.Versioning/wiki).
76
+
Documentation on building and general maintenance of this repo are provided in the
0 commit comments