def matching_versions(constraints, elm_version)
      repository
        .versions
        .select do |version|
          elm_version_of(version.to_s) == elm_version &&
            constraints.all? { |constraint| constraint.satisfies?(version) }
        end
        .sort
        .reverse
    end
def matching_versions(constraints, elm_version)
      repository
        .versions
        .select do |version|
          elm_version_of(version.to_s) == elm_version &&
            constraints.all? { |constraint| constraint.satisfies?(version) }
        end
        .sort
        .reverse
    end
Returns the matchign versions for a repository for the given constraints

 @param constraints [Array] The constraints
 @param elm_version [String] The Elm version to match against

 @return [Array] The versions