Bifurcando bem um projeto de código aberto

27

Está na hora.

Você trabalhou muito para adicionar sua visão ao projeto de código aberto que você ama, no qual trabalhou, debateu e para o qual contribuiu com quantidades inestimáveis ​​de código e insight.

Mas não vai funcionar com os desenvolvedores existentes.

Você finalmente precisa bifurcar o código.

Como você faz isso e permanece nos melhores termos possíveis com o projeto existente? Como você não diz: " Ah, é? Garfo! "

Além da mecânica da polinização cruzada e assumindo que o raciocínio da bifurcação é sólido, lógico e aceitável, que problemas surgem?

Concorrência? Redução de recursos? Usuário furtivo?

Como você passa por esse processo indiscutivelmente difícil e longo, até se diversificar o suficiente para que eles não sejam mais vistos como problemas?

Em vez de discutir o raciocínio por trás da decisão, suponha que você já esteja convencido de que o código de bifurcação é a melhor solução geral e agora o objetivo é avançar da melhor maneira possível.

-Adão

Adam Davis
fonte

Respostas:

20

Você deseja trabalhar em seu próprio fork do código ou deseja fragmentar a comunidade?

Bifurcamos internamente alguns projetos. Nós fazíamos uma mudança, entregávamos aos proprietários, eles diziam "não, obrigado", e encolhemos os ombros, trazíamos internamente e mantíamos nós mesmos.

Lembre-se, esses não eram projetos enormes, mas é exatamente assim. Não publicamos nada, hospedamos um site ou o que for. Apenas enviamos a fonte para nossos clientes com o restante da base de código.

Simplesmente não havia nenhum chamado para que "promovêssemos" nossas mudanças de maneira mais pública do que a lista de discussão do desenvolvedor.

Se você deseja manter a paridade com o original, precisará ser agressivo no gerenciamento de patches, na fusão e em qualquer outra coisa.

Se você não quer se preocupar, então ... não. Não há razão para tornar público algo a menos que essa seja a intenção geral, em vez de simplesmente precisar de uma versão bifurcada para seus próprios projetos.

A fonte está lá para ser usada, então use-a.


fonte
8

Na maioria dos projetos de código aberto, a palavra "bifurcação" nem sempre é tão calorosamente percebida. Fiz pessoalmente a experiência de que pedir muito para trabalhar em um "ramo de tópico" para desenvolver um conjunto específico de recursos é muito mais bem-vindo.

E isso só faz sentido: os "garfos" são por natureza concorrentes em potencial, enquanto os "ramos de tópicos" são - pelo menos por design - destinados a serem eventualmente mesclados / contribuídos de volta ao projeto.


fonte
5

Primeiro, diga que você só quer fazer uma refatoração experimental. Você sabe, apenas algumas idéias com as quais você deseja brincar. Mas essas alterações podem exigir a quebra da compatibilidade com a ramificação principal do projeto, portanto você não deseja confirmar as alterações lá.

Então crie seu garfo. Claro que você é um desenvolvedor responsável, portanto, você coloca todo o código sob controle de revisão. Use o Launchpad ou o SourceForge ou o Google Code ou o que for.

Fique quieto por um tempo e trabalhe sozinho. Depois, peça a alguém em quem confie que "dê uma olhada" no que você criou. Depois outra pessoa. Algum tempo depois, crie um site de projeto simples onde quer que você esteja mantendo sua fonte.

A essa altura, as pessoas que você pensava que não estavam trabalhando no projeto original provavelmente também seguiram em frente, então não haverá mais ninguém para ofender. O projeto original diminuirá de atividade à medida que seu novo projeto ganhar seguidores.


Re comentário da codelogic:

Direita; Eu estava assumindo que as pessoas que o OP quer deixar para trás não são capazes de sustentar o projeto por conta própria.

Ouvi dizer: "as organizações sobrevivem, as pessoas não". Ou seja, nenhuma pessoa é tão crítica para um projeto que a equipe restante não consegue compensar o vácuo deixado pela partida dessa pessoa.

No entanto, no código aberto, às vezes é verdade que ninguém tem vontade, talento e tempo para executar um projeto sem o fundador.

Bill Karwin
fonte
IMHO, a última parte da sua resposta é muito presunçosa. Não é comum que um projeto popular simplesmente diminua a atividade devido a um garfo.
Supondo, é claro, que o projeto em questão não foi primariamente o trabalho do desenvolvedor único que decidiu bifurcar-se.