modulemd 1.2.0

I released modulemd-1.2.0 yesterday, the module metadata reference and its Python manipulation library.

This version defines two new important sections, artifacts and buildopts, and clarifies & extends the format specification a bit, standardizing several profile names (kudos to Tomáš Tomeček) and explaining module inclusion in a somewhat more verbose way.

The new artifacts section allows for listing binary artifacts associated with the module, such as binary RPM NEVRAs. Originally there was no need for this feature as we were expecting to ship each module build in its own separate RPM repository and the RPM artifact lists would have been already provided by repodata in that case. Alas, the current plan is to deliver multiple modules in one repo and the software management tools, such as dnf, need to have means to link binary artifacts in the repository to module metadata. This is how.

        - python2-modulemd-0:1.2.0-1.module_23c5e6b.noarch
        - python3-modulemd-0:1.2.0-1.module_23c5e6b.noarch

The section is optional and should be populated during the compose, for example by pungi.

The buildopts section lets module developers specify additional per component type module-wide build options. Currently this is limited to RPM macros that should be defined in the buildroot.

        macros: |
            %perl_bootstrap 1
            %myarches %{ix86} %{arm}

Note that altering buildopts negatively affects component reuse and is equivalent to a buildroot change.

Additionally, modulemd now provides load_all and dump_all functions for working with modulemd multidocuments, such as those stored in the repodata.

Fedora 25, 26 and EPEL 7 updates have been submitted. Feel free to test and give karma. It might take a few weeks before all the new features are supported by the module build service, pungi and dnf, so be patient.

Petr Šabata
Fancies freedom, free software, transparency, cleanliness, simplicity, natural and computer languages, and Oxford commas.