Lista de verificación para comenzar un proyecto de código abierto [cerrado]

51

Comenzar un proyecto de código abierto no es solo lanzar el código fuente en algún repositorio público y luego estar contento con eso. Debe tener documentación técnica (además del usuario), información sobre cómo contribuir, etc.

Si crea una lista de verificación sobre cosas importantes que hacer, ¿qué incluiría en ella?

Anto
fuente
1
+1 Buena pregunta. ¿Puedo recomendar: gawande.com/the-checklist-manifesto
JeffO
2
Recomiendo el libro de Karl Fogel (uno de los autores originales de subversión) Producing Open Source Software: cómo ejecutar un exitoso proyecto de software libre Es un libro de O'Reilly.
Michael
Producir software de código abierto por Karl Fogel debería ayudarte con eso. El libro está disponible completamente en línea.
Coyote21

Respuestas:

34

La cosa mas importante es:

  • use el proyecto usted mismo y póngalo en un estado útil donde disfrute usarlo. asegúrese de que el proyecto funcione y sea útil.

Las cosas que pondría en las primeras prioridades son:

  • tener un simple "¿qué es?" sitio web con enlaces a algún foro de discusión (ya sea correo electrónico o chat) y al repositorio de código fuente
  • asegúrese de que el código se compila y generalmente funciona, no cometa parches de trabajo en progreso o medio culo en la rama principal que rompen las cosas, porque entonces el trabajo de otras personas se interrumpiría
  • coloque un archivo de licencia en el repositorio de código con una licencia conocida y marque el propietario de los derechos de autor (probablemente usted o su empresa). no omita la licencia, invente una licencia o use una licencia oscura.
  • tenga instrucciones sobre cómo contribuir, digamos en un archivo HACKING o inclúyalo en su archivo README. Esto debe incluir dónde enviar parches, cómo formatear parches, reglas de sangría de código, cualquier otra convención importante del proyecto
  • tener instrucciones sobre cómo informar un error
  • ser útil en la lista de correo o en los foros

Después de esas prioridades, diría:

  • documentación (esto le ahorra trabajo en la lista de correo ... hacer una pregunta frecuente de las publicaciones de su lista es un simple comienzo)
  • trate de hacer las cosas de una manera "normal" (no invente su propio sistema de construcción ni use uno extraño, no use sangría de 1 espacio, no sea molesto en general porque agrega una curva de aprendizaje)
  • Promociona tu proyecto. marketing marketing marketing. Necesita algunos blogs y sitios de noticias y cosas por el estilo para cubrirlo, y luego, cuando las personas se muestran interesadas, debe hablar con ellos y asegurarse de que funcionen y miren sus parches. Quizás mencione su proyecto en los foros para proyectos relacionados.
  • Siempre revise y acepte los parches tan rápido como sea humanamente posible. Inmediatamente es perfecto. Más de un par de días y estás perdiendo mucha gente.
  • siempre responda al correo electrónico sobre el proyecto tan rápido como sea humanamente posible.
  • crear un ambiente acogedor / positivo / divertido. no seas idiota di por favor y gracias y entrega alabanzas. ahuyenta a los imbéciles que aparecen y comienzan a envenenar a la comunidad. trate de conocer gente en persona cuando pueda y forme lazos.
Caos P
fuente
¿Qué pasa con los posibles problemas legales? ¿Cómo se asegura que la implementación no contenga un algoritmo patentado inadvertidamente?
Den
No es posible determinar eso, desafortunadamente. Dado un trozo de código, no hay forma de saber qué términos de búsqueda necesitaría para ubicar las patentes relevantes, lo cual es una de las razones por las que las patentes de software son un problema. A veces se sabe que se aplica una patente, pero nunca he oído hablar de una manera de estar seguro de que no existe una patente que se aplique. Difícil de probar un negativo. Las patentes son un tema lo suficientemente grande que probablemente deberían ser sus propias preguntas ...
Havoc P
17

Para empezar, baje la barrera de entrada , esto significa:

  • hacer que sea fácil de instalar,
  • facilita la modificación,
  • facilita la búsqueda de su proyecto,
  • solo haz que todo lo que quieras hacer sea fácil.

¿Cómo?

  • Responda a cada pregunta que pueda pensar en su documentación,
  • Cree un sistema de compilación fácil de usar,
  • Limpia tu código, a nadie le gusta trabajar en el código de espagueti,
  • Haga algo que la gente necesite.
dan_waterworth
fuente