Change Log
==========

v2.11.1
-------
* Fix a bug in the poller that caused it to not properly nudge module builds stuck in the ``init`` state

v2.11.0
-------
* Fix the creation of Content Generator builds without any components
* Add a poller handler to nudge module builds stuck in the ``init`` state
* List the failed component names in the state reason of a failed module build
* Fail the module build when Koji fails to return RPM headers (occurs during certain Koji outages)
* Use a separate Kerberos context per thread so both threads can use the thread keyring to store the Kerberos cache

v2.10.0
-------
* Fix a bug where the SRPM NVR instead of the SRPM NEVRA was recorded in the modulemd files used in the Content Generator builds
* Use a separate Kerberos cache per thread to avoid Kerberos cache corruption
* Remove the ability to authenticate with Koji using only a Kerberos cache
* Remove the configuration option ``KRB_CCACHE``

v2.9.2
------
* Fix handling of SRPMs in Content Generator builds when SRPM name and main package name are different
* Use anonymous Koji sessions when authentication isn't necessary to perform an action

v2.9.1
------
* Look for stream collisions with buildrequired base modules on the backend instead of the API

v2.9.0
------
* Show the expanded buildrequires in the API output
* Make "-devel" modules optional through a configuration option
* Set the "modularitylabel" RPM header on component builds
* Workaround stream collisions that occur from modules included in a base module by Ursa-Major
* Remove dangling "debug" RPMs from the modulemd that ends up in the Koji Content Generator build
* Make "-devel" module builds require its "non-devel" counterpart
* Remove infrastructure information in the modulemd that ends up in the Koji Content Generator build
* Fail the module build immediately when a component build submission to Koji fails
* Return a friendly error when a stream collision occurs
* Fix database migrations when upgrading an old instance of MBS

v2.8.1
------
* Fix one of the database migration scripts

v2.8.0
------
* The config option ``KOJI_ARCHES`` was renamed to ``ARCHES``
* Import -devel Koji CG builds with RPMs which are filtered out of the traditional CG builds
* Add the ability to override buildrequires and requires when submitting a module build
* Use modules built against all compatible base module streams during buildrequire module resolution
* Record the stream versions (e.g. ``f29.0.0`` => ``290000``) of base modules (e.g. platform)
* Fix wrong inclusion of non-multilib packages in final modulemd of Koji CG builds
* Default arches are now applied to module components but they don't take any effect in the Koji builder yet

v2.7.0
------
* Fix filtering noarch RPMs when generating the Koji CG build information
* Prefix the module version based on the first base module (e.g. platform) it buildrequires
* Prefix the component disttag with the first base module stream the module buildrequires
* Add consistency to the way dependencies were chosen when doing a local build
* Don't run the final ``createrepo`` if the module build failed when doing a local build to help debug build errors
* The config option ``base_module_names`` is now a list instead of a set, so that there is an order of preference for some operations
* Set the default ``base_module_names`` config option to be ``['platform']``

v2.6.2
------
* Bugfix:  Set modulemd 'arch' field in arch-specific modulemd files imported to CG build.

v2.6.1
------
* RFE: Attach architecture specific modulemd files to content generator build in Koji.
  These modulemd files respect multilib, filters, whitelists and RPM headers. They also
  include list of licences.
* Bugfix: Fix bug breaking local builds in createrepo phase.

v2.6.0
------
* Bugfix: Fix to local builds of components in local git repos prefixed with file:///.
* Bugfix: Allow module components to use a git ref outside of the master branch.
  https://pagure.io/fm-orchestrator/pull-request/1008
* Bugfix: Fix to recording of buildrequires in the modulemd xmd block.
* RFE: Add a new API to allow importing modules to the MBS DB.  This facilitates
  management of so-called pseudo-modules.
* RFE: Module builds stuck in a state for more than a week will now be cleaned up
  by the poller.
* RFE: If configured, MBS can now refuse to build modules if their stream is EOL.

v2.5.1
------
* List of filtered RPMs is now generated on backend, so frontend does not query Koji.
* Fix issues when some exception raised in frontend were not forwarded to MBS client.

v2.5.0
------
* Cleaned up some debug log spam.
* Modulemd files can now override stream and name from scm if server is configured to allow it.
* Modules will now be built for architectures derived from a per-basemodule config map.
* Some fixes to filter generation.

