Osallistu
Apu Jamille on aina tervetullutta ja sitä arvostetaan suuresti. On monia tapoja osallistua Jamin kehitykseen, mukaan lukien:
Bugeista ja ongelmista ilmoittaminen,
Kehittää koodia,
Helping package and maintain Jami for a GNU/Linux distribution or other operating system,
Kehittämällä Jami dokumentaatiota.
Katso alta, kuinka voit aloittaa osallistumisen Jamiin!
Bugeista ja ongelmista ilmoittaminen
Katso [Bug report guide] (user/bug-report-guide.md) ohjeita miten voit ilmoittaa Jamin kanssa mahdollisesti kohtaamistasi ongelmista.
Kehittää koodia
Aloita Jamin kehitystyö tutustumalla hyvin ilmoitettuihin ongelmiin: https://git.jami.net/groups/savoirfairelinux/-/issues/?sort=created_date&state=opened&label_name[]=good first issue .
Ota yhteyttä suoraan muihin kehittäjiin lisäämällä kommentti tikettiin. Näin he voivat opastaa sinua koko prosessin läpi.
Koodin lisäämiseksi Jamiin tarvitaan push-korjaus osoitteessa https://review.jami.net.
Katso myös
Lisää tietoja miten push-korjaus siirretään, katso Working with Gerrit oppaasta.
Kommentointiviestin ohjeet
Kun lähetät ”patch” korjaustiedoston Jamille, noudata seuraavia kommentointiviestiin liittyviä ohjeita:
Ensimmäisellä rivillä tulee olla muutoksen kuvaus otsikkona, jota seuraa lyhyt yhteenveto muutoksesta mitä se tekee (esim. ”add new function”, ”fix bug”, ”update documentation”).
Otsikon aiheessa voi käyttää isoja kirjaimia, mutta muun otsikon tulee olla pienillä kirjaimilla.
Toisen rivin tulee olla tyhjä.
Kolmannella rivillä tarvittaessa koko lauseen mittainen kuvaus muutoksesta.
50/72-sääntö: Ensimmäinen rivi ei saa olla pidempi kuin 50 merkkiä (ihannetapaus), ja loput viestistä tulee rivittää 72 merkin pituiseksi riviä kohden. Voit tehdä tämän tekstieditorissasi etukäteen.
Jos muutos liittyy tiettyyn ongelmaan Jami GitLab:ssa, lisää ongelman numero viestiin esim. ”GitLab: #123”. Jos muutos liittyy useisiin ongelmiin, luettele ne kaikki. Jos muutos liittyy ongelmaan, joka ei ole osa projektia, käytä numeron sijaan linkkiä missä ongelma mainitaan.
Malli commit-viestistä:
<Component/Scope>: <short Summary (imperative, max 50 characters)>
<Detailed description (in present tense) of what was changed and why
it was necessary, wrapped at 72 characters per line to maintain
readability. Include any important details that help others understand
the context of the change. Use this space to explain complex changes
or provide background information.>
[GitLab: #<issuenumber>] or [Link to issue]
Esimerkki:
ConversationView: add a new function
Adds a new function to the ConversationView class that allows
the user to sort conversations by date. This function is necessary
to improve the user experience and make it easier to find specific
conversations.
GitLab: #123
Jami paketointi
Jamin voi paketoida kahdella tavalla:
Meidän prosessin kautta joka luo asennuspaketin saataville Snap Store:sta tai https://dl.jami.net.
Sinun GNU/Linux-jakelusi paketointiprosessin kautta.
Tärkeä
Jami on melko monimutkainen projekti, jossa on paljon riippuvuuksia. Tämä ei ole nopea tai helppo tehtävä ja vaatii huoltoa.
Muista
Jos Jami on paketoitu käyttäen toista vaihtoehtoa:
For official releases, Jami uses certain Qt versions because Qt is a big dependency. This is to ensure that Jami works with the Qt version in use. Every slight change in the Qt version can break Jami or bring some small unwanted changes. For example, 6.2 → 6.4 broke the video pipeline.
Jami käyttää pjproject, haaraa koska ICE-TCP:n yli vaaditaan. Tätä emme ole suunnitelleet ylävirtaan.
libupnp sai joitain patch-korjauksia varmistaakseen, että se on rakennettu non-blocking API:lla.
FFmpeg sisältää joitain patch-korjauksia näytön jakamiseen.
Katso riippuvuuksien rakentaminen ”daemon/contrib/src”.
For internal packaging, everything is located in extras/packaging/gnu-linux
.
You can follow previous patches to understand your needs. e.g., https://review.jami.net/c/jami-client-qt/+/28036.
Jami has 3 release channels:
Sisäinen testausta varten
Nightly/Beta/Edge julkiselle betaversiolle
Stable julkisia vakaita julkaisuja varten
The internal channel is generally used to test new distributions or when a new Qt version is packaged. Then a nightly is generated once per week, and a stable is generated once per month (if unit tests are green).
Paketit lähetetään:
dl.jami.net (2 konetta, rsync 15 min välein)
Ubuntu store (snapcraft.io/jami)
To add a distribution:
Lisää Docker-tiedosto
Muuta Make-tiedosto
Päivitä paketointiskripti
Sormet ristiin
Testaa pakettia VM:llä
Varoitus
Chromium on vaikea osa rakentaa. Kolme yleistä ongelmaa ovat:
GCC on liian tuore:
Yleensä korjaus koostuu korjaustiedostojen tuomisesta Chromiumin gerritistä GCC-ongelmien korjaamiseksi
Python on liian tuore:
Yleensä korjaus koostuu käyttämällä PyEnv virtuaalisen ympäristön saamiseksi oikealla Python-versiolla
Puuttuvat riippuvuudet:
Qt:n määritysvaiheen aikana listataan rakennettujen komponenttien luettelo ja puuttuvat riippuvuudet. Yleensä paketin asentaminen tai node.js:n päivittäminen korjaa ongelman
Note that if Qt is generated without Chromium, Chromium must be removed from the package in the cache of the build machines to regenerate a new one (/var/cache/jami)
To remove a distribution:
If a distribution is EOL OR if there are 2 more recent LTS, the distribution can be removed (e.g., Ubuntu 20, 22, 24—remove Ubuntu 20) by removing related files and checks.
Muista
Seuraavat suuret muutokset ovat:
Käytä CMake sijaan autotools jami-daemon:lle.
Käytä Ubuntu Core 22 (UC22) sijaan core20 snap:lle.
Flatpak/AppImage tuki? Saattaa yksinkertaistaa mukautettua RPM/Debian-paketointia.
Only generate one unified Debian installation file and one unified RPM installation file.
Luo Jenkinsfile paketit GNU/Linuxille, macOS:lle ja Windowsille samanaikaisesti, jos mahdollista.
Kuvauksen tietoja varten (kuten kuinka kuvaus julkaistaan storessa tai ohjemistopuodissa, ks. Wiki:stä).
Kehitä tätä dokumentaatiota
Dokumenttien kehitysapu on aina tervetullutta ja arvostettua apua pienistä korjauksista kokonaan uusiin lukuihin.
This page will walk through the steps to create a new page or submit a correction. The patch review process is the same as for any other Jami project, so every command will not be explained.
Muista
Osallistumalla dokumentaatioon sitoudut antamaan sen saataville fdl, versiossa 1.3 tai missä tahansa uudemmassa Free Software Foundationin julkaisemassa versiossa; ilman vaatimuksia tekstiin.
Lupaat myös, että olet muutosten tekijä tai että kopioit ne julkisessa käytössä olevasta lähteestä tai teoksesta, joka on julkaistu ilmaisella lisenssillä, joka on yhteensopiva fdl kanssa. ÄLÄ LÄHETÄ TEKIJÄNOIKEUDELLA SUOJATTUA MATERIAALIA ILMAN LUPAA.
Katso myös
Jos haluat auttaa tämän sivun kääntämisessä, voit liittyä projektiin ja aloittaa kääntämisen osoitteessa https://explore.transifex.com/savoirfairelinux/.
Riippuvuudet
Git tarvitaan ja määritetään käyttämään SSH-avainparia ja [Jami Gerrit] tiliä (https://review.jami.net), jonne lähetät korjaukset tarkistettavaksi. Jos tarvitset apua, katso oppaamme korjaustiedoston lähettämisestä (TODO).
To preview changes locally in a web browser, the following are required to be installed:
$ pip install --upgrade sphinx sphinx_rtd_theme myst_parser
To use the auto-build and the auto-refresh feature, also install sphinx-autobuild.
$ pip install --upgrade sphinx-autobuild
Arkiston kloonaus
Kloonaa arkisto ja määritä push-asetukset seuraavasti:
$ git clone "ssh://USERNAME@review.jami.net:29420/jami-docs.git"
$ cd jami-docs
$ git config remote.origin.push HEAD:refs/for/master
Sinun kannattaa virkistää aina haara ajan tasalle ennen kuin teet mitään muutoksia tiedostoihin. Jotta kaikki tulevat muutokset ”git pull” ylävirtaan ovat samaan tasoa sinun paikallisen haaran kanssa:
$ git checkout -b my-example-change
Sivun muokkaaminen
Sivut ovat kirjoitettu [Markdown]-kielellä (https://www.markdownguide.org/). Paina Näytä sivun lähdekoodi ”View page source” sivun yläreunassa ja se avaa sivun raakatekstinä ja näet, miten se on kirjoitettu.
Jatka ja tee muutokset .md-tiedostoihin.
Työsi esikatselu
Arkiston pohjalta, suorita:
$ make clean && make html
Sinun pitäisi nyt pystyä katsomaan dokumentaatiota selaimessasi. Kotisivu on ”_build/html/index.html”.
Varoitus
Tätä dokumentaatiota ei tällä hetkellä ole rakennettu uusimmalla Sphinx versiolla. Katso ongelma GitLab:ssa saadaksesi ideoita miten kiertää tämän ongelman.
Rakenna dokumentaatio automaattisesti ja virkistä selaimesi aina kun tallennat muutokset, suorita:
$ make clean && make watch
Pidä käynnissä taustalla ja siirry sitten ”http://127.0.0.1:8000” (ei paikallinen .html-tiedosto).
Tallenna työsi
$ git add source/file/you/edited.md
$ git commit
Katso commit message guidelines miten kirjoitat hyvän commit-kuvauksen.
Muutoksen lähettäminen
Kun yrität siirtää muutoksia ensimmäistä kertaa, Gerrit valittaa, että sinulla ei ole muutosoikeuksia Change-ID-tä ja antaa ”scp”-komennon asentaakseen commit-hook:in. Kun olet suorittanut komennon, sinun tulisi pystyä lähettämään uudelleen ja muutokset siirtyvät:
$ git commit --amend --no-edit
$ git push
Työsi muokkaaminen
Tarkistaja saattaa pyytää sinua tekemään muutoksia ennen muutoksen hyväksymistä. Tämä ei ole ongelma! Tee muutokset, ”git add” ja suorita ”git commit –amend”.
Muista
Vipu ”–amend”, joka tarvitaan käskemään Git amend/tweak olemassa olevaa siirtoa sen sijaan, että tekisit uuden siirron. Tämä on työtapa, jolla päivitetään ehdotettu muutos käytettäessä Gerrit:iä.
Sivun lisääminen
Jos päätät lisätä dokumenttiin kokonaan uuden sivun, sinun on lisättävä se myös kyseisen luvun ”toctree”-ohjaukseen.
Jos esimerkiksi lisäsit uuden sivun nimeltä ”hosting-jams-on-aws-guide.md” Jamin käyttöoppaaseen ”user”-kansioon, sinun tulee lisätä se ”user/index.md”-tiedoston toctree-ohjaukseen ilman tiedostopäätettä:
```{toctree} :maxdepth: 1 bug-report-guide hosting-jams-on-aws-guide ```