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 erros

Este guia inclui instruções passo a passo para comunicar erros e problemas encontrados no Jami.

Configure o seu ambiente

  • Esteja preparado para a perda de dados. Faça uma cópia de segurança da 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. Comunicar erros/problemas relativamente a versões mais antigas é menos útil e existe a probabilidade de já terem sido corrigidos em versões mais recentes.

Como comunicar um erro

  1. Crie uma conta no Jami GitLab caso não tenha uma.

  2. Escolha o projeto certo para publicar o seu problema:

  3. Se tiver vários problemas, envie relatórios de erros separados. Será muito mais fácil manter o controlo sobre eles dessa forma.

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

  5. Descobrir os passos para reproduzir o erro:

    • Se tiver passos precisos para reproduzir o problema (ótimo!), está no bom caminho para criar um relatório de erro útil.

    • Se conseguir reproduzir ocasionalmente, mas não depois de seguir passos específicos, forneça informações adicionais sobre o problema para ajudar os outros a compreendê-lo e a 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 seu erro já foi corrigido.

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

  8. Descreva o seu ambiente especificando o seguinte:

    • versão do sistema operativo

    • modelo exato do dispositivo (importante para 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 descreveria o erro utilizando aproximadamente 10 palavras? Esta é a primeira parte do seu relatório de erro que um programador verá.

Um bom resumo deve identificar rápida e exclusivamente um relatório de bug. 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 é que um programador pode reproduzir o erro no seu próprio dispositivo?

    Os passos para a reprodução são a parte mais importante de qualquer relatório de erro. Se um programador for capaz de reproduzir o erro, é muito provável que este seja corrigido. Se os passos não forem claros, pode nem sequer ser possível saber se o erro foi corrigido. Temos plena consciência de que alguns erros podem parecer óbvios para si, mas provavelmente estão relacionados com o seu ambiente. Quanto mais preciso for, mais rapidamente o erro pode ser corrigido.

  • O que deve ser incluído num relatório de erros?

    Indique se consegue reproduzir o erro à vontade, ocasionalmente, ou não consegue de todo. Descreva o seu método de interação com o Jami, para além da intenção de cada passo. Após os seus passos, descreva com precisão o resultado observado (real) e o resultado esperado. Separe claramente os factos (observações) das 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.

  • Um core dump, se tiver sido produzido.

Resultado esperado

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

Fornecer informações adicionais

As informações a seguir são solicitadas para a maioria dos relatórios de erros. Pode poupar tempo fornecendo estas informações abaixo dos Resultados esperados.

Registos

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

Registos clássicos (por defeito, apenas são registados os registos >= aviso):

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

Registo completo: uma vez que o cliente Jami (GUI) e o daemon são processos separados, a forma mais fácil de obter registos de ambos é iniciá-los um de cada vez, manualmente.

  1. Certifique-se de que não estão a ser executadas instâncias do cliente ou daemon Jami: verifique executando ps aux | grep jami num terminal.

    • O Jami pode continuar a ser executado mesmo que não haja janelas abertas, dependendo das suas preferências.

    • Se o cliente ou o daemon estiverem em execução, encerre-os usando kill PID.

  2. Num terminal, inicie o daemon 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. Noutro terminal, inicie o cliente, utilizando jami -d.

Para obter um backtrace, é possível 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 precisa de depurar.

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

Em macOS

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

  • Faça duplo clique em Jami. O Jami será iniciado e o registo será impresso no terminal.

  • Copie o registo do terminal para um ficheiro.

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

Em Android

Para recolher registos através do seu telemóvel utilizando o próprio Jami:

  • Toque em Conversas

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

  • Toque em Configurações

  • Toque em Registos de diagnóstico

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

  • É necessário ter o adb configurado no seu computador.

  • Inicie o Jami no seu telemóvel e, em seguida, execute

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

  • Agora tem um ficheiro que contém o registo do cliente

Em Windows

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

  • -d para abrir uma janela de consola separada para receber os registos

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