ingenieria Cómo iniciar un proyecto de software libre
Por François Marier:
Empezar un proyecto de software libre y ponerlo a disposición de la
comunidad puede ser confuso la primera vez para los desarrolladores de
software. Sin embargo, hay un par de cosas que vale la pena saber, que
te ayudarán a atraer a más usuarios y a incrementar la probabilidad de
que tu software sea parte de una distribución libre como Debian.
Idea, nombre y licencia
Lo más importante es que un proyecto de software libre empieza con una
idea. Ésa es la razón por la cual escribes el software en un primer
momento. La cosa se empieza a poner interesante cuando piensas que tu
software le podría ser útil a otras personas. Aquí es cuando deberías
empezar a pensar en compartir tu código.
Desde luego que una de las primeras decisiones que necesitarás hacer es
elegir un nombre para tu proyecto. Seguro que esta es una decisión muy
personal, pero si estás luchando por encontrar algún nombre excitante y
a la moda, puedes considerar escoger algo que:
* ya no esté en uso,
* que sea fácil de recordar y
* que dé una idea de lo que va el proyecto.
Otra decisión que necesitas tomar antes de tu primera liberación es la
licencia. Puede que esto no te sea familiar o interesante pero te
recomiendo encarecidamente que consideres cuidadosamente tus opciones,
pues la elección de tu licencia puede influir en el tipo de comunidad
que se formará en torno a tu proyecto.
Liberación pública
Hacerle publicidad a tu proyecto puede ser tan simple como dejar caer un
tarball (NdT: denominación de archivos comprimidos en tar) en una lista
de correo. De todas formas, si quieres que se enteren de tu proyecto
todos los usuarios a los que les podría ser útil, hay unas cuantas cosas
que podrías querer hacer.
Una de estas cosas es darle un sitio en internet a tu proyecto. Esa
página debería dar acceso a todos los servicios relacionados con tu
proyecto. Tales servicios generalmente incluyen un control de las
fuentes, un servicio de reporte de fallos, listas de correo y un área de
archivos. Tengo algunas ideas de lo que la página debería contener más
adelante pero lo primero es lo primero, así que echémosle un vistazo a
lo que debería contener el tarball.
Contenidos del tarball
La mayoría de la gente que descargue tu código fuente serán tanto los
usuarios finales como los mantenedores de distribuciones. Esto es lo que
estarán buscando:
* Código fuente completo incluidos los archivos de datos necesarios
para usar tu software.
* Guía de instalación, explicando cómo compilar e instalar tu
proyecto en una de las plataformas soportadas. Generalmente a este
archivo se le pone el nombre de INSTALL.
* Una guía de inicio rápido. Generalmente es parte del contenido
del README y debería proveer a los nuevos usuarios de todos los comandos
o instrucciones para trabajar con tu software en uno o dos minutos.
* Una copia completa de los términos de la licencia, generalmente
en el archivo denominado COPYING.
* Información de contacto para las ayudas o contribuciones. Los
pequeños proyectos compartirán, generalmente, la dirección de correo del
autor principal y un enlace a la página del proyecto, si está
disponible. Tradicionalmente esta información se localiza en el archivo
AUTHORS o directamente en el README.
Esto es poco más de lo mínimo que necesitas proveer en la liberación de
tu código para que sea útil y legalmente distribuido por otras personas.
Hay unas cuantas cosas más que deberías tener en cuenta si quisieras
incrementar la probabilidad de que tu software se incluya en una
distribución de software libre.
Después de juntar todo esto, deberías estar listo para la liberación
pública inicial de tu proyecto y dar el siguiente paso: apoyando a tu
creciente comunidad.
* Fuentes:
o
http://feeding.cloud.geek.nz/2008/09/starting-free-software-project.html
libre Escoger la licencia apropiada para tu proyecto de software libre o
código abierto
Por François Marier:
Escribir el software sólo es una parte del éxito de un proyecto de
software libre. Si quieres construir una comunidad en torno a tu
proyecto preferido, hay algunos asuntos importantes que necesitas hacer
pero que, típicamente, caen fuera del trabajo de «hacer código». Una de
estas tareas es escoger una licencia.
La elección de una licencia es muy personal por implicar poner por
escrito los permisos y protecciones que quieres para tu código. Sin
embargo, tu elección tendrá varias implicaciones.
«Una licencia puede arruinar una perfecta porción de software»
Jon Stevens
Siempre que sea posible, trata de evitar:
1. escribir tu propia licencia
2. escoger una licencia incompatible con la GPL
Para asegurar que tu proyecto se puede incluir en una distribución de
software libre como Debian, y hacer que tu código sea lo más útil
posible para los demás, es muy recomendable que escojas una licencia
estándar. Las más comunes son: GPL, LGPL, licencia BSD Modificada y la
licencia Apache. Puedes encontrar una lista más exhaustiva en la página
de la Free Software Foundation.
La comunidad entiende bien las licencias comunes y éstas han superado la
prueba del tiempo. Su compatibilidad con otras licencias también está
muy clara. Esto es importante si quieres que tu código pueda ser usado
en otros proyectos, pero también si quieres incluir código de otras
fuentes en el tuyo.
Las licencias estándar también están mejor comprendidas en el ámbito
internacional. La última versión de la GPL, por ejemplo, fue revisada
por abogados de todo el mundo. En cualquier caso, no es probable que te
importe tal nivel de control. Si crees que las licencias existentes no
satisfacen tus necesidades, escribe a [email protected] para discutir tu
situación y evitarte problemas.
Tomate un tiempo para familiarizarte con las licencias comunes y luego
decide qué protecciones le quieres dar a tu código. A continuación,
añádele esto a tu tarball antes de publicar tu código fuente en internet:
1. una copia de la licencia
2. una clara declaración de derechos de autor (copyright) en un
archivo como el README
Aquí tienes un ejemplo de declaración de derechos para una porción de
software bajo la última versión de la GNU General Public License: (NdT:
La dejo en inglés por ser la forma más común de encontrarla)
«Email-Reminder - Receive emails for events like birthdays and
anniversaries Copyright (C) 2004-2008 by Francois Marier ([email protected])
This program is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation, either version 3 of the License, or (at your
option) any later version.
This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
Public License for more details.
You should have received a copy of the GNU General Public License along
with this program. If not, see http://www.gnu.org/licenses/ .»
Esto obliga a los distribuidores y contribuidores a establecer
explícitamente la versión de la licencia, así como el nombre y datos de
contacto del titular del derecho de autor.
* Fuentes:
o
http://feeding.cloud.geek.nz/2008/05/choosing-right-license-for-your-new.html
anuncio Promocionando tu proyecto de software libre
Por François Marier:
Después de gastar una considerable cantidad de tiempo liberando tu
proyecto de software libre al público, probablemente querrás estar
seguro de que llegue a la mayor cantidad de gente posible y así, ser de
mayor utilidad. Aquí tienes algunas cosas por las que puedes empezar.
Página web: ¿Es este software para mi?
La primera cosa en la que probablemente pensarás es en crear una página
web para promocionar tu proyecto. Hay muchos consejos por los que te
puedes guiar para crear una página web efectiva, pero aquí me centraré
en los contenidos que deberías incluir.
Los pantallazos son uno de los elementos más importantes que puedes
incluir en tu página. Los que te visiten por primera vez sólo gastarán
unos segundos antes de decidir si la información les interesa o no.
Tienes que ser capaz de resumir en unas cuantas imágenes la temática de
tu proyecto.
¿Estarías dispuesto a leer extensas páginas o a seguir muchas
instrucciones sólo para enterarte de que el software no se adapta a tus
necesidades? Probablemente no. Asegúrate de que puedes ayudar a los
usuarios a que capten la idea en unos segundos, aunque ni siquiera tu
software tenga una interfaz gráfica.
Seguramente también querrás describir el proyecto en pocas palabras y
mostrar los enlaces al código fuente y otros servicios que puedas tener
disponibles.
Opciones de alojamiento
Dónde poner tus contenidos es una elección personal pero hay unas
cuantas cosas que deberías tener en cuenta.
Lo primero de todo, dependiendo del tamaño de tu proyecto y los datos
relativos, el lugar de alojamiento podría tener que necesitar una gran
cantidad de espacio y ancho de banda. Además, debes comprobar que el
proveedor del alojamiento recoja las estadísticas de las descargas.
Aunque no sea estrictamente necesario, ¡puede ser muy motivador ver como
crecen esos números!
Los sitios de alojamientos de software libre como Google Code, Source
Forge y LaunchPad también proveen diferentes servicios como reporte de
errores y repositorios de control de código fuente.
Hay gente que prefiere un enfoque distribuido para controlar el código
fuente y los temas de seguimiento para evitar tener que confiar a
terceras personas su copia principal de los datos. Configurar un
repositorio de código separado en sitios como Github o Gitorious es una
opción a considerar.
Todos estos proveedores de alojamientos promocionan el software que
alojan de distintas formas. Compara las distintas opciones antes de
decidir donde debes aparcar tu proyecto.
Anunciar tu liberación
Finalmente, ¿qué sería un sitio web sin enlaces desde otros sitios? El
lugar obvio por donde empezar sería los principales motores de
búsquedas, pero eso de por sí es probable que no mejore demasiado el
tráfico, por lo menos en los primeros días de tu proyecto.
Los sitios dedicados al software libre tienen más posibilidades de
atraer más visitantes a tu brillante proyecto. El lugar más famoso con
las novedades en liberaciones de software libre es Freshmeat. Visites o
no regularmente este sitio, deberías saber que sus contenidos son
ampliamente leídos y sindicados; y no deberías dejar pasar esta gran
oportunidad para hacer saber de tu software.
Otros directorios que podrían ser de tu interés son Free Software
Foundation Directory y Ohloh (especialmente si quieres ofrecer un
servicio de repositorio para tu código fuente).
Ahora que das a conocer tu software, ¡es hora de empezar a pensar en
cómo apoyar a tus nuevos usuarios!
* Fuentes:
o
http://feeding.cloud.geek.nz/2008/09/promoting-your-free-software-project.html
comunidad Hacer crecer la comunidad alrededor de tu nuevo proyecto de
software libre
Por François Marier:
Una vez que tu nuevo proyecto de software libre ha tenido cierta acogida
y está ganando usuarios, probablemente querrás ampliar su página web
inicial con algunos servicios extra. Sin embargo, los aspectos más
importantes de gestionar una comunidad de software libre están más
relacionados con los seres humanos.
Interacciones sociales en pequeños proyectos
En los primeros tiempos de tu proyecto, las solicitudes de apoyo
generalmente sólo venían a través de correos personales al desarrollador
más importante. Para construir tu comunidad, tienes que hacer que los
nuevos usuarios se sientan bienvenidos:
* Sé amistoso e informal en tus respuestas. Coloca el nombre de la
persona al principio de tus correos.
* Sé rápido y positivo en los comentarios y solicitudes de ayuda.
La mayoría de los desarrolladores de software libre están bastante
ocupados por lo que se trata de que el usuario sepa que le responderás y
agradécele sus sugerencias y comentarios. Muy pocas personas se toman la
molestia de contactar con los autores para indicarles sus problemas. Es
importante apoyar a los que lo hacen.
* Mantén la calma cuando respondas a comentarios negativos. Ayuda
mucho tomarse un día entero para pensarse la respuesta antes de
responder. Agradece los comentarios, pero recuérdales que no estás
cobrando por el trabajo de este proyecto y que lo haces por diversión en
tu tiempo libre. Algunos usuarios parece que se olvidan de esto.
Más herramientas para proyectos en crecimiento
Como tu proyecto crece y manejar todos los problemas reportados empieza
a ser una gran carga, considera dos cosas: documentación y soporte
distribuido.
El mejor modo para empezar una guía de documentación es empezar por
reunir todas las respuestas que le enviaste a los usuarios. Este es el
significado original de una FAQ: respuestas a cuestiones reales enviadas
por usuarios reales. Rellena tus FAQ con cuestiones irrelevantes y los
usuarios no se molestarán en leerlas y luego te enviarán un correo.
Además, para proveer una buena documentación, también deberías pensar en
crear una lista de correo o un foro donde los usuarios puedan escribir
sus preguntas (Google Groups te provee de una buena mezcla de las dos
tecnologías). Este servicio tiene dos grandes ventajas:
* el soporte lo pueden realizar todos los usuarios del software
* las preguntas y respuestas son archivadas por los motores de
búsquedas
Como incluso tu proyecto puede seguir creciendo, probablemente también
estarás interesado en un seguidor de fallos y una wiki.
* Fuentes:
o
http://feeding.cloud.geek.nz/2008/09/growing-community-around-your-new-free.html
distros Conseguir que tu proyecto se incluya en una distribución de
software libre
Por François Marier:
Después de la liberación en el mundo de un nuevo proyecto de software
libre, puede que te interese verlo incluido en una distribución
importante Linux o en una distribución de software libre. Después de
todo, para los usuarios es la forma más fácil de descargar e instalar tu
software.
Aquí tienes unos cuantos detalles técnicos que incrementarán las
posibilidades de que tu proyecto se incluya en una distribución.
¿Puedo distribuir este software?
La primera cuestión que necesitarás responder a un mantenedor de una
distribución es esta: ¿Puede mi distribución incluir legalmente esta
porción de software?
Hay dos formas en las que puedes ayudar:
* Haz claramente visible tu tu licencia (normalmente en un archivo
llamado COPYING o LICENSE).
* Incluye explícitamente una copia de los derechos de autor en tu
documentación (dentro del README, por ejemplo).
Una vez que tu software pase esta prueba, la siguiente cuestión es:
¿funciona realmente?
¿Funcionará en mi distribución?
Para responder a esta pregunta, el mantenedor tendrá que instalar el
software y averiguar todas las dependencias externas necesarias.
Por tanto, tu tarball debería incluir:
* todos los pasos (y comandos exactos) que sean necesarios para
instalar tu software en una distribución estándar de software libre
* una lista de librerías externas y herramientas necesarias para
ejecutar tu software
¿Qué ha cambiado?
Otro elemento que les hace la vida más fácil a los mantenedores de tu
software una vez incluido en una distribución, es indicar los cambios de
una versión a otra.
Un detalle importante es usar un sistema simple indicador de versión. Lo
que significa:
* Los números de las versiones siempre deben ir incrementándose
(por ejemplo: en clasificación normal ASCII, 1.0pre1 viene después de 1.0).
* Cualquier cambio en los contenidos del tarball debe hacer cambiar
la versión.
* La diferencia en los números de versiones, entre una versión y la
siguiente, debe ser indicativa de la magnitud del cambio (menor o mayor).
Otra cosa que debes incluir es una lista de cambios (normalmente en un
archivo denominado CHANGES o CHANGELOG) (NdT: en los comentarios indican
que ahora este archivo se suele llamar NEWS). Este documento lo usarán
los mantenedores para decidir cuando actualizar a una nueva versión y
averiguar los errores corregidos en la nueva versión. Debe contener:
* una fecha de la liberación
* número de versión
* índice de los cambios desde la última versión
Finalmente, para asegurar que los mantenedores de una distro no se
olviden de las nuevas versiones de tu software, registra tu proyecto en
Freshmeat y anuncia las nuevas versiones.
Proponer tu paquete a las distribuciones
En Debian, la principal forma que tienen los usuarios y desarrolladores
de programas de sugerir la inclusión de paquetes en el archivo, es a
través de Debian Bug Tracking system. Los errores se llenan de
pseudo-paquetes especiales wnpp (paquetes en espera o que necesitan ser
trabajados) (NdT: Work-needed and Prospective Packages) y que son
nombrados con algo como «RFP: superfoo -- bringing more foo to the
desktop», donde RFP significa solicitud de paquete (NdT: Request For
Package).
Otra alternativa, si eres un usuario de Debian/Ubuntu, puede ser que
quieras construir y mantener el paquete por ti mismo. En tal caso,
necesitas encontrar un patrocinador (NdT: sponsor).
Otras distribuciones tienen diferentes procedimientos. Puedes dejar un
comentario explicando cuáles (nota).
En la wiki de Debian puedes encontrar información más detallada de cómo
conseguir paquetes para Debian.
(nota) Abhishek dejó el siguiente comentario explicando el procedimiento
para Arch:
Para Arch, los pasos para hacer paquetes son muy simples, sólo necesitas
hacer un PKGBUILD que contiene una función build() para construir el
paquete. Una vez hecho un PKGBUILD, lo puedes enviar a AUR. Si consigue
suficientes votos (o le gusta a un usuario de confianza, conocidos como
TU), será adoptado y movido al repositorio binario community.
* Fuentes:
o
http://feeding.cloud.geek.nz/2008/09/getting-your-project-included-into-free.html
Tomado de
http://www.esdebian.org/foro/30037/noticias-proyecto-debian-software-libre-edicion-esdebian
_______________________________________________
Cancelar suscripción
https://listas.softwarelibre.cu/mailman/listinfo/linux-l
Buscar en el archivo
http://listas.softwarelibre.cu/buscar/linux-l