Estamos usando algumas bibliotecas de código aberto em nossos projetos. Às vezes, existem alguns problemas encontrados em alguns deles (provavelmente erros de biblioteca, mas também pode ser um uso incorreto do nosso lado, especialmente quando às vezes a documentação não está exatamente 100% completa). Como as bibliotecas costumam ser bastante complexas, às vezes é difícil depurá-las para identificar a origem do problema. Você pode me ajudar a resumir quais outras opções existem e como proceder exatamente com elas?
Recentemente, encontrei alguns problemas estranhos ao usar o TCMalloc (alocador de memória escalonável do Google) no Windows, por isso gostaria de receber respostas que se aplicariam a essa biblioteca específica, mas respostas mais gerais também são boas.
1) Peça assistência ao mantenedor / proprietário do projeto. Como isso pode ser feito?
2) Contrate alguém para identificar e corrigir o problema. Como fazer isso? Como posso encontrar alguém com experiência suficiente em alguma biblioteca específica?
... outras opções?
Respostas:
Eu normalmente tento o seguinte, em ordem:
1) Verifique a lista de discussão ou fóruns para ver se meu erro é novo, se já está no rastreador ou se foi corrigido em uma versão mais recente / SVN / qualquer que seja
2) Se o bug não for conhecido, pergunte sobre ele na lista de discussão. É quando você é informado de que é um recurso, não um bug e / ou RTFM;)
3) Se o bug é realmente um bug e é novo, você pode esperar até que alguém o conserte (você pode ajudar fornecendo informações adicionais, testes ou depuração) ou consertar você mesmo e enviar um patch
Se você precisar corrigir o bug com urgência, sua melhor aposta é executar as etapas 2 e 3 juntas (relatar o bug e propor um patch). Caso contrário, seu bug poderá ou não ser corrigido em tempo hábil, dependendo se alguém achar que vale a pena corrigi-lo. Eu acho que você pode "subornar" os desenvolvedores ou outros membros da comunidade para trabalhar no seu bug, embora eu nunca tenha experimentado esse.
fonte
O melhor do OSS é que você tem o código fonte!
Assim, você pode fazer a correção sozinho ou contratar alguém para fazer isso.
O importante é retribuir à comunidade e verificar sua correção!
fonte
A maneira mais sensata que encontrei, quando você tem um problema com uma biblioteca e não possui as habilidades necessárias para encontrar o problema, é entrar em contato com os mantenedores. Eles conhecem o código e serão gratos por saber sobre os bugs, se é isso que é, ou apontarão a direção de como usar a biblioteca corretamente.
Por exemplo, tive um problema que não consegui resolver quando desenvolvia um site que usava SVG Web . Como não tenho habilidades de script de ação, iniciei um tópico perguntando sobre o problema e me disseram para registrar um bug com um caso de teste mínimo. Acabou que o problema estava no navegador, então tive que ajustar meu código levemente.
Se você é inteligente o suficiente para consertar você mesmo, não se esqueça de devolver o que aprendeu.
fonte
Se você tem uma boa idéia de como reproduzir o bug, escrever um teste de unidade expondo o bug seria um bom ponto de partida. (Geralmente, os projetos de código aberto já possuem grandes suítes de teste).
O teste de unidade com falha é uma boa maneira de comunicar o "bug" ao mantenedor do projeto. Se não for um bug, mas simplesmente você quem o estiver usando incorretamente, o mantenedor indicará que isso ocorre por design e, na maioria das vezes, por um motivo.
fonte
Escreva um caso de teste limpo e envie-o para a lista de discussão.
Com frequência, o IME encontra um erro no seu próprio código ao escrever o caso de teste.
fonte
Só porque ainda não foi mencionado, leia " Como fazer perguntas de maneira inteligente ". Tem muitos conselhos valiosos sobre como abordar as perguntas e pedir ajuda de uma comunidade de desenvolvimento. Muito disso se resume a: entender como a comunidade funciona e garantir que você siga as regras. Se você for respeitoso, faça uma pergunta inteligente, fornecendo todos os detalhes necessários (e receita de reprodução, se possível), provavelmente obterá uma resposta razoável.
fonte