Go modules, Go's official solution to dependency management, have been on by default since Go 1.16. Per the docs and the output I see when running cf push, the buildpack still contains several dependency management solutions that predate modules:
- Godep, archived on Github since 2019
- Glide, not updated since 2019
- dep, deprecated and archived since 2020
Additionally, the buildpack checks for a vendor folder, but go modules does not vendor dependencies by default; instead, it downloads dependencies go $GOPATH/pkg/mod. Vendoring is still possible, but in practice, I see few projects do it.
I propose removing the old dependency management solutions in favor of Go modules, and propose detecting the Go buildpack by checking for the presence of a go.mod file.