Skip to content

Updating version numbers for release 24.0.0-SNAPSHOT - #14041

Open
wido wants to merge 1 commit into
apache:mainfrom
wido:v24
Open

Updating version numbers for release 24.0.0-SNAPSHOT#14041
wido wants to merge 1 commit into
apache:mainfrom
wido:v24

Conversation

@wido

@wido wido commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

Description

Following the [VOTE] "Version naming: drop the "4." prefix starting with release 24" on dev@cloudstack.apache.org, started on 14 August 2026 and closed on 21 August 2026 at 12:00 UTC, the release that would have been 4.24 is released as 24, i.e. 24.0.0. Subsequent feature releases become 25, 26, and so on, and maintenance releases on the 24 branch become 24.1.0, 24.2.0, and so on.

The vote passed by lazy majority with 4 binding +1 votes (Wido den Hollander, Daan Hoogland, Kiran Chavala, Vishesh Jindal), 1 non-binding +1 (Simon Weller), 1 +0 (Abhishek) and 1 -1 (Joao Jandre Paraquetti).

This changes the version only, touching the same files that tools/build/setnextversion.sh does:

  • in all pom.xml files
  • debian/changelog
  • tools/marvin/setup.py
  • tools/docker/Dockerfile, Dockerfile.marvin and Dockerfile.s390x

The leading "4." has not carried any meaning for many years. Dropping it does not affect the release cadence, the LTS policy, the branching and release process or the backwards-compatibility guarantees, and it is not a signal that 24 breaks APIs or introduces disruptive changes.

org.apache.cloudstack.utils.CloudStackVersion already parses and compares both three and four position versions, normalising 24.0.0 to 24.0.0.0, so 24.0.0 still compares greater than 4.23.0.0.

Vote thread:
http://www.mail-archive.com/dev@cloudstack.apache.org/msg107393.html

Types of changes

  • Breaking change (fix or feature that would cause existing functionality to change)
  • New feature (non-breaking change which adds functionality)
  • Bug fix (non-breaking change which fixes an issue)
  • Enhancement (improves an existing feature and functionality)
  • Cleanup (Code refactoring and cleanup, that may add test cases)
  • Build/CI
  • Test (unit or integration test code)

Feature/Enhancement Scale or Bug Severity

Feature/Enhancement Scale

  • Major
  • Minor

Bug Severity

  • BLOCKER
  • Critical
  • Major
  • Minor
  • Trivial

Screenshots (if appropriate):

How Has This Been Tested?

Local builds have been run, all compiles

@codecov

codecov Bot commented Sep 2, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 19.78%. Comparing base (b7a834b) to head (d32d784).

Additional details and impacted files
@@             Coverage Diff              @@
##               main   #14041      +/-   ##
============================================
- Coverage     19.78%   19.78%   -0.01%     
+ Complexity    19998    19994       -4     
============================================
  Files          6371     6371              
  Lines        575899   575899              
  Branches      70495    70495              
