gomods / athens

A Go module datastore and proxy
https://docs.gomods.io
MIT License
4.38k stars 492 forks source link

Clarify expected behavior of /@latest endpoint in fallback NetworkMode #1868

Open ngshiheng opened 1 year ago

ngshiheng commented 1 year ago

Describe the bug

When attempting to use the /@latest endpoint in fallback NetworkMode with Athens as a Go module proxy, a 404 error is returned instead of retrieving the latest version from Athens' storage when VCS fails.

curl http://localhost:3000/gitlab.company.net/foo/bar/baz/@latest

# Athens server log

INFO[4:21PM]: incoming request  http-method=GET http-path=gitlab.company.net/foo/bar/baz/@latest http-status=404 request-id=4a40eff5-6aa8-4914-b4ba-89a9d0904b5e

Expected behavior

I would expect Athens to retrieve the latest version from its storage when the /@latest endpoint is called in fallback NetworkMode (to provide the best effort of giving the user what is available at the time of requesting versions) in the case when the VCS fails.

Environment (please complete the following information):

If this behavior is unintended, I would be happy to submit a pull request to help fix it. Please let me know if this is something that can be addressed or if you need any additional information from me.

ionrover2 commented 5 months ago

This is absolutely crucial for me. I'm working in an entirely offline environment that does not have direct access to ANY sources. We have to move everything to an airgapped network.

While i can specify a specific version of the module sometimes i do need to use latest like when configuring VScode, the extension calls latest and fails because it cannot get the list. Even if this is not an intended behavior, having the option to enable it would be amazing.

matt0x6F commented 3 months ago

I think this issue correlates to #1676.