Stream Is Deprecating Virtual Go â Itâs Time to Move to Go Modules
Blog post from Stream
Stream initially developed the "virtualgo" (vg) library to address the lack of effective dependency management in Go, which was a significant concern when they transitioned from Python to Go for their backend infrastructure. As Go has evolved, particularly with the introduction of native Go modules in version 1.11, many of the previous challenges related to dependency management have been resolved, offering features such as semver enforcement, immutability, and a checksum database. Although initially hesitant due to limited library support, Stream was able to fully migrate to Go modules by mid-2019, simplifying their development process and eliminating the need for certain build optimizations. While vg will remain available on GitHub, Stream encourages developers to adopt Go modules for their superior functionality and community support. The transition was straightforward for Stream, leveraging the go mod tool to convert dependency manifests from their previous setup with vg and dep.