Práticas recomendadas aceitas para setup.py de um projeto bifurcado


8

Contexto:

Eu estava olhando para ver se havia uma ferramenta para fazer alguma coisa (no meu caso, estava procurando por um proxy que permitisse a inspeção de log http a partir de uma estrutura de teste python).

Acabou sendo uma ferramenta que exigiria apenas pequenos ajustes, e parecia razoavelmente estável / madura, sem atualizações nos últimos 5 meses ( pymiproxy ), então bifurquei o projeto ( aqui ) e o fiz funcionar como eu preciso. O objetivo por trás do projeto original é a simplicidade, por isso duvido que uma solicitação de recebimento seja aceita, principalmente porque um dos arquivos envolvidos é útil apenas ao meu empregador atual.

Finalmente, pensei em atualizar o setup.pyarquivo, mas não tenho certeza - fiz uma quantidade de trabalho 'útil' no meu fork e, embora tenha deixado os arquivos originais intactos, subclassificando meus próprios módulos, agora há funcionalidade adicional significativa.

Não sei se me sinto à vontade em afirmar ser o 'autor' deste módulo, pois seria instalado pelo python, mas como autor do projeto fork, também não me sinto à vontade em deixar e-mails de suporte direcionados ao autor do projeto original .

Questão:

Qual é a melhor prática geral aceita para projetos bifurcados? O projeto deve ser renomeado para indicar que tem um propósito diferente? O projeto original não está disponível através do pip ou a estrutura do meu projeto permitiria que, em vez de bifurcar, envolvesse apenas o original como uma dependência. Na verdade, devo reverter minhas alterações, colocá-las em um novo projeto e obter as duas listadas no pypl, ou está fazendo isso em nome do autor original que está indo longe demais?

Notas:

Cabeçalhos adicionados para facilitar a leitura rápida. Estou procurando as melhores práticas aceitas, portanto, não exista nenhuma opinião sem fontes para fazer backup delas, seja uma postagem de blog oficial ou exemplos de outros projetos que tenham feito o mesmo.


Eu pensei que ele pertencia aqui, pois tem um efeito direto no código do projeto, seja apenas o setup.pyou se envolve dividir o projeto em dois e tornar a parte de terceiros mais disponível em geral - se houver uma orientação melhor, eu fico feliz em ouvi-lo, mas sempre achei que o código pertencia aqui e processava programadores?
Theheadofabroom

Respostas:


4

Bem, na prática, quando bifurco um projeto e não consigo - ou não quero - que minhas alterações sejam integradas no upstream, renomeio o fork, no README, cito o autor original, mas afirmo ser o mantenedor disso codifique a fonte e vincule a fonte ao meu repositório e em setup.py atualize a authorsstring para adicionar meu nome após uma vírgula:

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

Não tenho fontes para me apoiar, mas esse é o resultado de longas discussões que tive com outros amigos pythonistas há um tempo enquanto bebia cervejas escuras ...


3
Bem, se não há nada mais autoritário, em seguida, conversando com outros pythonistas mais de cervejas escuras terá que fazer;)
theheadofabroom

Certo, então isso foi efetivamente o que eu fiz e, em seguida, adicionei um problema ao github do projeto original, solicitando a instalação do projeto no PyPI - se isso acontecer, posso simplesmente remover os arquivos do projeto original e adicioná-lo como uma dependência
theheadofabroom
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.