Contribuir a Go sin morir en el intento.
Además de intimidante, hacer una contribución por primera vez en cualquier proyecto de cóidgo abierto suele ser complicado (aunque no lo sea), o por lo menos para mí suele ser así. Más cuando se trata del código fuente de un lenguaje de programación, que normalmente tiene a un equipo de genios trabajando sobre él y sus flujos de trabajo suelen ser complejos.
Para el caso de Go, hay una página de la documentación oficial que se enfoca en explicar los pasos para realizar contribuciones y hacer de este trabajo una tarea más amigable, por lo que gran parte de las instrucciones que se encuentran aquí son extraídas o están inspiradas en ella.
Requisitos
Antes de empezar a trabajar, es bueno tener una idea de como se desarrolla el proceso de contribución para no sentir que todo funciona por arte de magia y que hay crear cuentas en sitios específicos solo porque la guía lo dice.
Cada versión estable de Go tiene un ciclo de desarrollo de seis meses, de los cuales los primeros tres tienen como meta recibir todos los cambios posibles, y durante los tres meses restantes solo se recibirán arreglos de fallas o mejoras en la documentación; para obtener más detalles sobre el ciclo de desarrollo, es recomendable ir a esta página.
El repositorio oficial del proyecto está alojado en https://go.googlesource.com/go,
la rama master
es la que recibe todo el código que será utilizado para
generar la próxima versión estable; antes de llegar ahí, el código debe ser
auditado por miembros de la comunidad, esto se hace desde https://go-review.googlesource.com;
una vez auditado, dependiendo de la fecha y de cuanto afecten al lenguaje, los
nuevos cambios son mezclados y esperan para ser liberados al final del ciclo de
desarrollo activo; el estado actual del proyecto puede verse desde https://build.golang.org.
Iniciar sesión en https://go.googlesource.com, hacer clic en Generate Password y seguir las instrucciones.
Firmar el Contributor License Agreement (CLA).
Git.
La última versión estable de Go instalada.
Instalar Go es bastante sencillo, con solo seguir unas pocas instrucciones cualquiera puede hacerlo.
- El código fuente. Se puede clonar desde el repositorio oficial o GitHub.
$ git clone https://go.googlesource.com/go
- Instalar dos herramientas que facilitan algunas de las tareas durante el desarrollo.
git-codereview
Permite usar Git para enviar los cambios al Gerrit de Go.
$ go get -u -v golang.org/x/review/git-codereview
En la sección Realizar cambios muestro los comandos básicos, pero si se quiere conocer más sobre esta herramienta se puede ver su ayuda ejecutando el siguiente comando:
$ git codereview help
go-contrib-init
Verifica el entorno de desarrollo y determina si hacen falta algunas configuraciones.
$ go get -u -v golang.org/x/tools/cmd/go-contrib-init
Realizar cambios
1. Ir al código fuente de Go.
$ cd go
2. Verificar que esté actualizado y funcione correctamente.
$ git checkout master
$ git pull origin master
$ (cd src/ && ./all.bash)
3. Crear una rama.
$ git checkout -b fix-1234
4. Hacer los cambios.
Si se modifica el código, todo archivo creado debe tener el texto de licencia.
// Copyright YYYY The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
Toda funcionalidad agregada o modificada debe ser probada.
$ unset GOROOT
$ export GOROOT_BOOTSTRAP="$(go env GOROOT)"
$ go-contrib-init
$ cd src
$
$ # Para ejecutar solo algunas pruebas
$ export OLD_GOPATH="$(go env GOPATH)"
$ export GOPATH="$(dirname "$PWD")"
$ ./make.bash
$ "$GOPATH/bin/go" test -run '^TestHostHandlers$' -v net/http
$
$ # Para ejecutar todas las pruebas
$ ./all.bash
5. Confirmar los cambios.
$ git add .
$ git codereview gofmt
$ git codereview change
Este comando solicitará un mensaje para la confirmación, que debería ser algo como:
PAQUETE: descripción corta que complete "This change modifies Go to ___."
Descripción detallada que responda "¿Por qué se hace la
modificación?" y que no sobrepase los 72 caracteres por línea.
Fixes: #123
Si se debe hacer una modificación después de confirmar, simplemente se repite este paso.
6. Verificar que el código esté actualizado.
$ git codereview sync
Si hay cambios deben ejecutarse nuevamente las pruebas.
7. Publicar los cambios para que sean auditados.
$ git codereview mail
Si se debe hacer una modificación después de la auditoria, simplemente se repiten los pasos desde el número 4.
Atribuciones
Go Team. Contributing Guide. https://golang.org/doc/contribute.html
Políticas de privacidad
Este sitio web no usa cookies de terceros para rastreo!
Si ud usa productos privativos, preocuparse por la privacidad y usar estos productos es como preocuparse por el calentamiento global y no reciclar.. Así que simplemente no lo haga.. 😒