🔗 Anatomy of a Go module proxy
The Go packaging story started many years ago with GO15VENDOREXPERIMENT
and
a myriad of tools for managing dependencies. And, annoyingly GOPATH
was one
of the main obstactles for people getting started with Go. Since Go
1.11, we have experimental support for
Go modules.
A new component related to modules is the module proxy. A bit of history, internals and pitfalls has been compiled by klingtnet into a great talk.
Go Module Proxy - Internals and Pitfalls. The repository for can be found at golang-leipzig/module-proxy-november-meetup.
Proxies are great, as they lower the load on source repository hosts and can
prevent events like left-pad (2016). However, there is
a slight potential information leak when the Go tools contact
proxy.golang.org - the GOPRIVATE
environment
variable can
help.
Advantages, implementations and the proxy protocal details can be found in the slides.
Also, thanks klingtnet for liberating an slightly strange zip implementation from the depths of the Go module proxy implementation!
- This issue started the conversation: golang/go/issues/34953
- And a few weeks later, we have: golang.org/x/mod/zip
🔗 Pull Request Deployment
Everyone needs this. When a change to a codebase is made, how great would it be to just see that single change, e.g. for a given pull request? That’s what this pull request deployment tool does. While the tool itself is tied to company context, panzerdev condensed the workings of the tool into these slides:
Motivation:
- Code changes in a branch should be tested in isolation based on latest master
- Testing of not yet approved changes shouldn’t change shared datasource (DB)
- Multiple code changes shouldn’t share a datasource (DB) simultaniously
- Should be gone after merge without leftover junk
Read the slides, get inspired, join us next time - and: automate all the things!
🔗 Misc
- Go turned 10 this month - Happy Birthday and thanks for bringing fun back into programming!
- A new site emerged: pkg.go.dev/
Go.dev is a companion website to golang.org. Golang.org is the home of the open source project and distribution, while go.dev is the hub for Go users providing centralized and curated resources from across the Go ecosystem.
- GOLAB 2019 in Florence, Italy was great - a truly international conference with over 2/3 of the people coming from all over the world!
- For upcoming conferences, consult the wiki: Go Conferences and Major Events