#36 Add documentation explaining the module version prefix
Merged 5 months ago by asamalik. Opened 5 months ago by mprahl.

file modified

@@ -4,6 +4,7 @@

  ** xref:architecture/consuming.adoc[Consuming Software]

  *** xref:architecture/consuming/dnf-behavior.adoc[DNF Behavior]

  *** xref:architecture/consuming/naming-policy.adoc[Naming Policy]

+ *** xref:architecture/consuming/upgrade-paths.adoc[Upgrade Paths]

  * xref:making-modules.adoc[Making Modules]

  ** xref:making-modules/adding-new-modules.adoc[Adding New Modules]

  ** xref:making-modules/updating-modules.adoc[Updating Existing Modules]

@@ -0,0 +1,24 @@

+ = Modular Upgrade Paths


+ == Version Prefixes


+ Modules built with Module Build Service (MBS) v2.8.1 or newer will contain a

+ version prefix. This prefix is derived by the stream version of the Platform

+ module that the module build buildrequires. For instance, if the Platfom module

+ has a stream of `f29`, then the stream version would be `29`. This makes it so

+ that a module with a version of `20181109101859` would become

+ `2920181109101859`. This ensures that modules built with later versions of

+ Fedora always have higher versions, and thefore, have a clear upgrade path.


+ The reason this is needed is that a module's version is dynamically derived

+ from the commit timestamp of the modulemd that was used for the module build.

+ This becomes an issue in the following scenario. If you build a module for

+ Fedora 28, then build a module of the same stream for Fedora 29, then when

+ upgrading to Fedora 29 will work just fine because the module build for Fedora

+ 29 was built later, so therefore has a higher version. If the module build for

+ Fedora 28 needs to be rebuilt however, then the version will be higher than the

+ Fedora 29 build since the modulemd will have a newer commit. This will mean that

+ a user with the Fedora 28 module version installed, will encounter issues when

+ upgrading to Fedora 29 since the user will already have a module with a higher

+ version installed than what is provided by Fedora 29. Prefixing the module

+ version with the buildrequired Platform stream version solves the issue.

no initial comment

Pull-Request has been merged by asamalik

5 months ago