Skip to content

Switch to 0.x.y versions instead of 4.0.0-alpha.X #954

@bajtos

Description

@bajtos

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.0 and above, patch updates for versions 0.X >=0.1.0, and no updates for versions 0.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.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions