Skip to content

Releases: fedora-modularity/libmodulemd

2.15.0 release

10 May 13:58
2.15.0
Compare
Choose a tag to compare

Enhancements:

  • Add a support for decompressing Zstandard-compressed YAML files.
    modulemd_detect_compression() function now recognizes files with "zst" file
    name extension and files with Zstandard magic bytes and returns
    MODULEMD_COMPRESSION_TYPE_ZSTD_COMPRESSION constant for them.
    modulemd_module_index_update_from_file() can load Zstandard-compressed YAML
    files now.
  • Remove a dependency on "file" library (libmagic). libmodulemd now implements
    its own detection of supported compression formats. This saves roughly 9 MB
    from a minimal system installation.
  • An XML specification for in-YUM-repository metadata is available in
    "xml_specs" directory. This new format aspires for replacing modulemd-v2,
    modulemd-defaults-v1 and modulemd-translations-v1 YAML formats. A motivation
    is to unify with other XML files in YUM repositories. Please note that this
    specification is not yet implemented.

Incompatible changes:

  • Meson minimal version increased to 0.55.

Deprecation:

  • Deprecate intents in modulemd-defaults specification. System intents, which
    parameterize a default stream and default profiles of a module, were never
    implemented in the package managers (e.g. DNF). Users are discouraged from
    using this feature. Future libmodulmed versions might deprecate and later
    remove parts of an API pertaining the intents.

Fixes:

  • Fix a crash when converting a modulemd-packager object with a default
    profile and without a module name or stream to a module index.
  • Fix parsing empty profiles. Previously a profile with an empty rpms list was
    misparsed as a list with a single, empty package name.
  • A specification for modulemd-v2 format was corrected to require a "content"
    license subtree only if the module build contains artifacts.
  • Double-quote strings in scalar YAML values when they look like a number.
    Most of the fields in the YAML files are required to be interpreted as
    strings. Unaware third-party parsers could misinterpret number-like strings
    (e.g. 2.30) as floats (i.e. 2.3), leading to mismatching string
    representations. This is now prevented by quoting these values (i.e.
    "2.30").
  • A build script now correctly asserts a requested Python version. Previously
    Python 3 /usr/bin/python program could be mistaken with Python 2
    interpreter.
  • meson-0.64.0 warnings about "check" option of run_command() were fixed.
  • Warnings from g_str_equal() macro of glib2 about passing an unsigned
    char * to strcmp() were fixed.

2.14.0 release

04 Feb 13:53
2.14.0
Compare
Choose a tag to compare

This release is fully compatible with the previous version 2.13.0 except
behaviour changes described in Fixes section.

Enhancements:

  • New functions for stripping XMD from an index
    (modulemd_module_index_clear_xmds()), from a module
    (modulemd_module_clear_xmds()), and from a version 2 module stream
    (modulemd_module_stream_v2_clear_xmd()). This enables you to prevent from leaking
    private build options to output modulemd-v2 documents.
  • Interpret an invalid buildorder 18446744073709551615 as -1 if the library
    is built with a new build boolean accept_overflowed_buildorder set to true.
  • Document module version, buildorder, and epoch limits in the specifications.
    Also clarify that an epoch number at RPM artifacts is mandatory.
  • Document that modulemd_module_get_defaults can return NULL
  • Improve a documentation for modulemd_module_set_defaults() and
    modulemd_module_index_upgrade_defaults() functions.
  • Improve modulemd-validator(1) manual page.
  • Drop a build dependency on help2man tool.

Fixes:

  • Fix a crash when updating an index with an invalid subdocument and a NULL
    error parameter.
  • Fix clobbering module defaults on a modulemd_module_set_defaults() error.
  • Fix modulemd_module_index_upgrade_defaults() to actually use the requested
    version.
  • Reject duplicate contexts in modulemd-packager-v3 documents.
  • Report an error if modulemd-validator tool is invoked with both --version
    option and an unknown option.
  • Fix an undefined behaviour when comparing integers of different signs.
  • Fix DNF examples in a documentation.
  • Actually execute modulemd-obsoletes Python tests.
  • Fix deprecation warnings in tests with glib2-2.69.0.
  • Fix deprecation warnings in Python tests and make the test compatible with

