Esta es una traducción de la página original en inglés.
Recursos para el desarrollo de GNU
Esta página describe muchos de los recursos de desarrollo disponibles para
los desarrolladores de GNU en máquinas del proyecto GNU. Para obtener más
detalles de los privilegios y responsabilidades de los encargados del
mantenimiento de paquetes de GNU, véase el documento de Información para los encargados del mantenimiento de
paquetes de GNU y también siga las Normas
de codificación de GNU. También puede ser interesante leer las Recomendaciones para los encargados
del mantenimiento de los paquetes de GNU y ¿Qué significa que un programa es un
paquete de GNU?
Con la abundancia de computadoras económicas que pueden ejecutar GNU/Linux, y también con la mayor
disponibilidad de acceso a Internet, muchos voluntarios de GNU hoy tienen
todas las instalaciones informáticas que necesitan. Sin embargo, todavía
existen ventajas en tener computadoras centrales donde los voluntarios de
GNU puedan trabajar juntos sin tener que hacer que sus propias máquinas sean
accesibles a los demás.
Por este motivo, la Free Software Foundation recomienda enérgicamente a los
proyectos de software de GNU usar máquinas en gnu.org
como una
base central. Usar estas máquinas también beneficia indirectamente al
Proyecto GNU, al incrementar la percepción pública sobre GNU y al esparcir
la idea de trabajar juntos para el beneficio de todos.
Savannah y el control de versiones
Si está desarrollando un paquete oficial de GNU le recomendamos firmemente
que use un repositorio de control de código público en Savannah, el servidor de GNU para
hospedaje. Para ello primero debe crear su propia
cuenta y luego registrar su
paquete de GNU. Una vez creada podrá elegir un sistema de control de
versiones, crear páginas web para su paquete, gestionar permisos para los
colaboradores de las páginas y muchas otras funciones.
Listas de correo
Mantenemos listas de correo para paquetes de software de GNU cuando se
necesiten, incluyendo tanto listas administradas a mano como listas
administradas automáticamente.
Cuando un paquete de GNU se registra en Savannah, una interfaz web permite a los
desarrolladores crear y administrar las listas de correo dedicadas a su
paquete.
Cada de paquete de GNU nombre debe tener por lo menos una lista
para informar sobre errores con el nombre canónico
bug-nombre@gnu.org
, más cualquier otro alias que pueda
ser útil. Al usar Savannah, puede crear listas para su paquete con nombres
como éste. Algunos paquetes comparten la lista [email protected], pero
ahora incentivamos a que los paquetes abran sus propias listas individuales.
Los paquetes pueden tener otras listas para anuncios, pedir ayuda, publicar
código fuente, discusión entre los usuarios, o cualquiera que el encargado
del mantenimiento del paquete considere útil.
Los archivos de las listas de correo administradas automáticamente están
disponibles en lists.gnu.org (archivos mbox disponibles con rsync y ftp), como así también a través del gestor
de listas. Los archivos para las listas administradas manualmente
generalmente se guardan en /com/archive
en las máquinas de GNU.
Cuando una lista de correo se vuelve lo suficientemente grande como para
justificarlo, podemos crear un grupo de noticias gnu.*
con un
enlace mutuo a la lista de correo.
Páginas web
El servidor web maestro de GNU es http://www.gnu.org/. Es muy recomendable que
los paquetes de GNU usen http://www.gnu.org/software/package
como su página de inicio primaria.
Usando Savannah, los desarrolladores pueden crear y mantener sus propias
páginas en esa dirección web mediante un «repositorio web» CVS, separado del
repositorio principal de código del paquete (para el cual se puede usar
cualquier sistema para el control de versiones soportado). Más información sobre el
mantenimiento de las páginas web de GNU.
FTP
El sitio ftp primario para el software de GNU es http://ftp.gnu.org/
, que tiene
espejos en todo el mundo. Recomendamos
firmemente que todos los paquetes de GNU suban lo que publique en ese ftp
(además de cualquier otra ubicación que considere conveniente).
Usamos un servidor diferente para los lanzamientos de prueba, para que las
personas no los instalen pensando que están listos para el público. Dicho
servidor es ftp://alpha.gnu.org/
.
El documento de Información para los encargados del mantenimiento de paquetes de GNU
contiene los detalles completos para el proceso de carga por FTP, que es el
mismo para ambos servidores.
Cuentas de acceso
Brindamos acceso a las máquinas de GNU mediante una consola de inicio de
sesión a las personas que lo necesiten para trabajar en software de
GNU. Tener una cuenta de acceso personal es un privilegio y a la vez una
responsabilidad, y debe usarse solamente para el trabajo en GNU. Las Instrucciones para obtener acceso a las
máquinas se encuentran en otra página.
En la máquina general para iniciar sesión, los desarrolladores del paquete
gsrc mantienen organizadas por categorías las
versiones actuales de los paquetes de GNU (/gd/gnu/gnusys/live),
compiladas a partir de su código fuente original. Para usarlo, la fuente es
/gd/gnu/gnusys/live/setup.
También puede usar una
cuenta de GNU para el correo electrónico.
Hydra: Construcciones continuas y pruebas de portabilidad
Las herramientas de construcción continua (con frecuencia denominadas
herramientas de integración continua) permiten encontrar los errores de
programación poco después de que se introducen en un proyecto de software,
lo cual es particularmente útil para el software desarrollado de forma
colaborativa.
Hydra es una herramienta libre de
construcción continua basada en el gestor de paquetes Nix. Los administradores de la instancia de Hydra en la Universidad
Tecnológica de Delft han ofrecido generosamente espacios para el Proyecto
GNU. Los proyectos en Hydra se reconstruyen en cada commit o
cambio en sus dependencias, lo que ocurra primero (las dependencias
incluyen el entorno de desarrollo estándar que se use, que contiene
en sí mismo las versiones recientes publicadas de GCC, make de GNU, etc.).
Actualmente puede construir software en GNU/Linux (i686 and
x86_64), así como en FreeBSD, Darwin, Solaris y Cygwin, y puede
compilar de forma cruzada para GNU/Hurd, GNU/Linux en otras arquitecturas y
MinGW. Puede proporcionar informes sobre el código generados mediante
LCOV. Además de los paquetes de código fuente y los paquetes de Nix, puede
construir paquetes para las distribuciones basadas en deb
y
RPM
. Los paquetes se pueden construir en base a las últimas
versiones de sus dependencias. Por ejemplo, GnuTLS se construye usando GNU
libtasn1 y GNU libgcrypt se construye en correspondencia con su última
revisión.
Además de la interfaz web,
Hydra puede enviar notificaciones por correo electrónico cuando cambia el
estado de la generación de un proyecto (por ejemplo, de
SUCCEDED
a FAILED
). Cuando un proceso de
construcción falla, sus logs y el árbol de construcción son
accesibles desde la interfaz web; esto permite inspeccionar los ficheros
generados (por ejemplo, config.log
o
testsuite.log
), lo que proporciona indicios para la depuración.
Cualquier paquete de software de GNU puede solicitar un espacio en
Hydra. Cada paquete debe proporcionar su propia «receta de construcción»,
escrita en el lenguaje Nix (una expresión de Nix). Las expresiones de
Nix para los proyectos de GNU están disponibles a través de Git. Para
proyectos simples que usan herramientas de construcción estándar de GNU como
automake y autoconf, la receta es por lo general bastante simple. Véase por
ejemplo la receta
para un parche de GNU. Le invitamos a solicitar orientación en [email protected].
Después de preparar su receta de construcción, envíe un correo a [email protected]
y solicite que le incluyan en Hydra. Asegúrese también de inscribirse como
miembro del proyecto hydra-recipes
en Savannah. Así podrá personalizar la construcción de su proyecto
directamente.
Para obtener información técnica sobre Hydra, consulte el manual
de Hydra (PDF).
Para más información, véase el manual
de Nix y el manual
de Nixpkgs.
Otra opción útil para las pruebas antes de la publicación es la lista de
distribución platform-testers. Dependiendo del tiempo
disponible, la gente de esta lista construye a petición versiones previas
para una amplia variedad de plataformas (¡se necesitan voluntarios para las
pruebas! Apúntese a la lista y empiece a participar).
Contrariamente a la herramienta Hydra antes descrita, en la lista
platform-testers se trabaja manualmente, de modo que cada
método tiene sus ventajas e inconvenientes. Además, el equipo de
platform-testers dispone de una variedad de plataformas y
compiladores más amplia que la configuración de Hydra.
Así pues, si dispone de software que todavía no ha publicado, puede escribir
a la lista de distribución indicando: (1) la URL del tarball, (2) la fecha
prevista de publicación y (3) la dirección de correo donde se deben enviar
los informe de construcción. Los informes y las construcciones las realizan
manualmente los voluntarios de la lista.