v2.4.2
------
* Fix a bug where the fedmsg messaging plugin wouldn't send the NVR on a KojiTagChange message

v2.4.1
------
* Fix bugs when building modules with SCL components
* Expose the component build's NVR and batch in the REST API

v2.4.0
------
* MBS local builds now use the production MBS API for dependency resolution instead of PDC
* Remove COPR support (this hasn't been working for several months now)
* Make ``repo_include_all setting`` configurable in xmd

v2.3.2
------
* Typofix related to the v2.3.1 release.

v2.3.1
------
* Support the modulemd buildopts.rpms.whitelist option
* Allow searching for modules by a binary RPM using the MBS API
* Some fixes around local builds

v2.3.0
------

* Get buildrequired modules for Koji tag inheritance using NSVC instead of NSV
* Support querying for modules/components with multiple state filters
* Support querying for builds by an NSVC string
* Fix an MSE issue when a module buildrequires on the same name and stream as itself

v2.2.4
------

* Use /etc instead of %_sysconfdir in module-build-macros to fix builds with flatpak-rpm-macros

v2.2.3
------

* Fix an issue that occurred when the legacy modulemd module wasn't installed

v2.2.2
------

* Fix some local build issues

v2.2.1
------

* Fix exception in the poller when processing old module builds
* Revert the context values in the database to what they were previous to the algorithm change

v2.2.0
------

* Make the published messages smaller
* Show siblings and component_builds in the standard modules API

v2.1.1
------

* Some py3 compat fixes.
* Fallback to the old Koji tag format for the target when the tag name is too long

v2.1.0
------

* Change ModuleBuild.context to a database column which allows filtering
* Generate informative Koji tag names when "name:stream:version" is not too long
* Reuse components only from modules with the same build_context (same buildrequires names and streams)
* Generate 'context' from hash based on buildrequires/requires stream instead of commit hashes
* Allow defining list of packages which are blocked in the "-build" tag until they are built in a module
* Keep the 'module_name:[]' in requires unexpanded in the recorded modulemd

v2.0.2
------

* Return a friendly error when a module build's dependencies can't be met
* Remove unused dependencies

v2.0.1
------

* Fix Koji Content Generator imports
* Fix a module stream expansion issue that occurs when a module requires a module that isn't also a
  buildrequire

v2.0.0
------

* Add module stream expansion support
* Remove deprecated mbs-build tool (fedpkg/rhpkg should be used instead)
* Add the ``mbs-manager import_module`` command
* Add a database resolver for resolving dependencies for increased performance
* Support modulemd v2
* Fix error that occurs when a batch hasn't started but a repo regen message is received
* Improve Python 3 compatibility
* Improve unit testing performance

v1.7.0
------

* Use external repos tied to the Koji tags on local builds
* Make the MBS resolver interchangeable
* Make component reuse faster
* Fix a bug that caused module builds with no buildrequires to fail
* Make the poller not resume paused module builds if there was recent activity on the build
* A module's "time_modified" attribute is now updated more often to reflect changes in the build
* Fix getting the module name when a YAML file is submitted directly instead of using SCM
* Remove the Koji proxyuser functionality
* Set the owner on the overall module build in Koji
* Fix a bug that could cause a module build to fail with multiple buildrequires

v1.6.3
------

* Fix a bug that caused a module build to fail when it was cancelled during the module-build-macros phase and then resumed
* Reset the "state_reason" field on all components after a module build is resumed

v1.6.2
------

* Cancel new repo tasks on module build failures in Koji

v1.6.1
------

* Fix an error that occurs when a module build is resumed and module-build-macros was cancelled

v1.6.0
------

* Use available Koji repos during local builds instead of building them locally
* Add an incrementing prefix to module components' releases
* Add a "context" field on component and module releases in Koji for uniqueness for when Module Stream Expansion is implemented
* Remove urlgrabber as a dependency
* Set an explicit log level on our per-build file handler
* Set the timeout on git operations to 60 seconds to help alleviate client tooling timeouts
* Improve the efficiency of the stale module builds poller
* Fix situations where module-build-macros builds in Koji but fails in MBS and the build is resumed