2.13.0 release

09 Jul 09:48
2.13.0
Compare
Choose a tag to compare

This release is fully compatible with the previous 2.12.1 version.

Enhancements:

  • Add /data/demodularized/rpms list to modulemd and modulemd-packager formats.
    The listed binary RPM package names will be handled by a package manager as
    removed from all previous module versions. This enables moving a package from
    a module to a non-modular package set.
  • modulemd-validator tool enables you to constrain a document type with a new
    "--type" option. Without this option, all document types recognized by
    a modulemd index are accepted. To validate version 3 of modulemd-packager
    format, use "modulemd-validator --type modulemd-packager-v3 foo.yaml"
    command.
  • Allow disabling Python 3. You can pass -Dwith_py3=false to a meson setup
    command to disable building a binding for Python 3. The binding is enabled
    by default.

Fixes:

  • Reject invalid integers. Purely non-numeric values and negative numbers where
    an unsigned type is mandated by a specification raise a parser error now.
  • Handle a failed g_setenv() call in modulemd-validator.
  • Prevent from dereferencing a NULL pointer when reporting invalid
    subdocuments.
  • A build script now refuses to disable Glib introspection
    (-Dskip_introspection=true) while a Python binding is requested
    (-Dwith_py3=true).
  • "modulemd-validator --version" command returns 0 exit code now.

2.12.1 release

03 May 13:24
2.12.1
Compare
Choose a tag to compare

This is a bug-fix release fully compatible with the previous 2.12.0
version. Notable changes:

Enhancements:

  • Improve diagnostic messages for compression tests.
  • Tests performed in a GitHub continues integration are faster.
  • Use GitHub actions to perform CI tests also on ArchLinux, Mageia,
    Mandriva, and OpenSUSE.

Fixes:

  • Relax context value up to 13 characters including an underscore
    character in modulemd v2 format. This reenables scratch-builds in MBS.
  • Migrate Packit tests from a deprecated current_version_command to
    a newer actions/get-current-version.

libmodulemd 2.12.0

15 Jan 02:09
libmodulemd-2.12.0
aaed38c
Compare
Choose a tag to compare

Aleš Matěj (1)

  • When adding obsoletes ensure index has stream mdversion at least 2

Libmodulemd CI (1)

  • Code auto-formatting

Merlin Mathesius (2)

  • When code is pushed to main branch, run auto-formatting and commit any changes.
  • Enable component 'buildorder' for modulemd-packager v2 and v3 documents

Stephen Gallagher (8)

  • Bump version in meson.build to 2.11.3
  • Add missing @staticmethod for python2
  • Simplify autoformatters in CI
  • Drop formatters from codebase
  • Merge branch 'autoformat' into main
  • Bump version to 2.12.0
  • Build documentation with Github Actions
  • Generate documentation snapshot for releases

libmodulemd 2.11.2

08 Jan 01:19
libmodulemd-2.11.2
Compare
Choose a tag to compare

Merlin Mathesius (3)

  • Add python tests for PackagerV3.get/set_xmd()
  • Enable Modulemd.read_packager_file/string() to specify module and stream name overrides
  • Enable Python bindings for enhanced Modulemd.read_packager_file/string()

Stephen Gallagher (1)

  • Bump version in meson.build to 2.11.2

libmodulemd 2.11.1

17 Dec 17:23
libmodulemd-2.11.1
Compare
Choose a tag to compare

Merlin Mathesius (1)

  • If modulemd-packager documents are found while reading directly into a module index, report them as subdocument failures and discard them.

Stephen Gallagher (6)

  • Bump version in meson.build to 2.11.1
  • Work around libseccomp issue in CI
  • PackagerV3: Handle python overrides for XMD
  • Python: Drop gtype return from read_packager_*()
  • Add PackagerV3.get_mdversion()
  • CI: Add Github Actions for ppc64le and s390x

