Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Handle unfetchable Go versions that have name collisions. #2687

Merged
merged 3 commits into from
Jan 25, 2021

Conversation

tiegz
Copy link
Contributor

@tiegz tiegz commented Jan 25, 2021

Handle versions that have case-insensitive name collisions instead of blowing up when we try to fetch their info.

@tiegz tiegz requested review from jsonperl and mellisio January 25, 2021 15:01
@@ -106,6 +106,10 @@ def self.versions(project, _name)
known_versions[v].slice(:number, :published_at)
else
info = get("#{PROXY_BASE_URL}/#{project[:name]}/@v/#{v}.info")
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Any way you can think of to correct to the proper case before updating? Some sort of case insensitive search mechanism?

Copy link
Contributor Author

@tiegz tiegz Jan 25, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's unfortunately an issue with the files in the Go Module and not with the name itself so I think we have to wait on a fix from Golang 😬 Here's the response for the example one above, where it has two filepaths in the same folder with same-name-different-casing:

not found: create zip: case-insensitive file name collision: "models/apis/GuardDuty/2017-11-28/api-2.json" and "models/apis/guardduty/2017-11-28/api-2.json"

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(or alternatively we could keep the version but just display its published_at as ? or something?)

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seems like a really really small amount of packages huh? (Like 2 maybe?)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this example had 3 versions with name collisions, but we've got a ton of these errors in bugsnag: https://app.bugsnag.com/tidelift/libraries-dot-io/errors/60076c589e7ce30018c6b586

@tiegz tiegz changed the title Skip unfetchable Go versions that have name collisions. Handle unfetchable Go versions that have name collisions. Jan 25, 2021
@tiegz tiegz merged commit 59ac10c into master Jan 25, 2021
@tiegz tiegz deleted the tiegz/skip-versions-with-file-name-collisions branch January 25, 2021 15:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants