#1402 Refactor handling of default buildroot modules (Ursa Prime)
Opened 4 years ago by mprahl. Modified 4 years ago

The original design for Ursa Prime had an XMD field called default_modules_url on the Platform module's modulemd that would contain a URL to a file with a list of name:stream combinations to includes as default modules in the buildroot. This design has changed, and instead, libmodulemd will provide this list from the cloned down releng/fedora-module-defaults repo.

This ticket is about removing support for default_modules_url in the Platform XMD and using the new mechanism described above for getting the list of default name:stream combinations to include in the buildroot. By default, the branch used by the library or simple code will be the same as the buildrequired Platform stream except internally, where privileged modules such as the build module can override this for layered products.


I just released libmodulemd 2.8.0 last night which includes the new function. Assuming that you have cloned fedora-module-defaults into /tmp/fedora-module-defaults, you will be able to do:

from gi.repository import Modulemd

idx = Modulemd.ModuleIndex.new()
idx.update_from_defaults_directory(path='/tmp/fedora-module-defaults', strict=True)

or, to support overridden defaults (such as buildroot-only modules):

from gi.repository import Modulemd

idx = Modulemd.ModuleIndex.new()
idx.update_from_defaults_directory(path='/tmp/fedora-module-defaults',
                                                                overrides_path='/tmp/fedora-module-defaults/overrides',
                                                                strict=True)

Login to comment on this ticket.

Metadata