Observação: no momento, há um pequeno número de desenvolvedores ativos no projeto. Por isso, não podemos responder e marcar todos os problemas abertos imediatamente, mas os notamos e lemos. Bons relatórios de bugs nos fornecem um feedback importante, pelo qual agradecemos e sempre apreciamos.

Guia de relatório de bugs

Este guia inclui instruções passo a passo para relatar bugs e problemas que você encontrar no Jami.

Configure o seu ambiente

  • Esteja preparado para a perda de dados. Faça backup de sua conta e vincule-a ao maior número possível de dispositivos.

  • Instale a versão mais recente (ou mesmo uma versão beta) do Jami. Relatar bugs/problemas em versões mais antigas é menos útil, e é provável que já tenham sido corrigidos em versões mais recentes.

Como relatar um bug

  1. Crie uma conta no Jami GitLab se você ainda não tiver uma.

  2. Escolha o projeto certo para publicar seu problema:

  1. Se tiver vários problemas, por favor, envie relatórios separados de bugs. Será muito mais fácil acompanhá-los dessa forma.

  2. O título é um resumo explícito do bug (por exemplo: barra de cabeçalho é muito grande devido ao tamanho do ícone)

  3. Descubra os passos para reproduzir o bug:

  • Se você tiver passos precisos para reproduzir o problema (ótimo!), estará no caminho certo para criar um relatório de bug útil.

  • Se você conseguir reproduzir ocasionalmente, mas não depois de seguir etapas específicas, forneça informações adicionais sobre o problema para ajudar outras pessoas a entendê-lo e tentar reproduzi-lo.

  • Se você não conseguir reproduzir o problema, pode haver pouca chance de que ele possa ser razoavelmente corrigido. Se você relatar o problema, faça o possível para fornecer o máximo possível de informações/indícios sobre sua ocorrência.

  1. Certifique-se de que o seu software está atualizado. Idealmente, teste uma versão em desenvolvimento para ver se o bug já foi corrigido.

  2. Tente isolar-se do ambiente e reproduzir-se (isto é, teste em vários dispositivos).

  3. Descreva o seu ambiente especificando o seguinte:

  • versão do sistema operacional

  • modelo preciso do dispositivo (importante em dispositivos móveis)

  • se estiver a utilizar uma versão beta

  • qual compilação você está usando (F-Droid, Play Store, App Store, de dl.jami.net, sua própria compilação, etc.). Se você criou sua própria versão do Jami, especifique a versão exata do Jami Daemon e a versão do cliente (você pode obtê-la usando jamid -v e jami -v; mas observe que nossos pacotes são atualizados com frequência) e o commit do Git.

  • condições de rede: os dois dispositivos estão na mesma rede local? Em redes diferentes? Um ou ambos estão protegidos por NAT? Você está usando LTE? Você está usando Wi-Fi?

  • outros elementos, se necessário: provedor SIP, hardware, etc.

Escrever um resumo claro

Como você descreveria o bug usando aproximadamente 10 palavras? Esta é a primeira parte do seu relatório de bug que um desenvolvedor verá.

Um bom resumo deve identificar rapidamente e de forma única um relatório de bugs. Ele deve explicar o problema, não a solução sugerida.

Good: "Cancelling a file transfer crashes Jami"
Bad: "Software crashes"
Good: "All calls hang up after 32 seconds"
Bad: "Not able to call my friends"

Escrever passos precisos para reproduzir

  • Como um desenvolvedor pode reproduzir o bug no seu próprio dispositivo?

    Os passos para se reproduzir são a parte mais importante de qualquer relatório de bug. Se um desenvolvedor é capaz de reproduzir o bug, é muito provável que o bug seja corrigido. Se os passos não forem claros, talvez não seja possível saber se o bug foi corrigido. Somos totalmente cientes de que alguns bugs podem parecer óbvios para você, mas eles provavelmente estão relacionados ao seu ambiente. Quanto mais preciso você for, mais rápido o bug pode ser corrigido.

  • O que deve incluir num relatório de bugs?

    Indique se você consegue reproduzir o bug à vontade, ocasionalmente ou não. Descreva o seu método de interação com Jami além da intenção de cada passo. Depois de seus passos, descreva com precisão o resultado observado (real) e o resultado esperado. Separe claramente fatos (observações) de especulações.

