Modificando um aplicativo de código aberto

9

Qual é o fluxo de trabalho geral quando desejo adicionar um recurso a um aplicativo de código aberto que não escrevi originalmente? Como conheço o código? Como encontro o local que precisa ser alterado ou adicionado? Como eu realmente faço a alteração sem quebrar mais nada? Como faço para testar se tudo ainda está funcionando?
Quais são as diretrizes gerais para esse projeto?

Dani
fonte
2
Você também deve enviar suas alterações ao projeto, normalmente como um patch, para que outras pessoas possam se beneficiar.

Respostas:

6

Existe algum protocolo, todo mundo mais ou menos o deseja com o tempo, mas aqui está, desenrolado.

  • Você baixa a fonte distribuída.
  • Você começa a navegar o código sozinho um pouco

    • Se for um programa compilado, você aprenderá agora como compilá-lo.
    • Se você não conseguir compilá-lo, reporte à lista de autores / correspondência e peça instruções
  • Se você realmente não entende nada sobre o código ...

    • Bem, não, você não pergunta a eles.
    • Você deixa isso para trás, pois provavelmente não está à altura do par e não pode ser de nenhuma ajuda real.
    • Você envia um recurso se o (s) autor (es) aceitarem solicitações de recurso.
  • Outro

    • Você encontra o local que deseja alterar.

    • Se você se perguntar sobre alguns pequenos detalhes, peça à lista de autores / correspondência e explique suas intenções.

    • Você faz o cd para o diretório principal da distribuição (o principal que sai do descompactar / descompactar)

    • Você diff -ur . > mypatch.path

    • Você envia mypatch.patchao autor explicando o que você fez, por que o fez e (como você já está lá) afirma claramente que renuncia aos direitos sobre o patch.

  • se os autores não gostarem da sua contribuição

    • você verifica se há uma maneira de liberar sua modificação como algum tipo de plugin

      • Nesse caso, agora você está no caminho de se tornar um mantenedor de plugins .
    • outro

      • você fala sobre a situação em seu blog e libera o patch lá, gratuitamente para fazer o download e experimentar com sua explicação e suas reclamações,

      • você assombra de vez em quando a lista de discussão / sistema de bugs tentando comprar suporte para o seu patch. Evite ser banido.

    • em nenhum desses casos, você bifurca o código , pois é um processo muito cansativo e pouco recompensador que dificilmente será possível acompanhar o tempo: isso deixará os usuários tristes e confusos. Forks deve realmente acontecer apenas quando uma grande corporação está tentando intimidar suas decisões em um pedaço de OSS .

  • outro

    • você recebe mais instruções desse (s) autor (es)

Por outro lado: existe uma alternativa recente ao diff -ur .patch e é o caminho do github .

  • Você "bifurca" o código deles no github com o seu nome
    (agora você tem uma cópia do código dele na sua conta)
  • conecte seu git à sua cópia pessoal,
  • faça suas modificações, verifique-as,
  • e diga ao (s) autor (es) principal (s) para examinar seu projeto no github.

  • Se eles gostarem, eles sincronizarão .

  • Caso contrário, você pode vincular seu "gitfork" no seu blog.
ZJR
fonte
Tudo bem, até que você sugira que o OP chame os autores do produto por não adotarem o novo patch de recurso, não está claro se isso deveria ser engraçado ou sério. uma equipe de produto não gosta / deseja seu novo patch de recurso. De qualquer forma, publique-o, mas sempre seja magnânimo se não for aceito, independentemente de quão ilógica a decisão pareça. -1 - Para sua informação, felizmente vou reverter meu voto, se você remover isso.
Ocodo 22/08
O aplicativo que desejo alterar está seguindo um padrão rigoroso que, com as minhas alterações, quebrará o padrão. Acho que nem estou em posição de pedir que meu patch seja aplicado.
22411 Dani
O @Slomojo OSS é cheio de pessoas imaturas, e esse tipo de coisa acontece o tempo todo; todos devem estar preparados para trabalhar como uma mula e depois serem rejeitados com base em que às vezes são sólidos e outras vezes discutíveis . E então, pelo menos, você sempre tem a chance de reclamar e encontrar pessoas que acham que talvez você esteja certo. Agora, apesar do desrespeito , esse seria o passo errado e muito infantil a dar.
ZJR 22/08/11
@Dani lol, você realmente terá que compartilhar um patch e reclamar sobre isso . Evite bifurcação, pois consumirá sua vida, parece refatorar continuamente sem um salário. ... de qualquer maneira, verifique a lista de discussão e o sistema de relatórios de erros, se houver, para ver se alguém estaria interessado nesse tipo de extensão, talvez você não esteja sozinho. E o melhor seria que eles tivessem alguma API para estender ou um plugin para conectar suas alterações. Essa é sempre a melhor opção nesses casos: manter um plugin . ... irá editar isso em.
ZJR 22/08
2
se houver casos de teste automatizados, execute-os antes de enviar o patch.
Enone
0

Tipicamente.

Se fosse um projeto aleatório do sistema operacional, você provavelmente corrigeria pequenos bugs aqui e ali.

Eventualmente, você enviaria um monte de alterações, como um "patch".

Geralmente você obteria direitos de commit se suas coisas forem boas.

Eu estou falando em geral e o mais vago e inespecífico possível devido à pergunta

MattyD
fonte