Package URL Conflicts

I've hit this a few times. Luckily in repos I'm an owner of so I can fix, but always more painful to debug and track down than I expect given the error messaging. The bug does appear to be non-deterministic, but here's an open source project that exhibits the issue on CI, and I was able to reproduce it:

The error is "Missing package product 'XCTestDynamicOverlay'", which comes from a package that is depended on both upstream in several libraries, where ".git" is omitted from the repo name:

And then downstream, where the URL included ".git": isowords/Package.swift at 2db490517a7768cd8d82807eabb33bf7ae1418ce · pointfreeco/isowords · GitHub

Removing the ".git" has things reliably building again, but it'd definitely be nicer if SPM could "canonicalize" URL differences like these or at the very least provide error messaging that points directly to these mismatches.

Edit: filed [SR-14393] SPM package repo URL conflicts fail resolution · Issue #4441 · apple/swift-package-manager · GitHub