Bom:

Posso sempre reproduzir seguindo estes passos:

1. Start Jami by clicking on the desktop icon
2. Start a new conversation with anyone
3. Click the file transfer icon

Expected results: A window opens and asks me to choose a file to send.
Actual results: When I click the file transfer icon, nothing happens.

Mau:

Try to transfer a file
It doesn't work.

Resultado obtido

Por favor, inclua:

  • O daemon Jami (jamid ou libjami ou libring) e o log debug do cliente.

  • O dump do núcleo, se tiver sido produzido.

Resultado esperado

É uma descrição do comportamento esperado ou desejado.

Fornecimento de informações adicionais

As informações a seguir são solicitadas para a maioria dos relatórios de bugs. Você pode economizar tempo fornecendo essas informações abaixo dos Resultados esperados.

Registros

Cliente Jami baseado em Qt (GNU/Linux, Windows, macOS)

Vá para as configurações gerais. Na seção Troubleshoot (Solução de problemas), clique em “Open logs” (Abrir registros), onde poderá obter estatísticas (“Show stats” (Mostrar estatísticas)) ou começar a gravar informações por meio de “Receive logs” (Receber registros). Em seguida, basta copiar o resultado e explicar seu cenário.

Em GNU/Linux

Registros clássicos (por padrão, apenas os registros >= avisos são registrados):

journalctl --since "24h ago" | grep jami

Registro completo: como o cliente Jami (GUI) e o daemon são processos separados, a maneira mais fácil de obter os registros de ambos é iniciá-los manualmente, um de cada vez.

  1. Certifique-se de que nenhuma instância de cliente ou daemon do Jami esteja em execução: verifique executando ps aux | grep jami em um terminal.

    • Jami pode ainda estar a correr mesmo que as janelas não estejam abertas, dependendo das suas preferências.

    • Se um cliente ou um demônio estiver em execução, encerra-os usando kill PID.

  2. Em um terminal, inicie o demônio com jamid -d -c

    • Este executável normalmente não está no PATH, e nos pacotes Debian/Trisquel/Ubuntu, ele está localizado em /usr/lib/x86_64-linux-gnu/jamid -d -c ou /usr/libexec/jamid -d -c.

  3. Em outro terminal, inicie o cliente, usando jami -d.

Para obter um rastreamento, pode executar o programa dentro do GDB:

gdb -ex run --args jami -d ou gdb -ex run --args /usr/libexec/jamid -cd, dependendo do componente que você precisa depurar.

Quando ele travar, você pode digitar bt (ou melhor ainda, thread apply all bt) e pressionar Enter. Em seguida, copie o backtrace e cole-o no problema.

Em macOS

  • Navegue para /Applications/Jami.app/Contents/MacOS/.

  • Clique duas vezes em Jami. Ele iniciará o Jami e imprimirá o registro no terminal.

  • Copie o registro do terminal para um arquivo.

Alternativamente, você pode executar /<path para Jami>/Jami.app/Contents/MacOS/Jami -d do terminal.

No Android

Para coletar registros por meio do seu telefone usando o próprio Jami:

  • Toque em Conversas

  • Toque no menu de três pontos na parte superior direita

  • Toque em Configurações

  • Toque em Registros de diagnóstico

Para recolher registros através do seu computador usando o Android Debug Bridge (adb):

  • Você precisa ter o adb configurado em seu computador.

  • Inicie o Jami em seu smartphone e execute

  • adb logcat *:D | grep `adb shell ps | egrep 'cx.ring' | cut -c10-15` > logring.txt

  • Agora tem um arquivo contendo o registro do cliente

Para Windows

Abra um terminal (cmd.exe) e inicie Jami.exe com as seguintes opções:

  • -d para abrir uma janela de consola separada para receber registros

  • -f para gravar os registros em %localappdata%\jami\jami.log