How intervals denoted formally:
[a .. b]
closed interval: {x | a ≤ x ≤ b}
(a .. b)
open interval: {x | a < x < b}
[a .. b)
half-open interval: {x | a ≤ x < b}
(a .. b]
half-closed interval: {x | a < x ≤ b}
( Donald E. Knuth - TAOCP, vol.2, 3rd ed. )
Apache Maven versions numbering inherited from mathematical notation:
Range Meaning (,1.0] x <= 1.0 ... [1.0] Exactly 1.0 [1.2,1.3] 1.2 <= x <= 1.3 [1.0,2.0) 1.0 <= x < 2.0 [1.5,) x >= 1.5 (,1.0],[1.2,) x <= 1.0 or x >= 1.2. Multiple sets are separated by a comma. (,1.1),(1.1,) This excludes 1.1 if it is known not to work in combination with the library.
https://docs.oracle.com/middleware/1212/core/MAVEN/maven_version.htm#MAVEN8855
Range Meaning ... (,1.0] x <= 1.0 (,1.0) x < 1.0 [1.0] x == 1.0 [1.0,) x >= 1.0 (1.0,) x > 1.0 (1.0,2.0) 1.0 < x < 2.0 [1.0,2.0] 1.0 <= x <= 2.0 (,1.0],[1.2,) x <= 1.0 or x >= 1.2. Multiple sets are comma-separated (,1.1),(1.1,) x != 1.1
https://maven.apache.org/enforcer/enforcer-rules/versionRanges.html
So, a single number in brackets is that fixed version number: [1.0] is a synonym of [1.0,1.0]
Also, infinite sign is omitted in half-open and half-closed intervals: (,1.0], (,1.0],[1.2,), etc.
