Leer las notas de la versión como un Tech Lead
Las notas de la versión son el registro de riesgo de actualización para Go.
Busca en todas las páginas de la documentación
Las notas de la versión son el registro de riesgo de actualización para Go.
Esta hoja de trucos convierte un documento de 30 páginas de Go 1.x en decisiones que tu equipo puede programar, probar y revertir.
go.dev/doc/go1.N.| Sección | Qué extraer | Acción del SME |
|---|---|---|
| Introducción | Plataformas soportadas que se eliminan | Actualiza las imágenes base y los runners de CI |
| Lenguaje | Nueva sintaxis, reglas más estrictas | Planifica el aumento de la directiva go |
Herramientas (go command) | Cambios en go fix, go mod, vet | Actualiza los scripts de CI |
| Runtime / GC | Colector, planificador, experimentos | Realiza pruebas canarias de p99 y CPU de GC |
| Compilador / Enlazador | Asignación de pila, diseño de secciones | Vuelve a probar cgo/herramientas de análisis estático |
| Biblioteca estándar | Comportamiento que rompe la compatibilidad (aproximadamente), deprecaciones | Busca en la base de código los paquetes afectados |
| Puertos | Eliminación de SO/arquitectura | Elimina los objetivos de compilación EOL |
go (por ejemplo, new(expr) en 1.26).//go:build go1.N para archivos que no están listos para actualizar la directiva a nivel de módulo.libs/* compartidas se mantienen una versión menor por detrás de services/*.go fix se aplican (go tool fix help).nogreenteagc; anota la línea de tiempo de eliminación (1.27).CGO_ENABLED=1.GOEXPERIMENT=goroutineleakprofile opcional para experimentos en staging./sched/* para dashboards.go en N-1 por defecto; alinea explícitamente con la política de la organización.go tool doc eliminado en 1.26; corrige la documentación y los scripts.| Elemento | Ejemplo 1.26 | Prueba |
|---|---|---|
| Valores predeterminados de TLS | KEX híbrido PQ activado por defecto | Suite de handshake de cliente heredada |
| crypto/rand | Ignora lectores rand personalizados | Las pruebas deterministas usan cryptotest |
| url.Parse | Reglas de dos puntos más estrictas en el host | Configura URLs con hosts inusuales |
| ReverseProxy | Director obsoleto en favor de Rewrite | Audita el código de la puerta de enlace |
| redirecciones de mux http | 307 en lugar de 301 para barra diagonal final | Rutas sensibles a la caché y al SEO |
# Paquetes que usas y que aparecen en las notas de la versión - ejemplo de grep
rg -l 'net/http/httputil|crypto/tls|encoding/json' --glob '*.go'
# Símbolos obsoletos mencionados en las notas
rg 'ReverseProxy\.Director|interface\{\}' --glob '*.go'
# GODEBUG en el repositorio
rg 'GODEBUG' --glob '*.{go,sh,yml,env*}'| Puerta | Criterios de aprobación | Responsable |
|---|---|---|
| G0 Lectura | Borrador de ADR con secciones marcadas | Tech lead |
| G1 Compilación | go test -race ./... en todos los módulos | Equipos de servicio |
| G2 Modernización | go fix confirmado, go vet limpio | Plataforma |
| G3 Staging | 24h de rodaje, GC y p99 dentro del presupuesto | SRE |
| G4 Canary | 5-10% del tráfico, presupuesto de errores en verde | SRE + lead |
| G5 Promoción | Elimina las anulaciones temporales de GOEXPERIMENT | Tech lead |
| Clave GODEBUG | Predeterminado en 1.26 | Objetivo de eliminación | ¿Lo usamos? |
|---|---|---|---|
tls10server | desactivado (mínimo TLS 1.2) | Go 1.27 | |
urlstrictcolons | activado | reversión con =0 | |
gotypesalias | Alias de tipos siempre | Go 1.27 | |
cryptocustomrand | desactivado | restauración temporal =1 |
# Revertir etiqueta de imagen
kubectl set image deploy/api api=api:go1.25.6
# Reversión solo de GC (mismo binario Go 1.26)
GOEXPERIMENT=nogreenteagc ./api
# Reversión de lenguaje (requiere reconstrucción)
# go.mod: go 1.25.0 && go mod tidy && reconstruir60-90 minutos para una versión menor si eres responsable de varios servicios.
Lee primero la introducción y los puertos, luego lee en profundidad runtime, crypto y los paquetes que importas.
Lee las notas de parche para CVE de seguridad y correcciones críticas de runtime.
La lista de verificación completa suele ser solo para versiones menores, a menos que el parche mencione tus paquetes.
Aun así, lee las secciones de runtime/GC y crypto/TLS.
Los servicios con CGO_ENABLED=0 siguen afectados por el GC y los valores predeterminados de crypto/tls.
Plataforma o un campeón de actualización rotativo.
Divide por analizador en repositorios grandes para mantener la carga de revisión manejable.
Las notas de la versión anuncian correcciones; govulncheck te dice si las rutas de la biblioteca estándar vulnerables son alcanzables en tus binarios.
Ejecuta ambos durante la semana de actualización.
A menudo sí para servicios con uso intensivo de CPU, después de la validación canaria.
Es un cambio de rendimiento, no una razón para omitir las pruebas funcionales.
Anclajes https://go.dev/doc/go1.N#section y números de incidencia de las notas.
Evita enlazar solo publicaciones de blog; las notas son canónicas.
Compara los elementos interesantes de las notas con el estado de go.dev/issue.
Las propuestas rechazadas explican las características que no llegarán pronto.
Cuando los parches de seguridad se aplican retroactivamente y los cambios en tiempo de ejecución no afectan tu perfil.
Documenta la deuda aceptada en el ADR con fecha de revisión.
No.
Las notas te dicen qué medir; las pruebas canarias lo demuestran para tus cargas de trabajo.
Versiones de pila: Esta página fue escrita para Go 1.26.x (Green Tea GC predeterminado, modernizadores de go fix - verifica el parche en la compilación), chi (última versión - verifica en la compilación), gin (última versión - verifica en la compilación), echo (última versión - verifica en la compilación), google.golang.org/grpc (última versión - verifica en la compilación), sigs.k8s.io/controller-runtime (última versión - verifica en la compilación), kubebuilder (última versión - verifica en la compilación), tinygo (última versión - verifica los objetivos de la placa en la compilación), wazero (última versión - verifica en la compilación) y golangci-lint (última versión - verifica el conjunto de linters en la compilación).
Revisado por Chris St. John·Última actualización: 16 jul 2026