libmodulemd 2.11.0

10 Dec 16:57
libmodulemd-2.11.0
c9d451f
Compare
Choose a tag to compare

Merlin Mathesius (13)

  • Add BuildConfig and Buildopts sorting functions
  • Sort stream expanded dependencies so they will be in a predictable and reproducible order.
  • Add meaningful stream expansion and upgrade tests now that ordering can be relied upon.
  • Remove a few lingering StreamV3 vestiges
  • Include static_context attribute for StreamV2 "equals" comparison
  • Make PackagerV3 and BuildConfig objects public
  • Add YAML emit capabilities to PackagerV3 object
  • Documentation fixes and cleanup: * Add PackagerV3 and BuildConfig public APIs to documentation index * Remove StreamV3 references from ModuleIndex documentation * Fix PackagerV3 and other broken documentation links
  • Clean up several obsolete StreamV3 test data files
  • Implement public APIs Modulemd.read_packager_file() and Modulemd.read_packager_string()
  • Implement public API PackagerV3.convert_to_index()
  • Restore accidentally dropped ability for ModuleStream.read_() functions to transparently read packager-v3 documents, deprecate them in favor of the new Modulemd.read_packager_() functions, and add notes to their documentation about the limitations of the packager-v3 to stream-v2 conversion.
  • Refactor PackagerV3 to StreamV2 attribute copying to reduce code redundancy

Stephen Gallagher (9)

  • Bump version in meson.build to 2.10.1
  • Fix integer size issue on 32-bit platforms
  • Drop ModuleStreamV3
  • Drop ModuleIndex.default_stream_mdversion
  • Drop UpgradeHelper
  • Add static_context attribute to StreamV2
  • CI: Switch to Github Actions
  • Merge branch 'update_shebang_scripts' into HEAD
  • Bump version to 2.11.0

nasirhm (1)

  • 🔧 Modified Scripts to use env for shebang.

libmodulemd 2.10.0

20 Nov 19:56
libmodulemd-2.10.0
Compare
Choose a tag to compare
libmodulemd 2.10.0 Pre-release
Pre-release

== DO NOT USE ==

This release has been abandoned as it has many serious issues. It will be superseded by 2.11.0.

Aleš Matěj (6)

  • Add modulemd-obsoletes
  • Add modulemd-obsoletes to modulemd-module-stream
  • Add modulemd-obsoletes to modulemd-module
  • Add modulemd-obsoletes to modulemd-module-index/merger
  • Convert modulemd-obsoletes dates to ISO 8601 format
  • Update documentation with eols and 2.10 index

