¿Cuál es la etiqueta adecuada para publicar una reescritura completa de un proyecto existente?

12

Soy nuevo en el mundo de código abierto. El proyecto en el que estoy trabajando reside en Github. (Solo como referencia) El proyecto en el que estoy trabajando es un complemento para Plex Media Server. Planeo enviar mi complemento a Plex para que se incluya en su "tienda de aplicaciones". Ahora a mi pregunta.

Cuando comencé, encontré un plugin semiabandonado más antiguo que hacía algo de lo que quería pero no muy bien. Comencé contribuyendo a ese repositorio. Inmediatamente me convertí en colaborador con todos los derechos sobre el repositorio, ya que el propietario actual dijo que estaba demasiado ocupado para meterse con él. Sin embargo, cuando comencé a profundizar en el código, me di cuenta de que era inútil. La base de código existente era terrible y no había una forma eficiente de solucionarlo. Terminé empezando desde cero. El único código que utilicé en mi nuevo complemento fue el código que ingresé inicialmente.

Ahora el proyecto está listo para ser lanzado. Sin embargo, no estoy seguro de cómo hacer esto. Veo mis opciones de la siguiente manera:

  1. Crea un nuevo repositorio y simplemente olvídate del existente. No estoy seguro de si debería mencionar el repositorio anterior o sus colaboradores. No utilicé ninguno de esos códigos / recursos y he creado una base de código completamente nueva. Si bien el complemento hace algunas de las mismas cosas que el anterior, lo hace de una manera completamente nueva y más eficiente.

  2. Bifurco el repositorio existente, elimino el código existente y confirmo mi nuevo código. Soy realmente nuevo en Git, así que no estoy seguro de si esto es posible.

  3. Confirmo mis cambios en el repositorio existente y veo cómo tienen que decir los contribuyentes actuales.

De las tres opciones, me inclino fuertemente hacia la primera. ¡PERO! Soy nuevo en el código abierto y quiero asegurarme de que estoy haciendo las cosas de acuerdo con la etiqueta adecuada. No quiero que mi primer proyecto explote en mi cara y se convierta en un desastre. La opción dos no suena mal, pero no estoy seguro de si se supone que debo hacer eso. No estoy seguro de cómo funcionarían la historia y las diferencias. Solo estamos hablando de 500 a 1000 líneas de código como máximo. Entonces no es una gran base de código.

¡Gracias por cualquier aportación que pueda proporcionar!

Matt Keller
fuente
10
Como todo es código nuevo, tendería a ir con el n. ° 1 porque la historia del antiguo proyecto es realmente irrelevante. Pero sería bueno agregar algo al README en la línea de "Basado en una idea de ...".
Peter Rowell
2
@PeterRowell, por favor ponga ese comentario en una respuesta para que pueda votarlo.
MattDavey
@ PeterRowell Gracias por el consejo. Es una gran idea.
Matt Keller
1
Para 2, no es necesario eliminar el repositorio existente. Hagas lo que hagas, estoy seguro de que el desarrollador original agradecería que le dijeras que estás bifurcando el proyecto
James

Respuestas:

13

Como todo es código nuevo, tendería a ir con el n. ° 1 porque el historial de confirmación del antiguo proyecto es realmente irrelevante. Pero sería bueno agregar algo al README en la línea de "Basado en una idea de ...".

Soy un gran admirador de reconocer de dónde venimos (o nuestros algoritmos). Si miras hacia atrás en las brumas de la historia, verás que todos estamos parados sobre los hombros de los que vinieron antes, todos nosotros. Por ejemplo, desarrollé y comercialicé un motor de búsqueda de similitud en la década de 1980, y parecía bastante radical para algunas personas (Boolean era el Rey en ese entonces). Pero el núcleo del algoritmo que estaba usando estaba basado en el trabajo iniciado por Gerard Salton en Cornell 20 años antes que yo.

Peter Rowell
fuente