============================================
- Hits         113967   113942      -25     
- Misses       449501   449531      +30     
+ Partials      12431    12426       -5     
Flag Coverage Δ
uitests 3.53% <ø> (ø)
unittests 21.05% <ø> (-0.01%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@DaanHoogland DaanHoogland left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

clgtm

@nvazquez nvazquez left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @wido - largely looks good. Just a question, are we keeping the schema upgrade SQL path files named as before or those should also be updated?

@Pearl1594 Pearl1594 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Most changes have been taken care of.
Just wondering if we also need to look at the ci workflow here: https://github.com/apache/cloudstack/blob/main/.github/workflows/docker-cloudstack-simulator.yml#L24-L26 - it only triggers the docker image build on tags matching 4.* / 5.*, so once we start tagging releases as 24.0.0 etc, this workflow won't pick it up and the image build would just silently not run.

Also, since we've been following the 4.x naming for several years, its pretty likely contributors may keep writing since = "4.24.0" out of muscle memory despite this being communicated. Do you think it makes sense / would help to add a pre-commit hook to catch that automatically instead of relying on reviewers to spot it every time? This could be done on a separate PR too - we could add the hook to .pre-commit-config.yaml

@DaanHoogland

Copy link
Copy Markdown
Contributor

@blueorangutan package

@blueorangutan

Copy link
Copy Markdown

@DaanHoogland a [SL] Jenkins job has been kicked to build packages. It will be bundled with no SystemVM templates. I'll keep you posted as I make progress.

@blueorangutan

Copy link
Copy Markdown

Packaging result [SF]: ✖️ el8 ✖️ el9 ✖️ debian ✖️ suse15. SL-JID 19069

@wido

wido commented Sep 2, 2026

Copy link
Copy Markdown
Contributor Author

Thanks @wido - largely looks good. Just a question, are we keeping the schema upgrade SQL path files named as before or those should also be updated?

Good one. I only did a search and replace, but these files need to be renamed indeed. Let me check that and push a new commit if needed

Most changes have been taken care of. Just wondering if we also need to look at the ci workflow here: https://github.com/apache/cloudstack/blob/main/.github/workflows/docker-cloudstack-simulator.yml#L24-L26 - it only triggers the docker image build on tags matching 4.* / 5.*, so once we start tagging releases as 24.0.0 etc, this workflow won't pick it up and the image build would just silently not run.

Also, since we've been following the 4.x naming for several years, its pretty likely contributors may keep writing since = "4.24.0" out of muscle memory despite this being communicated. Do you think it makes sense / would help to add a pre-commit hook to catch that automatically instead of relying on reviewers to spot it every time? This could be done on a separate PR too - we could add the hook to .pre-commit-config.yaml

That pre-commit hook looks good, can you make a PR for this? I'm not really a big commit hook genius :-)

Comment thread .github/workflows/docker-cloudstack-simulator.yml Outdated
Following the [VOTE] "Version naming: drop the "4." prefix starting with
release 24" on dev@cloudstack.apache.org, started on 14 August 2026 and
closed on 21 August 2026 at 12:00 UTC, the release that would have been
4.24 is released as 24, i.e. 24.0.0. Subsequent feature releases become
25, 26, and so on, and maintenance releases on the 24 branch become
24.1.0, 24.2.0, and so on.

The vote passed by lazy majority with 4 binding +1 votes (Wido den
Hollander, Daan Hoogland, Kiran Chavala, Vishesh Jindal), 1 non-binding
+1 (Simon Weller), 1 +0 (Abhishek) and 1 -1 (Joao Jandre Paraquetti).

This changes the version only, touching the same files that
tools/build/setnextversion.sh does:

  * <version> in all pom.xml files
  * debian/changelog
  * tools/marvin/setup.py
  * tools/docker/Dockerfile, Dockerfile.marvin and Dockerfile.s390x

Two places additionally assumed the version string starts with a single
digit followed by a dot, which no longer holds now that the version is
24.0.0-SNAPSHOT instead of 4.24.0.0-SNAPSHOT, and are fixed here as well:

  * packaging/package.sh picked the version out of the maven-help-plugin
    output with 'grep ^[0-9]\.', which does not match 24.0.0-SNAPSHOT.
    That left VERSION empty and failed the el8, el9, debian and suse15
    packaging jobs. It now uses 'grep -E ^[0-9]+\.'.
  * the docker-cloudstack-simulator workflow only triggered on tags
    matching 4.* and 5.*, so a 24.0.0 tag would silently not build an
    image. Those patterns are replaced by a single '[0-9]+.[0-9]+.*'
    which matches any numeric release tag under either naming scheme.
    Reported by @nvazquez.

The leading "4." has not carried any meaning for many years. Dropping it
does not affect the release cadence, the LTS policy, the branching and
release process or the backwards-compatibility guarantees, and it is not
a signal that 24 breaks APIs or introduces disruptive changes.

org.apache.cloudstack.utils.CloudStackVersion already parses and compares
both three and four position versions, normalising 24.0.0 to 24.0.0.0, so
24.0.0 still compares greater than 4.23.0.0.

Vote thread:
http://www.mail-archive.com/dev@cloudstack.apache.org/msg107393.html

Signed-off-by: Wido den Hollander <wido@widodh.nl>
@weizhouapache

Copy link
Copy Markdown
Member

@blueorangutan package

@weizhouapache

Copy link
Copy Markdown
Member

we may need Trillian changes too

@Pearl1594

Copy link
Copy Markdown
Contributor

Thanks @wido - largely looks good. Just a question, are we keeping the schema upgrade SQL path files named as before or those should also be updated?

Good one. I only did a search and replace, but these files need to be renamed indeed. Let me check that and push a new commit if needed

Most changes have been taken care of. Just wondering if we also need to look at the ci workflow here: https://github.com/apache/cloudstack/blob/main/.github/workflows/docker-cloudstack-simulator.yml#L24-L26 - it only triggers the docker image build on tags matching 4.* / 5.*, so once we start tagging releases as 24.0.0 etc, this workflow won't pick it up and the image build would just silently not run.
Also, since we've been following the 4.x naming for several years, its pretty likely contributors may keep writing since = "4.24.0" out of muscle memory despite this being communicated. Do you think it makes sense / would help to add a pre-commit hook to catch that automatically instead of relying on reviewers to spot it every time? This could be done on a separate PR too - we could add the hook to .pre-commit-config.yaml

That pre-commit hook looks good, can you make a PR for this? I'm not really a big commit hook genius :-)

Sure, can do it once this PR gets merged.

@blueorangutan

Copy link
Copy Markdown

Packaging result [SF]: ✔️ el8 ✔️ el9 ✔️ el10 ✔️ debian ✔️ suse15. SL-JID 19073

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment