He Rene and João,

I have opinions about all your points but will not write a long reply to a
long mail, which would only discourage people reading either. Maybe we
should have a zoom meeting or a dev forum on the next CCC about this?

On Thu, Dec 5, 2024 at 9:28 PM João Jandre <j...@apache.org> wrote:

> Hello, René, All
>
> This discussion has been brought up multiple times this year, and I
> totally agree with you, we are due for a new major release. I would
> invite you to read the recent threads created about it:
> https://lists.apache.org/thread/lh45w55c3jmhm7w2w0xgdvlw78pd4p87,
> https://lists.apache.org/thread/4zs8d15ghvvwwro46ry5zjf8fn8x0t88,
> https://lists.apache.org/thread/o6o9h3qp8gqrpq4v7o81tl6vp51tkjhg,
> https://github.com/apache/cloudstack/discussions/8970 and
> https://lists.apache.org/thread/6v0w49gp0fwtp53so757mx6nf34vpg81.
>
>  From the marketing side, it's clear to me that operators are confused
> by this lack of direction of the project, with no major versions for 10
> years, an outsider may think that the project is dead or extremely
> stable, both of which are false: we introduce plenty of new features and
> there is much work to be done still. Moreover, it hurts the project to
> have minor versions which break compatibility.
>
> Furthermore, we have plenty of technical reasons to do so. I'll repeat
> below my view on this topic, as I posted on the last thread about it:
>
> I think we should really sit down and discuss the direction that we want
> to bring the project. We should build a consensus on a versioning schema
> that will come with the proper mechanisms of deprecating/removing
> features, as well as introducing breaking changes.
>
> Looking at those discussions and Daniel's topics of discussions (see
>
> https://github.com/apache/cloudstack/discussions/8970#discussioncomment-9754199)
>
> here would be my proposal:
>
> 1. **Looking at our history, what would be the ideal cadence of major
> releases for our context and why?** On average, we take 9 months to
> release a new minor version. Considering that our 'minor' versions are
> where our major changes happen, we could take this cadence of minor
> versions and transfer it into major ones. Furthermore, as we will have
> mechanisms to introduce breaking changes (and those tend to take time),
> we should add some padding on those 9 months and make it 1 year. We also
> do not need to decide on a specific month to release the version, we
> could have a quarter (Q1/Q2/Q3/Q4) that is when the version is scheduled
> to release. That way, we will have some predictability on when the
> release is out, but also some flexibility.
> 2. **How and when should we define the RM for each major?** For the
> 'how', I like the current system of someone volunteering and the
> community voting on them; I don't see any reason to change this. As for
> the 'when', the week following a new release, we should already have a
> new RM to guide the next one. This way, we avoid having an aimless
> project for too long.
> 3. **How should we introduce disruptive changes and remove
> compatibility?** For our first major release, I think we should announce
> these changes as soon as the discussions about versioning are over and
> introduce these changes on that release. But for the future, the better
> method would be: on one major release, we announce the disruptive
> changes and deprecate the necessary code; on the next one we introduce
> the changes.
> 4. **What are the community's common goals?** From our discussions, it
> seems like a part of the community wants to keep the project as is and
> not introduce too many breaking changes. However, we also have another
> part of the community that wants to evolve the project and try to make
> it even better. As always with a community we should strive to build a
> consensus on changes, if they should or not happen. We could have an
> annual discussion planned to map what are the next year's goals, as well
> as decide on things that should not change (at least at the time). This
> discussion could be held at the start of a new major release cycle so
> that the RM has a north to follow and steer the community efforts.  I
> think that one common goal that we should try to achieve is the creation
> of an automated release process. We could create a pipeline that does
> most (or all) the release process so that we only have to approve it
> (and tweak it if needed) before releasing.
> 5. **Regarding minor releases, should we flexibilize it more or be more
> rigid?** I think we should concentrate our big and new features on the
> major versions; while tweaks and bug fixes would go on the minor
> releases. This way, we can have more stable minor releases that do not
> introduce too much stuff at a time. Focusing on the major releases for
> new features will allow us to better test them and do better quality
> control.
>
> Best regards,
>
> João Jandre
>
> On 12/5/24 14:20, Rene Moser wrote:
> > Dear CloudStack developers
> >
> > More than 10 years have passed since the release of 4.0.0, and for a
> > long time we kept 4 as the major version. The minor version is now at
> > 20, but the word ‘minor’ is not correct: each new ‘minor’ version has
> > many new features and a lot of work from you has gone into it. That's
> > a nice constant in the ever-changing software world!
> >
> > A few years ago (and I'm not entirely innocent of this) we introduced
> > another digit in the version number. I still think, it was and is a
> > good decision.
> >
> > But I wonder how much longer we want to keep this 4? Wouldn't it be
> > time (as with the Linux kernel, by the way) to think about increasing
> > the major version every few years before we run out of numbers?
> >
> > Even though there may not be a technical reason, it is a ‘sign’ or
> > marketing that the development of CloudStack is progressing.
> >
> > CloudStack 5! What do you think?
> >
> > Regards
> > René
>


-- 
Daan

Reply via email to