-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Description
Our current versioning scheme based on pre-release 4.0.0-alpha.X version numbers (where X is an increasing integer) has several shortcomings. Most importantly, there is no way how to signal consumers of our modules which releases are backwards-compatible and which contain breaking changes.
Originally, when we (foolishly?) believed LoopBack4 will be released in 6 months, it probably made sense to use pre-release versions. However, now that we are looking for another ~12 months until stable Beta/GA releases, I think we should revisit this decision.
I am opening this issue as a follow-up for our discussion with @raymondfeng in #913 (comment), where we did not want to remove no-longer-used-script to preserve backwards compatibility with external projects depending on our build system:
If we were versioning non-core modules as 0.x.y, then we could treat semver-patch release as backwards compatible and semver-minor releases as breaking. This works great with the carrot operator as implemented by npm's semver (https://www.npmjs.com/package/semver#caret-ranges-123-025-004):
this allows patch and minor updates for versions
1.0.0and above, patch updates for versions0.X >=0.1.0, and no updates for versions0.0.X.
Let's see if there are any downsides of moving from 4.0.0-alpha.X down to 0.x.y and how much effort such change would require.