Pregunta ¿Cuál es la ética y la etiqueta de bifurcar el proyecto github de otra persona para lanzarlo como una gema?


Estoy haciendo algo de tiempo libre codificando CultureGrid. Tienen una API SOLR para acceder a artefactos culturales de 1,2 metros. He lanzado una gema para consumir su servicio, pero tengo una buena idea sobre el uso de Datamapper con un adaptador de SOLR para hacerlo de una mejor manera.

Acabo de encontrar un proyecto del año pasado en Github. dm-solr-adapter. Es una bifurcación del trabajo de otra persona a partir de 2008 y para usarla tienes que clonar el proyecto y ejecutar una tarea de rake para instalarlo (no se usa mucho en heroku, así que tendría que vendérselo). Desafortunadamente esa tarea ahora se ha roto porque no fijaron sus versiones de gemas, y Bones ha cambiado considerablemente entre la versión 2 y 3.

Básicamente, se necesita un poco de recodificación para que sea una joya, y si voy a hacer eso, también podría liberarlo yo mismo y hacerlo de la manera que yo sepa, usando Joyero en su lugar.

Así que, por supuesto, dejaré una línea a todos los autores, pero me pregunté qué ética y etiqueta hay aquí. ¿Incluyo mi nombre de usuario en la gema o uso el nombre de la gema original? ¿Podría eso potencialmente arruinar la instalación de otra persona, a pesar de que la gema no figura en Rubygems.org? ¿Sigo su convención de numeración? Parece que eligieron "1.0.0" y se quedaron con él, sin más actividad. ¿O simplemente comienzo de nuevo desde la versión 0.1.0?

En su defecto, ¿acabo de tomar los bits que quiero, incluirlo en mi nuevo proyecto y dar un consejo de sombrero? Eso no suena muy útil para otros que quieran hacer las mismas cosas.

¿O tal vez tomo las partes que encuentro útiles, hago una joya completamente nueva llamada algo así como dm-solr-backend y comienzo desde cero?

Oh, los dilemas, ¿qué harías?


32
2018-01-20 22:36


origen


Respuestas:


Entonces, si no va a lanzar una gema, solo siga adelante y bifurque (suponiendo que la licencia lo permita) y no se preocupe. Eso es 100% correcto e incluso el comportamiento esperado en este punto. Las horquillas son en realidad una de las formas más fáciles de aceptar parches de los contribuyentes. El gráfico de red es a menudo una buena forma de evaluar tanto la salud de un proyecto como las áreas potenciales de mejora.

Si tiene la intención de liberar una gema porque el original no se ha mantenido, debe hacer lo siguiente:

  • Sueltalo como username-originalgemname
  • Póngase en contacto con el autor original y ofrezca hacerse cargo de él. Luego empuja gemas nuevas bajo el nombre original.

Si tiene la intención de liberar una gema porque necesita cambios en la gema que no beneficiaría a la comunidad como un todo, debe hacer lo siguiente:

  • Descomprima la gema en un directorio de proveedores y nunca lance
  • Sueltalo como username-originalgemname

En la mayoría de los casos, no hay ningún problema con un lanzamiento de gema llamado username-originalgemname. Este fue el modelo que tomó el repositorio de gemas de GitHub, así es como la mayoría de las personas manejan las horquillas en este punto.


19
2018-01-21 00:15



El único ejemplo de esto que conozco actualmente es la joya del dinero en caché. Ha sido bifurcado varias veces, en este orden:

En cada caso, el proyecto había estado inactivo durante bastante tiempo. Aparte del enlace en GitHub que muestra de dónde vino el tenedor, no hubo ninguna atribución al código original en ninguno de estos casos (el tenedor del medio incluso olvidó actualizar la documentación para especificar qué tenedor instalar cuando se instala desde la gema).

Siempre y cuando haga un esfuerzo de buena fe para contactar al mantenedor original y el proyecto haya estado inactivo por algún tiempo, intente hacerlo. Solo asegúrate de actualizar la documentación. ;)


4
2018-01-20 23:17



Con respecto a verificar el estado de un proyecto, hay un nuevo sitio llamado http://stillmaintained.com/ donde algunas personas se registran si su proyecto se mantiene, buscando un mantenedor o abandonado.


4
2018-01-21 02:50