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 programació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-del-paquete@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 bug-gnu-utils@gnu.org, 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 (mbox archives can be downloaded by HTTPS), 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 www.gnu.org. Es muy recomendable que los paquetes de GNU usen https://www.gnu.org/software/nombre-del-paquete 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 https://ftp.gnu.org/gnu, 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 https://alpha.gnu.org/gnu.

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 gsrcmantienen 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, GNU make, etc.).

Actualmente puede construir software en GNU/Linux (i686 y 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 SUCCEEDED a FAILED). Cuando un proceso de construcción falla, sus logs y el árbol de construcción son accesibles desde la interfaz web; este último 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 GNU Patch. Le invitamos a solicitar orientación en <hydra-users@gnu.org>.

Después de preparar su receta de construcción, envíe un correo a hydra-users@gnu.org 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. Para más información, véase el manual de Nix.

platform-testers: Pruebas manuales de portabilidad

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.