Description of problem:
Since upgrading from Fedora 25 to Fedora 27 I have an issue running repoquery against multilib x86_64 repository sets with --best. The set of packages checked against now only includes one of the multilib arches instead of both.
Version-Release number of selected component (if applicable):
Steps to Reproduce:
1. Use a Fedora 27 x86_64 system
2. Run "dnf repoclosure --check=updates --best"
Lots of errors about missing libraries, among other things, because only one of glibc.x86_64 and glibc.i686 will be checked against.
package: 389-ds-base-18.104.22.168-1.fc27.x86_64 from updates
A much smaller list, consisting only of actual broken dependencies.
I believe this is due to an underlying change in the dnf query filter API, in which query.filter(latest=True) now only picks the one latest version of a package across all repos and arches (arbitrarily picking one arch when there are multiple with the same NEVR). The previous behavior can be obtained by using query.filter(latest_per_arch=True), which fixes this problem.
Whilst debugging this issue I also came across another change. It appears that query.latest() now behaves the same as query.filter(latest_per_arch=True), which finds the latest package per arch across all repos, whereas it used to find the latest package per arch in each repo. The result of this is that repoclosure --newest and repoclosure --best now do the same thing.
The issue is solved by dnf-plugins-core-3.0.1-1 that was released into rawhide.