We’re happy to announce the EAP for Kotlin 1.1.50.
What’s new
New versioning scheme: 1.1.5x instead of 1.1.5-x
Improved support for JSR-305 annotations (nullability problems can be reported as warnings, checks work when JSR-305 classes are not on the classpath)
Performance improvements for generated bytecode
Lots of bugs are fixed in the compiler and IDE
New inspections, performance improvements and bugfixes in the IntelliJ plugin
Also in JS backend:
– Improved inliner and primitive arrays to TypedArray translation enabled by default (breaks binary forward compatibility)
– Source maps support in DCE
– Fixes for Unit materialization
You can configure Early Access Preview channel in Tools → Kotlin → Configure Kotlin Plugin Updates. Change the update channel to “Early Access Preview 1.1.x” and press Check for updates now.
As far as I know the versioning change is mainly due to the fact that NPM treats versions with the dash as pre-release. It considers 1.1.5 to be more recent than 1.1.5-3 (which is incorrect for Kotlin). As a result expressing “give be version 1.1.5 or later” becomes quite complicated. Changing the versioning scheme solves this problem.
Hm, short of dropping your “hotfix” suffix and just incrementing the patch version (e.g. turning 1.1.5-1 into 1.1.6), this seems like the next best option. Too bad the Z can’t end in a letter, e.g. 1.1.5, 1.1.5b, 1.1.5c.
We can’t do that, because hotfix releases are often published after the EAP for the next release starts. We can’t publish 1.1.6 EAP and then publish 1.1.6 release which doesn’t contain any of the changes which were included in 1.1.6 EAP.
I still believe it would’ve just been simpler, if the team wants to use SemVer, to actually stick to SemVer. These “patch” releases largely should be minor versions (i.e., 1.x.y instead of 1.1.x-y or 1.1.xy). For features targeted for bigger milestones like 1.1 or 1.2, put them behind feature gates and just enable them when they’re stable.
What you say implies releasing the same version under different version numbers on different platforms, if I understand you correctly. This should really not be done - that will only lead to confusion.
After this we will all get used to the new numbering scheme and there will be no issue.