É um ponto difícil: como o usuário não paga, direta ou indiretamente, por um produto, ela não pode pedir que um recurso seja implementado. Não é como se você fosse uma parte interessada ou um cliente direto que encomendou o produto e nem mesmo um usuário final de um produto comercial.
Dito isto, "enviar um patch" não é uma resposta válida. Não é educado. Não é correto. Mesmo para um produto de código aberto. "Enviar um patch" é a versão curta de:
"we don't care if you like our product or not. Go and modify it if you want, but don't bother us with your customer requests."
Que tal enviar um patch?
Bem, não é tão fácil. Para fazer isso:
-
Você deve conhecer o (s) idioma (s) usado (s) no projeto de código aberto.
-
Você deve conseguir carregar o código-fonte do controle de versão para poder modificá-lo.
-
Você deve ter todas as versões corretas de quaisquer dependências de compilação instaladas (incluindo bibliotecas de tempo de execução e ferramentas de compilação).
-
Você deve ser capaz de compilar este código-fonte , o que não é tão óbvio em alguns casos. Especialmente, quando um grande projeto leva algumas horas para compilar e exibir 482 erros e milhares de avisos, você pode ser corajoso para pesquisar a origem desses erros.
-
Você deve entender muito bem como o projeto é feito , qual é o estilo de codificação a ser usado, se houver, como executar testes de unidade, etc. Se o projeto não tiver uma documentação decente (que é frequentemente o caso de projetos de código aberto), pode ser muito difícil.
-
Você deve se adaptar ao projeto e aos hábitos dos desenvolvedores que participam ativamente do projeto. Por exemplo, se você usa o .NET Framework 4 diariamente, mas o projeto usa o .NET Framework 2.0, não é possível usar o LINQ, nem o Code Contracts, nem outros milhares de novos recursos das versões mais recentes da estrutura.
-
Seu patch deve ser aceito (a menos que você faça a alteração apenas por si mesmo, sem a intenção de compartilhá-lo com a comunidade).
Se sua intenção é participar ativamente do projeto, você pode fazer todas essas coisas e investir seu tempo para isso. Se, por outro lado, há apenas um pequeno bug irritante ou um recurso simples que está faltando, gastando dias, semanas ou meses estudando o projeto, então fazer o trabalho em poucos minutos é irracional, a menos que você goste.
Então, há uma resposta canônica para "é open source, envie um patch"? Acho que não. Ou você explica para a pessoa que ela é indelicada ou simplesmente para de falar com ela.