Katkı Sun
Jami’ye yapılan katkılar her zaman memnuniyetle karşılanır ve çok takdir edilir. Jami’ye katkıda bulunmanın birçok yolu vardır:
Hata ve sorunları raporlanma,
Kod katkısı sunma,
Jami’nin GNU/Linux dağıtımı veya başka bir işletim sistemi için paketlenmesine ve bakımının yapılmasına yardımcı olma,
Jami belgelerine katkıda bulunma.
Jami’ye katkıda bulunmaya nasıl başlayacağını öğrenmek için lütfen aşağıya bak!
Hataları ve sorunları bildirme
Jami ile karşılaşabileceğiniz herhangi bir sorunu nasıl bildireceğinize ilişkin adım adım talimatlar için lütfen Hata raporu kılavuzuna bak.
Kod katkısı
To start contributing to Jami, look at the good first issues at: https://git.jami.net/groups/savoirfairelinux/-/issues/?sort=created_date&state=opened&label_name[]=good first issue .
Bilete bir yorum ekleyerek geliştiricilerle doğrudan iletişime geç. Bu, geliştiricilerin süreç boyunca sana rehberlik etmesini sağlayacaktır.
Kodun Jami’ye entegre edilebilmesi için https://review.jami.net adresine yama ile gönderim yapılması gerekecektir.
Ayrıca bakınız
Yamanın nasıl aktarılacağı hakkında daha fazla bilgi için lütfen Gerrit ile Çalışmak kılavuzuna bak.
Katkı yönergelerini tamamla
Jami’ye bir yama gönderirken lütfen taahhüt mesajları için aşağıdaki yönergeleri izle:
İlk satır, değişikliğin bileşenini veya kapsamını içermeli ve ardından emir kipindeki değişikliğin kısa bir özetini içermelidir (örneğin, “yeni işlev ekle”, “hata düzelt”, “belgeleri güncelle”).
Konu, bileşenin veya kapsamın büyük harflerini kullanabilir ancak başlığın geri kalanı küçük harfle yazılmalıdır.
İkinci satır boş olmalıdır.
Üçüncü satır, gerekirse tam cümlelerdeki değişikliğin daha uzun bir açıklamasının başlangıcı olmalıdır.
50/72 kuralı: İlk satır 50 karakterden uzun olmamalıdır (ideal olarak) ve mesajın geri kalanı satır başına 72 karakter olacak şekilde sarılmalıdır. Bu, metin düzenleyicide yapılandırılabilir.
Değişiklik Jami GitLab’daki belirli bir sorunla ilgiliyse, sorun numarasını taahhüt mesajına ekle. Örneğin: ‘GitLab: #123’. Değişiklik birden fazla sorunla ilgiliyse hepsini listele. Değişiklik projenin parçası olmayan bir sorunla ilgiliyse bunun yerine sorunun bağlantısını kullan.
Taahhüt mesajı için şablon:
<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]
Örneğin:
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
Paket Jami
Jami’yi paketlemenin iki olası yolu vardır:
Snap Store’da veya https://dl.jami.net’te mevcut paketler oluşturmak için dahili sürecimiz aracılığıyla.
Favori GNU/Linux dağıtımınızın paketleme süreci aracılığıyla.
Önemli
Jami, birçok bağımlılığı olan oldukça karmaşık bir projedir. Bu hızlı ve kolay bir iş değildir ve bakım gerektirir.
Not
Jami ikinci seçenek kullanılarak paketlendiyse:
Resmi sürümler için Jami belirli Qt sürümlerini kullanıyor çünkü Qt büyük bir bağımlılık. Bunun amacı Jami’nin kullanılan Qt sürümüyle çalışmasını sağlamaktır. Qt sürümündeki her küçük değişiklik Jami’yi bozabilir veya bazı küçük istenmeyen değişiklikleri beraberinde getirebilir. Örneğin, 6.2 → 6.4 video hattını bozdu.
Jami, TCP üzerinden ICE’nin yukarı yönde planlanmayan bir gereksinim olması nedeniyle pjproject çatalını kullanıyor.
libupnp received some patches to ensure that it’s built with the non-blocking API.
FFmpeg bazı ekran paylaşımı yamalarına sahiptir.
Bağımlılıkların nasıl oluşturulduğunu kontrol etmek için ‘daemon/contrib/src’ adresini ziyaret et.
Dahili paketleme için her şey “extras/packaging/gnu-linux” konumunda bulunur. İhtiyaçları anlamak için önceki yamaları takip edebilirsin. ör. https://review.jami.net/c/jami-client-qt/+/28036.
Jami’nin 3 yayın kanalı var:
Internal for testing purposes
Herkese açık beta için Nightly/Beta/Edge
Stable for public releases
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).
Packages are pushed to:
dl.jami.net (2 machines, with an rsync every 15 min)
Ubuntu store (snapcraft.io/jami)
To add a distribution:
Dockerfile ekle
Makefile değiştir
Update packaging script
Cross fingers
Test the package in a VM
Uyarı
Chromium is a hard part to build. Three common problems encountered are:
GCC is too recent:
Generally the fix consist of importing patches from Chromium’s gerrit to fix GCC issues
Python is too recent:
Generally the fix consist of using PyEnv to get a virtual environment with the correct Python’s version
Missing dependencies:
During the configuration step of Qt, the list of built components is listed and the missing dependencies are listed. Generally installing a package or updating node.js fix the issue
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.
Not
The next big changes required are:
Use CMake instead of autotools for jami-daemon.
Use Ubuntu Core 22 (UC22) instead of core20 in snap.
Flatpak/AppImage support? This may simplify custom RPM/Debian packaging.
Only generate one unified Debian installation file and one unified RPM installation file.
Use Jenkinsfile to generate packages for GNU/Linux, macOS, and Windows at the same time if possible.
For internal information (such as how to publish to stores, cf. internal wiki).
Bu belgeye katkıda bulunmak
Bu dokümanlara küçük düzeltmelerden yeni bölümlere kadar katkılar her zaman hoş karşılanmaktadır ve takdir edilir.
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.
Not
By contributing to this documentation, you agree to make your contributions available under the fdl, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
You are also promising that you are the author of your changes, or that you copied them from a work in the public domain or a work released under a free license that is compatible with the fdl. DO NOT SUBMIT COPYRIGHTED WORK WITHOUT PERMISSION.
Ayrıca bakınız
If you want to help to translate this page, you can join the project and start translating this page on https://explore.transifex.com/savoirfairelinux/.
Bağımlılıklar
Git is required to be installed and configured to use your SSH keypair and an account on the Jami Gerrit, where you would send your patches for review. If you need help with this, see the beginning of our patch submission guide (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
Depoyu klonlama
Depoyu klonlayın ve baskı ayarlarını şöyle yapılandırın:
$ git clone "ssh://USERNAME@review.jami.net:29420/jami-docs.git"
$ cd jami-docs
$ git config remote.origin.push HEAD:refs/for/master
You may want to check out a new branch for each contribution/change before you make any change to the files so that you could easily git pull any future changes from upstream into your main local branch:
$ git checkout -b my-example-change
Bir sayfayı düzenlemek
Pages are written in Markdown. Click “View page source” at the top of any page to open the raw source of the page and see how it was written.
Go ahead and make your changes to the .md files.
Çalışmanın ön izlenmesi
Deponun tabanından şunu çalıştır:
$ make clean && make html
Artık belgeleri web tarayıcında görüntüleyebilsin. Ana sayfa _build/html/index.html adresindedir.
Uyarı
Bu belge şu anda Sphinx’in en son sürümüyle oluşturulmamaktadır. Bu sorunla ilgili geçici çözüm ve güncellemeler için lütfen GitLab’daki bu sayıya bak.
Belgeyi otomatik olarak oluşturmak ve değişiklikleri kaydettiğinizde web tarayıcınızı yenilendirmeniz için:
$ make clean && make watch
Bunu arka planda çalışmaya devam et, ardından http://127.0.0.1:8000 adresine git (yerel .html dosyasına değil).
Çalışman kaydediliyor
$ git add source/file/you/edited.md
$ git commit
İyi bir taahhüt mesajının nasıl yazılacağını öğrenmek için commit mesaj kurallarına bak.
Değişiklik göndermek
The first time you try to push your changes, Gerrit will complain that you don’t have a Change-Id in your commit, and provide an scp command to install the commit hook.
After running the command, you should be able to recommit and push your change:
$ git commit --amend --no-edit
$ git push
İşinizi değiştirmek
A reviewer may ask you to make changes to your patch before merging it.
This is no problem!
Simply make the changes, git add them, and run git commit --amend to modify the patch.
Not
The --amend switch, which is required to tell Git to amend/tweak the existing newest commit rather than making a new commit.
This is the workflow for updating a proposed change when using Gerrit.
Sayfa eklenmesi
If you decide to add a whole new page to the documentation, you must also add it to the toctree directive of that chapter.
For instance, if you added a new page called hosting-jams-on-aws-guide.md to the Jami user manual in the user folder, you should add it in the toctree directive of user/index.md, without the file extension:
```{toctree}
:maxdepth: 1
bug-report-guide
hosting-jams-on-aws-guide
```