Hi Joao,

Thanks for bringing this back to discussion.

I largely agree with the proposed ideas and I think waiting for the
release after 4.21 should give us enough time to communicate this
properly. I agree with Daan's view about the transition not being that
big if we omit the 4. from the release versions, but it looks like a
good chance to formalize the versioning specially if this brings more
clarity to the users.

Regards,
Nicolas Vazquez

El mié, 30 abr 2025 a las 16:06, João Jandre (<j...@apache.org>) escribió:
>
> Hi everyone,
>
> I would like to revisit the topic of versioning, particularly in light
> of our last discussion (see
> https://lists.apache.org/thread/hnzp6hnsjyj8593cf6tbgryt1s8z5glq). It
> seems that most people here agree with the idea of transitioning to a
> new major version (e.g., from 4.x to 5.0), or at the very least, are not
> opposed to it.
>
> However, I believe there are still some misunderstandings about the
> reasoning behind major version changes. The number itself is not that
> important; the key point is to establish a clear system for introducing
> changes that break backwards compatibility. As René pointed out, we
> currently do not have a formal mechanism for handling such changes. As a
> result, we frequently introduce breaking changes in minor releases,
> which means operators need to be aware that upgrading to a new minor
> version could potentially disrupt compatibility and make their lives
> more difficult when they need to roll back to a previous release after
> an upgrade (e.g. if a rollback is needed after a few days of an upgrade).
>
> A formal versioning strategy (defining what constitutes a major, minor,
> patch, and security release) would help improve the project’s stability.
> It would also allow us to plan major changes more effectively and
> communicate them clearly to the community.
> I am aware that there has been some hesitation about establishing a
> release schedule. To avoid further complications, I won’t suggest one
> here, at least not until we have automated the release process.
>
> With that in mind, I propose that we start adhering to the semantic
> versioning (semver) system that we have outlined in our documentation
> (https://cwiki.apache.org/confluence/display/CLOUDSTACK/LTS and
> https://cwiki.apache.org/confluence/display/CLOUDSTACK/Release+principles+for+Apache+CloudStack+4.6+and+up).
> According to our current definitions, we have not had a true major
> release in over 10 years, even though we have introduced breaking
> changes in multiple minor releases during that time.
>
> To align with semantic versioning, I suggest the following changes to
> our versioning practices:
> - API Changes: Any changes to APIs that break backwards compatibility
> should only be made in major versions (e.g., 5.x.x, 6.x.x, etc.).
> - Database Schema: Changes to the database schema should also be
> introduced only in major versions.
> - Feature Removal: We need to update the process of feature removal (see
> https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=68720798)
> to ensure that features are only removed in major versions, after having
> been announced in advance in a previous major version.
>
> If everyone agrees with this approach, we can begin following semantic
> versioning after the release of 4.21. This means we would elect a
> Release Manager for the next major as soon as 4.21 is out. If no one is
> interested in being the RM for the next major, I'll put myself forward
> to do it. Moreover, I would propose at least one major release per year,
> and I (and the folks on our side here) would be willing to put the
> effort into being the RM for these releases if needed.
>
> Regarding the next major naming (e.g., 5.0, 2025.0, 22.0, etc.) we can
> have a separate voting to decide on it.
>
> Looking forward to your thoughts and feedback.
>
> Best regards,
> João Jandre

Reply via email to