Mejores prácticas aceptadas para setup.py de un proyecto bifurcado

8

Contexto:

Estaba buscando para ver si había una herramienta para hacer algo (en mi caso, estaba buscando un proxy que permitiera la inspección de registros http desde un marco de prueba de Python).

Resultó ser una herramienta que requeriría solo un ajuste menor, y parecía ser razonablemente estable / madura, sin actualizaciones en los últimos 5 meses ( pymiproxy ), así que bifurqué el proyecto ( hasta aquí ) y lo hice funcionar como necesito El objetivo del proyecto original es la simplicidad, por lo que dudo que se acepte una solicitud de extracción, especialmente porque uno de los archivos involucrados solo es útil para mi empleador actual.

Finalmente, pensé que debería actualizar el setup.pyarchivo, pero no estoy seguro: he realizado una cantidad 'útil' de trabajo en mi tenedor, y aunque he dejado intactos los archivos originales, subclasificando en mis propios módulos, ahora hay Funcionalidad adicional significativa.

No sé si me siento cómodo afirmando ser el 'autor' de este módulo, ya que Python lo instalaría, pero como autor del proyecto fork, tampoco me siento cómodo dejando correos electrónicos de soporte dirigidos al autor original del proyecto. .

Pregunta:

¿Cuál es la mejor práctica general aceptada para proyectos bifurcados? ¿Debería cambiarse el nombre del proyecto para indicar que tiene un propósito diferente? El proyecto original no está disponible a través de pip o, de lo contrario, la estructura de mi proyecto permitiría que, en lugar de bifurcar, solo envuelva el original como una dependencia. ¿Debería de hecho revertir mis cambios, ponerlos en un nuevo proyecto y obtener los dos listados en pypl, o está haciendo esto en nombre del autor original demasiado lejos?

Notas:

Se agregaron encabezados para ayudar a la lectura rápida. Estoy buscando las mejores prácticas aceptadas, así que no tenga opiniones sin fuentes que las respalden, ya sea una publicación de blog autorizada o ejemplos de otros proyectos que hayan hecho lo mismo.

theheadofabroom
fuente
Pensé que pertenecía aquí, ya que tiene un efecto directo en el código del proyecto, ya sea solo setup.pyo si implica dividir el proyecto en dos y hacer que la parte de terceros esté más disponible en general, si hubiera una mejor pauta, me alegra escucharlo, pero siempre pensé que el código pertenecía aquí y el proceso en los programadores.
theheadofabroom

Respuestas:

4

Bueno, en la práctica, cuando bifurco un proyecto y no puedo conseguir, o no quiero, que mis cambios se integren en sentido ascendente, cambio el nombre de la bifurcación, en el archivo README, cito al autor original pero afirmo ser el encargado de mantenerlo. codifique la fuente y vincule la fuente a mi repositorio y en setup.py actualice la authorscadena para agregar mi nombre después de una coma:

name='renamedproject'
author='origauthor, me',
url='http://myfavoriterepository.com/me/renamedproject'

No tengo fuentes que me respalden, pero ese es el resultado de largas discusiones que tuve con otros amigos de pythonista hace un tiempo mientras bebía cervezas oscuras ...

zmo
fuente
3
Bueno, si no hay nada más autorizado, entonces tendrá que
hablar
Correcto, así que esto es efectivamente lo que hice, y luego agregué un problema al github del proyecto original pidiendo que ese proyecto se ejecute en PyPI; si eso sucede, simplemente puedo eliminar los archivos del proyecto original y agregarlo como una dependencia
theheadofabroom