sqllex icon indicating copy to clipboard operation
sqllex copied to clipboard

Discussion | Sqllex version identifiers

Open v1a0 opened this issue 2 years ago • 0 comments

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.

v1a0 avatar Mar 28 '22 08:03 v1a0