Producir Software de C�digo Abierto

Como Llevar a Buen Puerto un Proyecto de C�digo Libre

Karl Fogel

(Author)�

Rafael Martilotti

(Translator)�

Alejandro Ayuso

(Translator)�

Jos� Manuel Puerta Pe�a

(Translator)�

Pedro Andr�s Bonilla Polo

(Translator)�

Aldo Vadillo Batista

(Translator)�

Francisco Urbano Garc�a

(Translator)�

Christian L�pez Esp�nola

(Translator)�

Emilio Casbas Jimenez

(Translator)�

Hector Colina

(Translator)�

Jessica P�rez

(Translator)�

Dedicatoria

Este libro est� dedicado a dos queridos amigos sin los cuales esta obra no hubiera sido posible: Karen Underhill y Jim Blandy.

Tabla de contenidos

Prefacio
�Por qu� escribir este libro?
�Qui�n deber�a leer este libro?
Fuentes
Reconocimientos
Disclaimer
1. Introducci�n
Historia
El Florecimiento del Software Propietario y del Software Libre
Una resistencia conciente
Resistencia Accidental
"Libre" vs "Abierto"
La Situaci�n de Hoy
2. Primeros Pasos
Empezando Con lo Que se Tiene
Escoger un Buen Nombre
Poseer el nombre en los espacios de nombre importantes
Tener los objetivos claros
Declara Que el Proyecto es Libre
Lista de Caracter�sticas y Requerimientos
Estado del Desarrollo
El estado del desarrollo debe reflejar siempre la realidad.
Descargas
Control de versiones y Acceso al Bug Tracker
Canales de Comunicaci�n
Pautas de Desarrollo
Documentaci�n
Disponibilidad de la documentaci�n
Documentaci�n para Desarrolladores
Demos, Capturas de Pantalla, Videos y Ejemplos de Salidas
Hosting
Escogiendo una licencia y Aplic�ndola
Las licencias "Haz lo que quieras"
La GPL
C�mo aplicar una licencia a nuestro software
Ajustar el tono
Evitar discusiones privadas
Cortar de Ra�z la Mala Educaci�n
Practicar Revisiones Visibles del C�digo
Caso de Estudio
Se abierto desde el primer d�a
Esperar s�lo crea un evento de exposici�n
Al abrir un proyecto cerrado, hay que ser sensible acerca de la magnitud de los cambios
Anunciando
3. Infraestructura T�cnica
Lo que necesita un proyecto
Sitio Web
Hosting Enlatado
Selecci�n de un sitio de hosting enlatado
Alojamiento en una infraestructura completamente de c�digo abierto
El anonimato y la participaci�n
Listas de Correo / Foros de Mensajes
Elegir el software correcto para la gesti�n del foro
Prevenir el Spam
Identificaci�n y Administraci�n de cabeceras
El gran debate del Reply-To
Archivo
Control de Versiones
Vocabulario del Control de Versiones
Escoger un sistema de control de versiones
Utilizando el sistema de control de versiones
Versiones de todo
Navegabilidad
Las ramas para evitar cuellos de botella
Singularidad de la informaci�n
Autorizaciones
Correos de cambios
Seguimiento de errores
Interacci�n con las Lista de Correo
Pre-filtrado del gestor de fallos
IRC / Sistemas de Chat en Tiempo Real
Bots de IRC
Archivando IRC
Wikis
4. Infraestructura Social y Pol�tica
Dictadores Benevolentes
�Qui�n puede ser un Buen Dictador Benevolente?
Democracia basada en el Consenso
Control de Versi�n Significa que Uno Puede Evitar el Estr�s
Cuando No Se Puede Tener Consenso, Vote
Cuando Se Debe Votar
�Qui�n Vota?
Encuestas Versus Votaciones
Vetos
Tomando Nota de Todo
5. Dinero
Tipos de participaci�n
Contratos Indefinidos
Aparentar como muchos, no como uno
Se abierto sobre tus motivos
El dinero no te podr� comprar el amor
Contrataciones
Revisi�n y acceptaci�n de cambios
Caso de estudio: el protocolo de autenticaci�n-contrase�a en CVS
Financiando actividades fuera de programaci�n
Control de calidad (i.e., Examinaci�n profesional)
Aviso legal y protecciones
Documentaci�n y Usabilidad
Proveyendo Alojamiento/Ancho de banda
Marketing
Recuerda que estas siendo observado
No ataques proyectos de c�digo abierto que compitan on el suyo
6. Comunicaciones
T� eres lo que escribes
Estructura y formato
Contenido
Tono
Reconociendo la groser�a
Caras
Evitando los obst�culos corrientes
No env�es un correo sin un prop�sito
Hilos productivos vs Hilos Improductivos
Cuanto m�s blando sea el tema, m�s largo ser� el debate
Evitando las Guerras Santas
El efecto "Ruido Minoritario"
Gente dif�cil
Tratando con gente dif�cil
Estudio del caso
Manejando el crecimiento
Sobresaliente uso de los archivos
Trata todos los recursos como archivos
Tradici�n en la organizaci�n del contenido
Sin conversaciones en el bug tracker
Publicidad
Anunciando Vulnerabilidades de Seguridad
Recibiendo el informe
Desarrolla la soluci�n silenciosamente
N�meros CAN/CVE
Pre-notificacion
Distribuyendo la soluci�n p�blicamente
7. Empaquetado, Liberaci�n, y Desarrollo diario
Numeraci�n de versiones liberadas
Componentes del n�mero de versi�n liberada
La Estrategia Simple
La estrategia Par/Impar
Release Branches
Mechanics of Release Branches
Stabilizing a Release
Dictatorship by Release Owner
Change Voting
Managing collaborative release stabilization
Release manager
Packaging
Format
Name and Layout
To capitalize or not to capitalize
Pre-releases
Compilation and Installation
Binary Packages
Testing and Releasing
Candidate Releases
Announcing Releases
Maintaining Multiple Release Lines
Security Releases
Releases and Daily Development
Planning Releases
8. Coordinando a los Voluntarios
Conseguir el M�ximo de los Voluntarios
Delegar
Distingue claramente entre pedir y asignar
Supervisar despu�s de delegar
F�jate en lo que se interesa la gente
Halagos y Cr�ticas
Prev�n la Territorialidad
El Ratio de Automatizaci�n
Comprobaciones Autom�ticas
Treat Every User as a Potential Volunteer
Meeting In Person (Conferences, Hackfests, Code-a-Thons, Code Sprints, Retreats)
Share Management Tasks as Well as Technical Tasks
Patch Manager
Translation Manager
Documentation Manager
Issue Manager
FAQ Manager
Transiciones
Committers
Choosing Committers
Revoking Commit Access
Partial Commit Access
Dormant Committers
Avoid Mystery
Credit
Forks
Handling a Fork
Initiating a Fork
9. Licencias, Copyrights y Patentes
Terminolog�a
Aspectos de las licencias
La GPL y compatibilidad entre licencias
Eligiendo una licencia
La MIT / X Window System License
La GNU General Public License
�Es la GPL libre o no?
�Qu� tal la licencia BSD?
Asignaci�n y propiedad del Copyright
No hacer nada
Contributor License Agreements
Transferencia de Copyright
Concesi�n de licencias dual
Patentes
Recursos adicionales
A. Sistemas de Control de Versiones Libres
B. Gestor de fallos libres
C. Why Should I Care What Color the Bikeshed Is?
D. Ejemplo de Instrucciones para Informar sobre Fallos
E. Copyright