2010-01-07 11 views
7

Actualmente tengo algunas aplicaciones de código cerrado que he desarrollado para aprender una tecnología en particular o experimentar con una técnica de programación. Como resultado, tengo un software que es útil para otros y que he puesto a disposición de forma gratuita, pero en formato de fuente cerrada.Buscando consejo para tomar un proyecto de código abierto

Algunos de los usuarios del software me han preguntado si estaría dispuesto a utilizar código abierto para poder contribuir. Estoy totalmente de acuerdo, pero no he tenido ninguna experiencia previa trabajando en proyectos de código abierto, mucho menos comenzando uno.

Lo ideal es que me moje los pies contribuyendo primero a un proyecto existente, pero no quiero sofocar el entusiasmo de estos voluntarios por retrasar demasiado tiempo. Así que voy a avanzar ligeramente a ciegas.

Lo que estoy buscando es un curso intensivo en la gestión de un proyecto de código abierto para alguien que acaba de comenzar en esta pista.

Así que la frase sea esto como una pregunta:

¿Qué consejo le daría a alguien poner en marcha su primer proyecto de código abierto ?
También estoy interesado en las recomendaciones para libros/links que cree que sería útil

+0

No soy un experto pero encontré el Grupo de Google de CodePlex Foundation informativo. http://groups.google.com/group/codeplex-foundation –

Respuesta

5

Usted tiene dos opciones importantes para hacer inicialmente.

En primer lugar, ¿qué licencia deberías usar? Hay dozens of Open Source licences, pero básicamente se reduce a si quiere copyleft (GPL/AGPL) o no copyleft (BSD, MIT, Apache) y eso depende de sus propios objetivos.

En segundo lugar, debe elegir un sistema de control de versiones y, suponiendo que usted mismo no lo esté alojando, un proveedor. Esta es efectivamente una elección entre Subversion o uno de los sistemas de control de versiones distribuidas (Git, Mercurial, Bazaar, etc.). Un DVCS puede facilitarle la administración de las contribuciones de otras personas si no desea darles acceso de escritura a su repositorio principal.

La elección de VCS influirá en la elección del host y viceversa, ya que la mayoría de los proveedores solo ofrecen un VCS. Un proveedor que también alojará un sitio web y/o wiki para usted sería ideal. La mayoría proporcionará algún tipo de rastreador de problemas rudimentarios y posiblemente listas de correo. También puede obtener listas de correo del Librelist.

Yo recomendaría que eche un vistazo a GitHub o Launchpad. No estoy particularmente interesado en Google Code o Sourceforge. Nada en contra de Subversion, simplemente no me gustan sus UI.

Si desea que su proyecto se vuelva popular, y eso puede no ser importante para usted, tendrá que promocionarlo. Puede registrarlo con Ohloh y Freshmeat. Escribir artículos de blog sobre su proyecto y enviarlos a sitios como Reddit y DZone aumentaría la visibilidad. Recuerde también que Jeff está ofreciendo free advertising on StackOverflow for Open Source projects.

De todos modos, mientras tengas un repositorio de fuentes públicas y un sitio web para que las personas descarguen el software, simplemente escribe el código y el resto seguirá.

1

Algunos sitios repositorio de código hacen mucho del trabajo de gestión para usted. Proporcionan las licencias, manejan el control de versiones (en algunos casos) y obviamente manejan el repositorio.

vistazo a estos sitios:

+3

Codeplex es un proyecto de Microsoft y si quieres credibilidad con la comunidad de código abierto, probablemente deberías evitarlo. CodeProject siempre me pareció un poco esporádico y flash-publicitario, y sourceforge ha ido cuesta abajo. Elegir una licencia es tan fácil de hacer por su cuenta que creo que es mejor utilizar un sitio como GitHub o Gitorious. Me gusta especialmente la característica de Gitorious de comentar directamente en líneas de código en los diffs de la versión: http://blog.gitorious.org/2009/11/06/awesome-code-review/ – HostileFork

+0

@Hostile Fork: GitHub también tiene el comentarios de revisión de código línea por línea. –

+1

@Dan Dyer: Ah, ya veo ... una característica no tan bien expuesta, sin embargo (tienes que desplazarte en un espacio invisible). ¡Bueno saber! Aún así, mi principal favoritismo reciente hacia Gitorious es porque es de código abierto para que pueda ejecutarlo en su propia intranet ... – HostileFork

1

El mínimo que se necesita hacer es colocar el código como una postal, con una licencia adecuada archivo. Puede hacerlo al Google Code - es realmente fácil de usar. En cuanto a la licencia, comience con una que no sea restrictiva, como MIT (Google Code tiene todos los textos de la licencia); siempre puede volver a realizar la licencia más adelante, siempre que no haya aceptado ninguna actualización.

En cuanto a libros/enlaces, eche un vistazo a Producing Open Source Software - no es perfecto, pero no conozco nada mejor.

+1

No estoy de acuerdo con que sea bueno elegir una licencia no restringida y luego restringirla más tarde.Eso puede ser oportunista, y ver lo que sucedió con ExtJS cuando volvieron a licenciar de LGPL a GPL. Elegir algo como Affero GPL para comenzar y luego aflojarlo (a LGPL, MIT, lo que sea) es más claro, sin importar si has aceptado actualizaciones de otros o no. – HostileFork

+0

No estoy de acuerdo. AGPL es una licencia horrible. Y recuerde, las personas que usaron el código bajo la licencia MIT (o lo que sea) pueden continuar haciéndolo: las licencias no se pueden revocar unilateralmente. –

+0

... y estoy especialmente en desacuerdo con que los proyectos de código abierto envíen su código como archivos ZIP en lugar de usar un DVCS moderno (o peor, subversión) – HostileFork

3

Si ya está familiarizado con VCS (Versioning Control System), debería estar bien. Recomiendo www.github.org para alojar el repositorio, y tal vez en algún momento un sitio web para hablar sobre la aplicación. Github es agradable porque hace que sea especialmente fácil para las personas contribuir con código. Es ridículamente simple, aunque git tiene un poco de curva de aprendizaje.

¡Y luego, una forma de comunicarse! Una lista de correo ... Tal vez googlewave ... Tal vez un foro.

+1

Una alternativa a github es bitbucket. Utiliza Mercurial, que es una alternativa un poco más amigable a git. Ambos son impresionantes sitios web/herramientas. Solo un FYI. – dlamotte

2

No tengo ningún consejo personal a mano, pero el siguiente video me pareció muy interesante. Es un recuerdo de las experiencias de algunos empleados de Google y las lecciones que aprendieron mientras administraban sus proyectos de código abierto.

de cómo los proyectos sobrevivir venenosas personas (y tú también puedes) https://www.youtube.com/watch?v=Q52kFL8zVoM

Cuestiones relacionadas