in open source, simpleflan

Una pregunta para mis amigos desarrolladores

Como hace poco les adelante, estoy trabajando en un nuevo proyecto que increiblemente está casi listo para declararlo una versión alfa ( Los que me conocen saben lo increible que es esto, dada mi reputación de creador de vaporware).

Pero a raiz de esto me han salido algunas dudas: Dede el principio he pensado en liberarlo como codigo abierto pero la verdad es que la tarea me asusta un poco porque es algo que jamas he hecho y hasta ahora ni siquiera he participado activamente en ningún proyecto (mi participacion en CakePHP es muuuy pasiva). Así que no tengo ni idea de como empezar.

Ademas no se que licencia escoger ni que usar para administrar el proyecto ni donde hospedarlo… bueno, la verdad es que no se nada.

Asi que si en la audiencia hay gente que sepa de ésto y tenga interes en orientarme y pasarme tips o ligas que me sean de utilidad, pues se los agradecería mucho.

Write a Comment

Comment

  1. Yo recomendaría la licencia GPL. Está pensada específicamente para código y garantiza que el proyecto siempre será libre así como también sus obras derivadas. La versión es prácticamente indiferente pero recomendaría la última.

    Si eso no te termina de convencer por la cuestión que sea, te recomendaría que te dieras una vuelta por la lista de licencias libres según la Free Software Foundation [1]. Además, esa lista incluye otras licencias libres pero no compatibles con la GPL y licencias directamente no libres claramente identificada cada categoría. Todas con una breve descripción y un link a la página oficial de cada una.

    En cuanto a dónde alojarlo, tienes varias opciones. Todas ofrecen algún sistema de control de versiones (personalmente prefiero SVN) y alguna forma de organizar a los desarrolladores (sistema de bug tracking, lista de discusión, etc). SourceForge, FreshMeat y GoogleCode parecerían buenas opciones; pero como nunca usé ninguno esperaría que otros opinen al respecto.

    [1] http://www.gnu.org/licenses/license-list.html#SoftwareLicenses

  2. Empecemos por la licencia.

    ¿Que tanta libertad quieres dar al proyecto?

    Si deseas que cualquiera pueda tomar tu proyecto y lo puede usar para fines comerciales, haciendole modificaciones necesarias, pero sin estar obligados a regresar código a la comunidad. Es decir pueden cambiar la licencia. Escoge una licencia como la MIT, BSD o similar.

    Deseas que el código y productos derivados sigan siendo código libre, una licencia como la GPL es una apuesta segura. Sin posibilidad de cambiar la licencia.

    Esto es a grandes rasgos lo que tienes que ver, aunque te recomiendo darte una vuelta por http://www.opensource.org o la comparativa de licencias en http://en.wikipedia.org/wiki/Comparison_of_free_software_licences Esto de las licencias es algo muy cuidadoso. Solo para detalle cultural, Ruby on Rails y CakePHP están liberados bajo MIT, lo cual permite que se pueda revender el proyecto bajo otra licencia o sublicenciar la tecnología. Aunque la verdad mi explicación intento ser muy sencilla, deberías darte una vuelta por cada licencia para compararlas a mas profundidad.

    Ahora en cuanto la distribución del software y el manejo del proyecto.

    Puedes hacer outsourcing del proyecto o mantenerlo en tu control.

    Para esto necesitarias basicamente un SCM (Software para control de versiones) y un manejador de eventualidades (el software para manejar bugs, notas, etc).

    SVN es la apuesta segura, ademas prácticamente todos los servicios de hosting lo ofrecen de alguna u otra manera. Tales como Dreamhost. Es altamente recomendable que el repositorio sea montado sobre webdav (es decir con acceso por HTTP), para su acceso de solo lectura anónimo.

    Para el ‘issue tracker’, la opción mas popular y usable es sin duda TRAC ( http://trac.edgewall.org/ ) , el cual tiene ademas un Wiki, que puedes usar para llevar la documentación inicialmente.

    Con estos dos programas, puedes iniciar sin mucho problema tu proyecto. Adicionalmente, puedes iniciar una nueva pagina web con su propio dominio todo lo relacionado al proyecto en un layout muy atractivo, para atraer mas ‘clientela’.

    Enviar tu pieza de software con un buen copywrite a digg, reddit, techcrunch y ehub (entre otros). Esperando que tu proyecto sea de interés y llame la atención

  3. Si no queres complicarte demasiado para mantener el proyecto y olvidarte de temas de seguridad, estabilidad y uptime, usa algún servicio que te de todas las opciones necesarias para convertirlo en un desarrollo opensource, por ejemplo Google Code o SourceForge.

    Con respecto a la licencia, es un tema personal y depende de cuanto estás dispuesto a entregar del código. Y obviamente, que esta elección sea compatible con la licencia de TODOS los componentes que integren el software, revisate la licencia de Cake para ver cuales son tus límites.

    Por si te interesa, yo prefiero la licencia (nueva)BSD, no estoy totalmente de acuerdo con la GPL.

  4. Felicidades por el proyecto que ya todos queremos ponerle las manos encima :P

    Creo que aqui podria aportar mis 5 centavos, lo de las licencias lo dejare para alguien mas experto en asuntos de licencias y sobre todo esperar a que nos digas que tan open source lo quieres.

    Con respecto a el hospedaje del que se ofrece de forma gratuita, nosotros hemos utilizado el Source Forge y el Google Code y en definitiva me quedo con el gCode, es muy simple y aunque no tiene tantas cosas como el SF su misma simplicidad hace mas ameno la administración del proyecto, y ademas se integra perfectamente con Google Groups para darle la palabra a los usuarios, ademas usamos el gTalk para comunicarnos entre nosotros, en particular usamos el party chat [ http://techwalla.googlepages.com/home ].

    Aunque eventualmente conforme el proyecto crezca surgira la necesidad de utilizar servicios que no ofrecen ni gCode o SF (creeme pasa), como por ejemplo una buena herramienta de administración del equipo, un sistema para administrar de forma coolaborativa las traducciones o cualquier otra cosa, por lo que es importante que vayas viendo desde el principio el montar estos servicios (o planearlo a un mediano plazo como plan de escalabilidad de la administracion de tu proyecto) en tus propios servidores, por ejemplo DreamHost cuenta con SVN, para administrar al equipo nosotros usamos el ActiveCollab [ http://www.activecollab.com/ ] en su ultima version OS que es bastante buena y competitiva, para las traducciones coolaborativas el Entrans [ http://entrans.sourceforge.net/ ] y así hay muchas herramientas útiles para llevar acabo estas funciones.

    Por último no te olvides de salir en TechCrunch :)

  5. Veo que ya te decidiste, pero como dato extra hay bastante software libre que se libera mediante 2 licencias como por ejemplo jQuery.

    jQuery usa MIT para los usuarios “comunes”, lo pueden usar en proyectos personales, profesionales y vender apps/webs usandolo. Y tambiéne viene en GPL que suele ser usado solo por otros proyectos de software libre, ya que estos no pueden usar otro software que no este bajo la misma licencia.

    Suerte en tu vaporware, vi el screencast y está quedando muy bien.
    Un saludo.