Updating modules in Fedora

This page will guide you through the process of updating an existing module.

Step 1: Update your RPM packages

Goal: Get updates for your PRM packages pushed into the Fedora Distribution Git (dist-git).

Workflow Summary:

  1. Make changes to your RPM package sources.

  2. Push your RPM package sources to dist-git.

Step 2: Bump the module version

Goal: Get your module definition describing the new version pushed into the Fedora Distribution Git (dist-git). This needs to be done even when the modulemd doesn’t change.

Workflow Summary:

  1. Push an empty commit to your module dist-git repository.

Details:

The version of your module is taken from the last commit timestamp. Therefore, in order to submit a new module build, you need to make a new commit. To push an empty commit to your modulemd, run:

$ fedpkg clone modules/nodejs
$ cd nodejs
$ git commit --allow-empty -m "update"
$ git push

Step 3: Build your module

Goal: Get your packages built as a module.

Steps:

  1. Submit a module build using fedpkg.

  2. Make sure your build succeeded.

Details:

Module builds are triggered using fedpkg from whithin your dist-git repository.

For example, to submit a build of the nodejs:10 module, run:

$ fedpkg clone modules/nodejs
$ cd nodejs
$ git checkout 10
$ fedpkg module-build
Please note the module build ID. You will need it to verify the build state. It also helps you in the next step.

To watch the satate of your module build, run:

$ fedpkg module-build-watch BUILD_ID

When the module is in a "ready" state, you can continue to the next step.

Step 4: Make your module available to users

Goal: Make your module go through Bodhi — the Fedora updates system.

Steps:

  1. Submit your module as an update in Bodhi.

  2. Make sure your update has passed potential user testing.

Details:

To submit your module as an update, go to Fedora Bodhi. Make sure you are logged in, and then click on Create / New Update at the top-right corner. Fill out the following fields:

  • Candidate Builds: MODULE_BUILD_ID

  • Update notes: notes for the users

  • Final details: check what applies

One way of geting the MODULE_BUILD_ID is running the same command as in the previous step:

$ fedpkg module-build-watch BUILD_ID

and changing the "koji tag" value in the following way:

module-nodejs-10-20180607142235-6c81f848   <- koji tag
       nodejs-10-20180607142235.6c81f848   <- MODULE_BUILD_ID

that is removing the "module-" part at the beginning, and replacing the last "-" with a ".".