Merlin Mathesius (32)

  • Address detected Coverity scan defects
  • TRAVIS: Bump Fedora version used for Coverity scan
  • Add tests for modulemd_load_string()
  • Clarify difference between MMD_YAML_ERROR_UNPARSEABLE and MMD_YAML_ERROR_PARSE
  • Enhance the travis build scripts and Dockerfile templates so that the common mmd_run_docker_tests() launcher function can also launch the Coverity scan. This enhancement made it a simple matter to switch the Coverity scan to run on CentOS 8 instead of Fedora.
  • Add StreamV3 object (#487)
  • Correct minor issues with MMD_INIT_YAML_STRING() and MMD_REINIT_YAML_STRING() not using the given _string argument.
  • Add YAML emit capabilities to BuildConfig object.
  • Add "equals" function for BuildConfig objects.
  • Increase timeout for debug tests.
  • modulemd-packager v3 spec fixup: include "arches" in per-configuration "buildopts"
  • Implement PackagerV3 mapping to StreamV2/StreamV3
  • Spec updates to modulemd-stream v3 and modulemd-packager v3 to specify module stream dependencies as single-element lists instead of scalars.
  • Implemention and test updates to reflect modulemd-stream v3 and modulemd-packager v3 spec changes to specify module stream dependencies as single-element lists instead of scalars.
  • Implement StreamV2 to StreamV3 upgrading
  • Add placeholder modulemd_module_stream_upgrade_ext()
  • Update modulemd_module_stream_upgrade_v2_to_v3_ext() argument to ModulemdModuleStreamV2 instead of ModulemdModuleStream
  • Added a lot of commentary to the StreamV2 to StreamV3 stream expansion process
  • Initial integration of StreamV2 to StreamV3 upgrading
  • Use proper GOobject type casting for BuildConfig
  • ModuleIndex stream mdversion is no longer allowed to change on-the-fly
  • Adjust new XMD tests added by PR#504 to preset index stream mdversion
  • Fill in default module license if necessary when mapping PackagerV3 to StreamV2.
  • StreamV3 license emitting bug fix
  • Refactor module/stream name autogeneration into separate functions
  • Autogen module/stream names when converting PackagerV3 for adding to index
  • Add wrapper script to simplify running valgrind tests
  • modulemd-validator: fix use of wrong loop index variable
  • Enable determining which sub-document(s) are the cause of a batch load failure
  • Add generalized function to debug dump any sub-document failures
  • Catch and sensibly report StreamV2 upgrade missing dependencies error
  • Revise tests for easier debugging

Neal Gompa (1)

  • CI: Fix installation of dependencies on openSUSE Tumbleweed

Peter Pentchev (1)

  • Correct some typographical errors.

Stephen Gallagher (51)

  • Bump version in meson.build to 2.9.5
  • Drop custom valgrind test
  • Replace all references to the 'master' branch
  • Docs must be on the 'master' branch due to Github limitations
  • validator: Add support for compressed YAML
  • fixup! validator: Add support for compressed YAML
  • Create rpmbuild directory
  • Disable LTO
  • TRAVIS: Add Fedora 33 to test hosts
  • Correct typo in documentation
  • Update test for newer bash versions
  • Fix incorrect error type
  • Update python formatting with python-black 20.8
  • Add convenience functions for loading the index
  • Add modulemd-packager and modulemd-stream v3 document specs.
  • Do not treat OpenMandriva tests as blocking
  • Merge remote-tracking branch 'upstream/main' into mmdv3-devel
  • Add BuildConfig object
  • Add common mmd_parse_xmd() function
  • Add 'default' property to ModulemdProfile
  • Add PackagerV3 object
  • Tools: Tag with bare version as well
  • Enable source-git functionality for Fedora
  • Fix README
  • Merge branch 'main' into mmdv3-devel
  • CI: replace RPM creation with packit
  • Merge remote-tracking branch 'upstream/main' into mmdv3-devel
  • Always output quoted stream name
  • Merge branch 'main' into mmdv3-devel
  • Apply clang-format changes
  • Change the specification of ref
  • Handle XMD for ModuleStreamV3 in python
  • Don't fail tests locally when overrides are changing
  • Container-based build setup
  • Conditionalize overrides
  • Merge branch 'container' into mmdv3-devel
  • Allow tests to fail on openSUSE Tumbleweed
  • Merge branch 'main' into mmdv3-devel
  • Fix python style issues
  • Fix memory leak in rpmmap test
  • Merge branch 'main' into mmdv3-devel
  • Suppress Coverity false-positive
  • Add Coverity modeling file to upstream sources
  • Improve valgrind performance in CI
  • Add modulmd_str_set_new()
  • Add Modulemd.UpgradeHelper object
  • Fix up override handling in tests
  • Fix up memory errors detected by clang
  • Run coverity modeling file through clang-format
  • Make UpgradeHelper private
  • Use UpgradeHelper during upgrades

libmodulemd 2.9.4

20 May 19:35
libmodulemd-2.9.4
Compare
Choose a tag to compare

Stephen Gallagher (4)

  • Bump version in meson.build to 2.9.4
  • Disabled developer mode should disable code formatters and valgrind
  • Fedora 30 is EOL
  • Fix E741 error in python bindings