Avatar ·

¿Cómo actualizar correctamente paquetes de terceros en Go? (go get, go mod tidy)

¡Hola a todos! Acabo de empezar a aprender Go y vengo de JavaScript, donde para actualizar paquetes simplemente escribimos `npm update`. En Go estoy un poco confundido. Tengo un proyecto en el que uso varias librerías de terceros, por ejemplo `github.com/gorilla/mux` y `github.com/jmoiron/sqlx`. Las agregué mediante `go get`, y en `go.mod` aparecieron entradas con versiones. Ahora quiero actualizar estos paquetes a las últimas versiones, pero no entiendo cómo hacerlo correctamente. Intenté escribir `go get -u`, pero parece que actualiza todo indiscriminadamente y empecé a tener problemas de compatibilidad. También he oído hablar de `go mod tidy`, pero no estoy seguro de para qué sirve: ¿solo limpia basura o también actualiza? Además, me desconcierta que en `go.sum` hay montones de hashes, y tengo miedo de romperlos accidentalmente. Por favor, indíquenme cuál es la secuencia correcta de acciones para actualizar un paquete específico (por ejemplo, solo `gorilla/mux`) y no todo a la vez. ¿Y cómo revertir si algo se rompe después de la actualización? Ejemplo de mi `g