Improve error message in case we fallback to the `default` configuration but it's not consumable
Since we call fallback on the `default` configuration in case no matching configuration is found with the
consumer attributes, it is possible that this configuration is not consumable, in which case dependency
resolution should fail. This was the case but the error message was unclear, as it was somehow telling
the user that they had selected `default` explicitly. Instead, the error message now lists the configurations
which failed to match, with their respective attributes.
05 Dec 16 776cb27ef79d8661f0b7b129f08a4c9847f52afa
Revalidate that selected configurations match the requested attributes
This commit changes the behavior of dependency resolution in case a selected configuration doesn't match
the requested attributes. It could happen in two cases:
- in case no matching configuration is found, we fallback to the `default` configuration, which could have attributes
that did *not* match (it was part of the selection, but in the end since no configuration was matching, it was selected
- in case an explicit configuration was chosen. In that case, we didn't check that the selected configuration matched
the consumer attributes.
Error messages have been improved as part of this story. It's worth noting that this commit does NOT change the
selection algorithm, and we will always fallback to the `default` configuration in case no match is found. The only
thing it does is really revalidating that this fallback is compatible.
05 Dec 16 93558b6e7b9bc6c2fe9f40281cffbfa335675920