Company
Date Published
Author
Leon Stigter
Word count
697
Language
English
Hacker News points
None

Summary

Go, a popular programming language, has historically faced challenges with package versioning, prompting the development of tools like gb and glide before the introduction of the official Go Modules in Go 1.11. Go Modules were designed to address issues such as dependency management and the cumbersome practice of vendoring, while also introducing the GOPROXY environment variable for managing module downloads via a proxy. However, the current implementation of GOPROXY is limited, requiring all dependencies to be resolved from the proxy, which can cause failures if any are missing. A proposed solution involves allowing fallback options where some modules can be downloaded from the proxy and others from version control systems, which would enhance the system's flexibility. This approach would also enable developers to upload modules to the proxy, ensuring they are accessible for future use without repeated downloads, a feature that would significantly improve Go Modules' effectiveness for companies with restricted internet access for CI servers. The JFrog CLI exemplifies this logic, but there is a consensus that such functionality should be integrated into the language itself for optimal developer experience.