I am leaning towards option 2. I think it is inevitable to add new features to 
the 2.x version before the 3.x release.  Use option 3 after the 3.x version is 
released.

Best Regards!
On Jun 18, 2019, 11:55 AM +0800, Jason Joo <[email protected]>, wrote:
> +1
>
> It seems like the beginning which is Jun's opinion, and for addition 
> optimizing the version naming strategy.
>
> Users won't care about whether we go with 2.7.1, 2.7.2 or 2.7.x, 2.8.x, 
> 2.9.x, 2.10.x so i think both of them are fine for me. Just pick one and go 
> on.
>
> best regards,
>
> Jason
>
> > On Jun 18, 2019, at 11:45, Shunyu Lei <[email protected]> wrote:
> >
> > 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