sqllex
sqllex copied to clipboard
Discussion | Sqllex version identifiers
PEP 440 – Version Identification and Dependency Specification. Public version identifiers
The canonical public version identifiers MUST comply with the following scheme:
[N!]N(.N)*[{a|b|rc}N][.postN][.devN]
Public version identifiers MUST NOT include leading or trailing whitespace. Public version identifiers MUST be unique within a given distribution.
Installation tools SHOULD ignore any public versions which do not comply with this scheme but MUST also include the normalizations specified below. Installation tools MAY warn the user when non-compliant or ambiguous versions are detected.
See also Appendix B : Parsing version strings with regular expressions which provides a regular expression to check strict conformance with the canonical format, as well as a more permissive regular expression accepting inputs that may require subsequent normalization.
Public version identifiers are separated into up to five segments:
Epoch segment: N! Release segment: N(.N)* Pre-release segment: {a|b|rc}N Post-release segment: .postN Development release segment: .devN
Current versioning following scheme like:
major.minor.micro.fix
So I decided to switch sqllex semantic versioning to something like this "major.minor.micro" versioning with alpha, beta and candidate pre-releases. Next versions will following this scheme:
major.minor.micro*[{a|b|rc}N][.postN][.devN]
For example:
0.2.2
0.2.3a1
0.2.3a2
0.2.3b1
0.2.3rc1
0.2.3
0.2.4a1
...
Not sure is it necessary to use .postN
and .devN
but they will be used as needed.
The reason I decided to change semantic versioning is to make easy to understand meaning of program version.
In wiki you can find this kind of explanation
Stage | Semver | Num. Status | Num 90+ |
---|---|---|---|
Alpha | 1.2.0a1 | 1.2.0.1 | 1.1.90 |
Beta | 1.2.0b2 | 1.2.1.2 | 1.1.93 |
Release candidate | 1.2.0rc3 | 1.2.2.3 | 1.1.97 |
Release | 1.2.0 | 1.2.3.0 | 1.2.0 |
Post-release fixes | 1.2.0post1 | 1.2.3.5 | 1.2.5 |
So "Num. Status" seems familiar for current sqllex versioning but it does not the same.
0.2.1.0
0.2.1.1
0.2.1.2
0.2.1.3
0.2.1.4
0.2.2.0
What the hell is this mean? Umm... So, is every new version have new feature (?) or bugfix for main 0.2.1
version (?) or what?
So this scheme more clearly for understand
0.2.0
0.2.1a1
0.2.1a2
0.2.1a3
0.2.1b1
0.2.1
0.2.1.post1
Much better, right? Btw I'm open for discussion, feel free to leave your comment down below.