Como devo contribuir para um projeto do GitHub (principalmente) abandonado?

41

Recentemente, tenho tentado entrar em colaboração de fonte aberta no GitHub e encontrei uma situação para a qual estou curioso sobre qual é a maneira preferida de prosseguir.

Cerca de um mês atrás, encontrei um projeto no GitHub para uma biblioteca que eu já usava há algum tempo e na qual encontrei (e consertei) alguns bugs.

Como uma incursão inicial na colaboração do GitHub, encontrei o repo que parecia ter o volume mais alto de atividade recente, consertei um bug, adicionei testes de unidade, enviei para o GitHub e fiz um pedido de pull. Dentro de algumas horas, o mantenedor do repositório que eu bifurcara havia aceitado o PR e fundido em alguns outros PRs de outras pessoas que também estavam esperando.

Impulsionada por isso, consertei mais três bugs que encontrei, cada um em uma ramificação separada do meu próprio repositório, arquivei um problema e solicitei o pedido de cada um separadamente.

Isso foi há pouco mais de um mês, e os pedidos de atração estão lá, intocados desde então. O usuário cujo repositório eu tinha bifurcado não parece ser muito ativo, tendo feito apenas 7 contribuições totais no GitHub no ano passado, e esse repo não teve nenhum commit desde o primeiro pedido de pull que eu fiz.

Então, minha pergunta:

Como se procede nesta situação? Idealmente, eu gostaria de evitar a criação da fragmentação da biblioteca, fazendo várias alterações no meu repositório que não foram mescladas no repositório pai. No entanto, eu gostaria de continuar fazendo correções de bugs e adicionando recursos, mas se eu mesclar tudo em minha ramificação mestre e basear todas as novas correções nessa ramificação, então se o mantenedor do repositório que eu bifurfei voltar, ganhei Não é possível dividir todas as alterações em solicitações de recebimento separadas para cada recurso / correção de bug (já li que as solicitações pull geralmente devem ser uma solicitação pull por recurso ou correção de bug).

Devo manter um branch que esteja em sintonia com o repositório original, basear todos os meus novos ramos fora daquele, e então manter todos os commits fundidos em meu branch master? Parece que isso me deixaria com uma tonelada de ramificações e uma tarefa cada vez mais onerosa toda vez que eu precisar mesclar novas mudanças em meu ramo mestre.

Qual é a maneira típica de abordar uma situação como essa? Parece ser bastante comum que um projeto acabe de ser abandonado com os contribuidores originais que não estão por perto para revisar novos pedidos de recebimento. Esta é uma situação em que alguém deve apenas assumir o comando e correr com ela? Parece que isso criaria fragmentação se os colaboradores originais voltassem e quisessem trabalhar no projeto novamente.

    
por JLRishe 13.02.2015 / 19:24
fonte

2 respostas

37

Ainda não tive essa situação, mas é o que eu tentaria:

Tente entrar em contato com o proprietário

Talvez eles realmente tenham perdido o interesse, mas estejam dispostos a transferir o projeto para outra pessoa, em especial para alguém que já demonstrou um compromisso atencioso.

Mas talvez eles estejam apenas ocupados com outra coisa (trabalho, férias, doença, outros projetos) e não tenham tempo para lidar com o seu RP, mas planejem fazê-lo mais tarde.

Ou talvez eles tenham realmente parado de trabalhar no projeto permanentemente por qualquer motivo.

Sem perguntar, você não vai descobrir.

Entre em contato com a comunidade

Certamente há outras pessoas que contribuíram ou pelo menos usaram o projeto. Verifique quem tem bifurcado o projeto (mesmo que eles não tenham feito nenhuma alteração, eles ainda podem estar interessados em ver esse projeto prosperando); Verifique quem relatou problemas ou comentou sobre eles. Talvez exista também uma comunidade fora do GitHub, por exemplo, uma lista de discussão, fórum ou membros do StackOverflow.

Eu acabo assumindo o projeto, você pode querer o apoio deles. E eles precisam saber onde o novo repositório principal é.

Continue a fazer bons pedidos de solicitação

Isso mostra tanto o proprietário quanto a comunidade com a qual você está falando sério, e vamos julgar suas contribuições.

    
por 13.02.2015 / 22:15
fonte
15

Se o proprietário do repositório original não for encontrado em lugar algum e estiver ausente por um considerável, eu publicaria meu próprio repositório como uma versão diferente do projeto.

Com isso, você assume a liderança do desenvolvimento da biblioteca e não a deixa para morrer em um canto sem ser atualizada novamente. Se o proprietário original fechar o repo, o mundo ainda poderá usar a versão bifurcada.

    
por 13.02.2015 / 20:13
fonte