canonical / ubuntu-maintainers-handbook

Ubuntu Maintainer's Handbook
58 stars 39 forks source link

Patch Version Increment Clarification #97

Closed holmanb closed 11 months ago

holmanb commented 1 year ago

From the relevant section:

The overall scheme stays the same for Stable release updates. One still only changes the ubuntu revision section of [upstream_version]-[debian_revision]ubuntu[ubuntu_revision].

  • Increment Y in the numeric ubuntuX.Y suffix, like: ubuntu3.1 -> ubuntu3.2.
  • If this is the first change via the SRU process, add the .1 suffix, like: ubuntu3 -> ubuntu3.1.
  • If no ubuntuX was present before, then set ubuntu0.1 which will represent that there was no Ubuntu delta (0) before this upload which is the first to add a change (.1).
  • If two releases have the same version, then this would make the package non upgradeable and cause a version conflict (two builds, but not the same). To resolve this, add the numeric YY.MM release version in between ubuntuX and the increment .1. For Jammy that might look like ...ubuntu3.22.04.1

If a stable release update release includes an Ubuntu delta (i.e. diff from upstream release), should this cause the package version to increment the patch delta ubuntuY? Or should this cause the package version to increment the SRU increment ubuntu0.Y (unconditionally follow bullet 1)?

When, if ever, would a delta counter would be incremented in SRU?

blackboxsw commented 1 year ago

@holmanb @TheRealFalcon @aciba90 what do we think about this clarification:

diff --git a/VersionStrings.md b/VersionStrings.md
index e1211dd..63bdde7 100644
--- a/VersionStrings.md
+++ b/VersionStrings.md
@@ -92,7 +92,7 @@ The overall scheme stays the same for [Stable release updates](https://wiki.ubun

 Compare these examples with the _[adding a change in the current Ubuntu development release](VersionStrings.md#version-adding-a-change-in-the-current-ubuntu-development-release)_ section above to better see the subtle difference.

-> Example in detail: _Adding a change to `2.0-2` in a stable Ubuntu release will use `2.0-2ubuntu0.1`_
+> Example in detail: _Adding a change to `2.0-2` in a stable Ubuntu release will use `2.0-2ubuntu0.1`. This first .1 change can include any supplemental debian packaging changes or patches applicable to the stable release._

 > Example in detail: _Adding another change to `2.0-2ubuntu0.1` in a stable Ubuntu release will use `2.0-2ubuntu0.2`_
holmanb commented 1 year ago

-> Example in detail: Adding a change to 2.0-2 in a stable Ubuntu release will use 2.0-2ubuntu0.1 +> Example in detail: Adding a change to 2.0-2 in a stable Ubuntu release will use 2.0-2ubuntu0.1. This first .1 change can include any supplemental debian packaging changes or patches applicable to the stable release.

Thanks for the proposal @blackboxsw. Lets s/can/must/ or similar, "can" implies an alternate option, and I think we've settled out of band that during SRU there is not.

blackboxsw commented 1 year ago

Thanks @holmanb I put that comment and dropped the #100 on the wire for any language improvements folks may want to better express the restriction to use .1 always on first SRU.

cpaelzer commented 1 year ago

If a stable release update release includes an Ubuntu delta (i.e. diff from upstream release), should this cause the package version to increment the patch delta ubuntuY?

No, stable updates release updates always change the .x and if no Y is there is becomes 0.1 as outlined.

Or should this cause the package version to increment the SRU increment ubuntu0.Y (unconditionally follow bullet 1)?

Yes