I m leaning towards option 3,Because most framework versions have this
semantics, it is better for users.

Huxing Zhang <[email protected]> 于2019年6月18日周二 上午9:44写道:

> Hi All,
>
> I'd like to bring a discussion about the release versioning of Dubbo.
>
> The problem is the that the currently release versioning won't lead to
> a stable state eventually. In each 2.7.x release, a lot of new
> features were added, as well as bugfix, however, newly added features
> will introduce additional bugs, which make 2.7.x not to be in a stable
> state.
>
> The solution will be cut a branch that only contains bugfix, and do
> not adding any new features.
> This will cause us to consider what versioning scheme should be
> considered for Dubbo.
>
> Option 1: use 4 digit versioning.
>
> For example, cut a branch called 2.7.2.x, that only contains bugfix,
> next version should be 2.7.2.1, and 2.7.2.2, and so on.
> New features are added to 2.7.3 or 2.7.4, and so on.
>
> Option 2: follow semantic versioning
>
> For example, 2.7.x only contains bugfix, next bugfix version should be
> 2.7.3, 2.7.4, and so on, on some day the branch should be stable and
> marked production ready.
> New features are added to 2.8.x, to avoid possible conflict with
> dubbox (they made serval releases to these versions), I suggest to
> skip 2.8.x and go to 2.9.x.
>
> Option 3: new features go to 3.x
>
> Same to option 2, 2.7.x only contains bugfix, new features still go to 3.x
>
> I am leaning towards option 2 because it follow the semantic versioning
> most.
> I also did an investigation of other famous project like spring-boot,
> kubernates, and grpc, they all follow semantic versioning.
>
> Regarding version ended with RC or Milestone, based on my
> investigation above, in most cases, they only add RC or Milestone
> suffix when there is at least a minor version upgrade (which means new
> features are added).
>
> For example, in spring-boot, the version is:
>
> - 2.0.8.RELEASE
> - 2.0.9.RELEASE
> - 2.1.0.M1
> - 2.1.0.M2
> - ...
> - 2.1.0.RC1
> - 2.1.0.RELEASE
> - 2.1.1.RELEASE
>
> Normally there won't be a RC or Milestone for a bugfix release.
> Kubernetes has its own release versioning specification as well [2].
>
> So I suggest for newly added feature, if we think it is unstable, we
> should release serveral RC or milestone first. e.g. in the 2.9.x
> branch, do some relasese called 2.9.x-M1  or 2.9.x-RC1.
>
> What do you think?
>
>
> [1] https://semver.org/
> [2]
> https://github.com/kubernetes/community/blob/master/contributors/design-proposals/release/versioning.md#kubernetes-release-versioning
> --
> Best Regards!
> Huxing
>

Reply via email to