==== Background
At this moment we have six micro-services working fine but there is no unifying regarding which version of common dependencies we use per service and even the Go version we use for all of them. We should use the same version for all dependencies and the same Go version for all services.
For example (this is not a comprehensive list):
- according to the base image we use, we are using go 1.19 and [[https://docker-registry.wikimedia.org/golang1.21/tags/|1.21 is already available in the wikimedia docker registry]]
- device, page, media, editor and edit are configure with 'use 1.15' and geo with 1.19 (If I'm not wrong this is due to a specific library we needed here). Should we unify this?
- geo has a deprecated dependency (`github.com/golang/protobuf`)
- some services are using `github.com/gorilla/mux` 1.8.0 but others are using 1.7.4
- In some services (edit-analytics, for example) we are using a deprecated function `ioutil.ReadFile` in the `api_spec_handler.go` file
==== Acceptance criteria
[] We have decided which version we are going to use for all dependencies included in all services (would we need some criteria to keep updated all these dependencies?)
[] We have decided an specific Go version for all services (and we have decided how to keep it updated)
[] We have made needed changes in all services (a separate task is available per service)
==== Notes
- dependencies per service:
- [[https://gerrit.wikimedia.org/r/plugins/gitiles/generated-data-platform/aqs/device-analytics/+/refs/heads/main/go.mod|device-analytics]]
- [[https://gerrit.wikimedia.org/r/plugins/gitiles/generated-data-platform/aqs/page-analytics/+/refs/heads/main/go.mod|page-analytics]]
- [[https://gerrit.wikimedia.org/r/plugins/gitiles/generated-data-platform/aqs/media-analytics/+/refs/heads/main/go.mod|media-analytics]]
- [[https://gerrit.wikimedia.org/r/plugins/gitiles/generated-data-platform/aqs/geo-analytics/+/refs/heads/main/go.mod|geo-analytics]]
- [[https://gerrit.wikimedia.org/r/plugins/gitiles/generated-data-platform/aqs/edit-analytics/+/refs/heads/main/go.mod|edit-analytics]]
- [[https://gerrit.wikimedia.org/r/plugins/gitiles/generated-data-platform/aqs/editor-analytics/+/refs/heads/main/go.mod|editor-analytics]]
- According to the `blubber.yaml` file, it seems we are using Go 1.19 in production (`base: docker-registry.wikimedia.org/golang1.19:latest`)
- //Minor releases to address problems (including security issues) for Go 1.x stop once Go 1.x+2 is released// (extracted from https://go.dev/wiki/Go-Release-Cycle)
- [[https://wikimedia.slack.com/archives/C05FLGR3MCJ/p1709661714334319|Slack conversation]] about how Go base images are updated and how we can update AQS 2.0 services to use them