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.
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 anyway). - 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.