Importante

We are currently a small number of developers active on the project. As such, we cannot answer and tag all of the opened issues immediately, but we do notice and read them. Good bug reports provide us important feedback, which we thank you for and always appreciate.

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:

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

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

  5. 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.

    • If you can not reproduce the problem, there may be little chance of it being reasonably fixable. If you do report it, please try your best to provide as much information/clues about its occurrence as possible.

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

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

  8. 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

    • what build you are using (F-Droid, Play Store, App Store, from dl.jami.net, your own build, etc.). If you have built your own version of Jami, please specify the exact Jami Daemon version and client version (you can obtain it using jamid -v and jami -v; but note that our packages are updated quite often) and the Git commit.

    • network conditions:

      • are both devices on the same local network?

      • Different networks?

      • Is one or both behind NAT?

      • Are you using LTE?

      • Are you using WiFi?

    • other elements if needed:

      • SIP provider,

      • 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.

Good

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.

Bad

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)

Go to the General settings. In the Troubleshoot section, you can click on “Open logs”, where you will be able to get statistics (“Show stats”) or start recording information via “Receive logs”. Then you can just copy the result and explain your scenario.

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