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?
open-source
Dani
fonte
fonte
Respostas:
Existe algum protocolo, todo mundo mais ou menos o deseja com o tempo, mas aqui está, desenrolado.
Você começa a navegar o código sozinho um pouco
Se você realmente não entende nada sobre o código ...
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.patch
ao 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
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
Por outro lado: existe uma alternativa recente ao
diff -ur .
patch e é o caminho do github .(agora você tem uma cópia do código dele na sua conta)
e diga ao (s) autor (es) principal (s) para examinar seu projeto no github.
Se eles gostarem, eles sincronizarão .
fonte
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
fonte