Hi all,
I'd like to bring up, what I believe, to be a fairly significant issue with the version numbering of vibe. This is an issue that seems to have hit the open source community en masse. Semantic versioning is usually along the lines of:
MAJOR version when you make incompatible API changes,
MINOR version when you add functionality in a backwards-compatible manner, and
PATCH version when you make backwards-compatible bug fixes.
But in the effort to avoid a 1.0 (just look at the number of dub packages that sit below 1) people start using the minor for major and the patch for minor.
So what? Well I'll give you an example of where this would have been handy. Vibe.d 0.7.26 introduced a bug where we could not make any https connections via httpRequest due to a certificate error. At the same time it fixed other issues that we had been waiting on. So, as has been practice for us for 15 months and counting, we need to have a submoduled version of vibe.d, with cherry picked changes made. The case I put forward is:
The version of vibe.d should have been 0.8.0
The fix for this error should have been cherry picked to the 0.8.0 branch and tagged 0.8.1 therefore allowing people using vibe.d to select the fixed version and move on. This would then vindicate the use of ~>0.8.0 in our dub.son(sdl)
I'm sorry if this comes across as ranty, but we've had a few major issues with the packaging system of late which has cost far more time than I would like. Having to maintain submodules just to keep a stable version of vibe running with the latest bug fixes is getting very difficult.
TLDR
Can we put bug fixes into the patch version of vibe.d with the view to release as the urgency of the bug dictates and move refactors and features into the minor versions. Then all look forward to 1.0.
Cheers,
David.