Important

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.

Ghid pentru raportarea erorilor

Acest ghid include instrucțiuni pas cu pas pentru raportarea defecțiunilor care apar în Jami.

Configurează-ți mediul

  • Fii pregătit pentru pierderea datelor. Fă-ți o copie de rezervă a contului și asociază-ți contul cu cît mai multe aparate posibil.

  • Instalează cea mai recentă versiune (sau chiar o versiune beta) a lui Jami. Raportarea unor defecțiuni referitoare la versiuni mai vechi este mai puțin utilă și există probabilitatea ca acestea să fi fost deja remediate în versiunile mai noi.

Cum se raportează o eroare

  1. Creează-ți un cont pe Jami GitLab dacă nu ai deja unul.

  2. Alege proiectul potrivit pentru a raporta defecțiunea:

  3. Dacă apar mai multe defecțiuni, raportează-le separat. Va fi mult mai ușor să le urmărim în acest fel.

  4. Titlul este un rezumat explicit al erorii (de ex.: banda cu titlul este prea mare din cauza dimensiunii simbolului)

  5. Stabilește pașii de obținere a erorii:

    • Dacă ai pașii exacți pentru a obține eroarea (grozav!), ești pe cale să creezi un raport de eroare util.

    • Dacă defecțiunea apare ocazional, dar nu după ce ai urmat anumiți pași, oferă informații suplimentare despre problemă pentru a-i ajuta pe ceilalți să înțeleagă și să o găsească.

    • 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. Asigură-te că programul tău este actualizat. În mod ideal, încearcă o versiune în curs de dezvoltare pentru a vedea dacă problema ta a fost deja rezolvată.

  7. Încearcă să o izolezi de mediul înconjurător și să o obții din nou (de ex. testează pe mai multe aparate).

  8. Descrie mediul (mediile) de lucru prin precizarea următoarelor elemente:

    • Versiune sistemului

    • modelul precis al aparatului (important pentru telefoane)

    • dacă folosești o versiune 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.

Scrierea unui rezumat clar

Cum ai descrie problema cu aproximativ 10 cuvinte? Aceasta este prima parte a raportului tău pe care o va vedea un programator.

Un rezumat bun ar trebui să identifice rapid și unic un raport de eroare. Ar trebui să explice problema, nu soluția sugerată de tine.

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"

Scrierea unor pași preciși pentru obținerea erorii

  • Cum poate un programator să obțină această eroare?

    Pașii pentru obținerea erorii reprezintă cea mai importantă parte a oricărui raport de eroare. Dacă un programator este capabil să obțină aceeași eroare, este foarte probabil ca aceasta să fie rezolvată. Dacă pașii sînt neclari, s-ar putea să nu fie posibil să se afle dacă problema a fost rezolvată. Unele erori pot părea evidente pentru tine, dar probabil că sînt legate de mediul tău. Cu cît ești mai precis, cu atît mai repede poate fi rezolvată problema.

  • Ce ar trebui să incluzi într-un raport de eroare?

    Indică dacă poți obține această eroare în orice moment, ocazional sau deloc. Descrie metoda ta de interacțiune cu Jami, pe lîngă intenția fiecărui pas. După pașii parcurși, descrie cu precizie rezultatul observat (real) și rezultatul așteptat. Separă în mod clar faptele (observațiile) de speculații.

Good

Pot obține mereu rezultatul urmînd acești pași:

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.

Rezultatul obținut

Include:

  • Serviciul Jami (jamid sau libjami sau libring) și jurnalele de depanare ale programului.

  • „Core dump”, dacă s-a produs.

Rezultatul așteptat

Este o descriere a comportamentului așteptat sau dorit.

Furnizarea de informații suplimentare

Următoarea informație se solicită pentru majoritatea rapoartelor de erori. Poți economisi timp dacă furnizezi această informație după „Rezultatul așteptat”.

Jurnale

Jami bazat pe 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.

În GNU/Linux

Jurnale clasice (by default logs only >= warning are logged):

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

Full log: The Jami client (GUI) and daemon are separate processes. To obtain logs from both processes, start each process manually, one at a time.

  1. Asigură-te că nu funcționează nici programul Jami nici serviciul Jami: verifică dînd comanda ps aux | grep jami într-un terminal.

    • Este posibil ca Jami să funcționeze chiar dacă nu sînt deschise ferestre, în funcție de preferințele tale.

    • Dacă fie programul, fie serviciul funcționează, oprește-le folosind kill PID.

  2. Într-un terminal, pornește serviciul Jami cu jamid -d -c

    • În mod normal, acest executabil nu se află în PATH, iar în pachetele Debian/Trisquel/Ubuntu, este situat în /usr/lib/x86_64-linux-gnu/jamid -d -c sau /usr/libexec/jamid -d -c.

  3. Într-un alt terminal, pornește Jami, folosind jami -d.

Pentru a obține un backtrace, pornește programul în instrumentul GNU Debugger:

gdb -ex run --args jami -d, sau gdb -ex run --args /usr/libexec/jamid -cd, în funcție de componenta care trebuie depanată.

Dacă se blochează, poți tasta „bt” (sau chiar mai bine, „thread apply all bt”) și apoi apeși Enter. Apoi copiază rezultatul „backtrace” și lipește-l în mesaj.

În macOS

  • Navighează la /Applications/Jami.app/Contents/MacOS/.

  • Dublu clic pe Jami. Acesta va porni Jami și va afișa jurnalul în terminal.

  • Copiază jurnalul din terminal într-un fișier.

Alternativ, poți da comanda /<path to Jami>/Jami.app/Contents/MacOS/Jami -d în terminal.

În Android

Pentru a aduna jurnalele prin intermediul telefonului folosind Jami:

  • Atinge „Conversații”

  • Atinge cele trei puncte din dreapta sus

  • Atinge „Reglări avansate”

  • Atinge „Jurnalul diagnozei”

Pentru a colecta jurnalele prin intermediul calculatorului cu ajutorul Android Debug Bridge (adb):

  • Trebuie să ai „adb” configurat în calculator.

  • Pornește Jami în telefonul tău și apoi execută

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

  • Acum ai un fișier care conține jurnalul aplicației

Pentru Windows

Deschide un terminal (cmd.exe) și pornește Jami.exe cu următoarele opțiuni:

  • -d pentru a deschide o fereastră de consolă separată pentru a primi jurnalele

  • -f pentru a scrie jurnalele în %localappdata%\jami\jami.log