ジャミ に 貢献 する

Jamiへの貢献は常に歓迎され,非常に評価されます.バグや問題を報告し,コードを寄与し,GNU/Linux配布または他のオペレーティングシステムのために Jami をパッケージ化および維持するのに役立つこと,およびこれらのドキュメントに貢献する多くの方法があります.

ジュミへの貢献を始める方法については,下記を参照してください!

障害物と問題報告

ジュミで遭遇するバグや問題を報告する方法に関する手順を:doc:`user/bug-report-guide`で参照してください.

貢献コード

If you want to start to contribute to Jami, you can start by looking good first issues at: https://git.jami.net/groups/savoirfairelinux/-/issues/?sort=created_date&state=opened&label_name%5B%5D=good-first-issue

You can contact developers directly by adding a comment on the ticket you want to start with. They will be able to guide you through the process.

At some point, you will need to push a patch on https://review.jami.net. For more information on how to do this, please refer to the ゲリット と 一緒 に 働い て いる guide.

包装 ジャーミ

There is two possible ways to package Jami: + Via our internal process to create packages available on the Snap Store or https://dl.jami.net + Via the packaging process of your favorite GNU/Linux distribution

注釈

Jami is a quite complex project with a lot of dependencies. This isn't a quick and easy task and ask for some maintainance.

If you choose the second option, here are some useful notes: + For our official release, we stick to a certain Qt version, because Qt is a big dependency and we need to ensure that Jami works with the version we use. Every slight change in the Qt version can break Jami or bring some small unwanted changes (e.g. 6.2->6.4 broke the video pipeline) + We also fork pjproject due to ICE over TCP that is not planned upstream + libupnp got some patches to be sure that it's build with the non-blocking API. + FFMpeg got some patches for screen sharing. + You can check how dependencies are built in 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

We use 3 channels: + Internal for testing purposes + Nightly/Beta/Edge for public beta + Stable for public releases

We generally use internal when we test new distribution or when we package a new Qt version Then we try to generate a nightly per week and one stable per month (if unit tests are green).

Packages are pushed to: + dl.jami.net (2 machines, with a rsync every 15 min) + Ubuntu store (snapcraft.io/jami)

If you want to add a new distribution, you will need to: + Add Dockerfile + Change Makefile + Update packaging script + Cross fingers + Test the package in a VM

注釈

Chromium is a hard part to build. the 3 commons problems we got 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, we must remove the package in the cache of the build machines to regenerate a new one (/var/cache/jami)

If you want to remove a distribution: + If a distribution is EOL OR if there is 2 more recent LTS, we can remove the distribution (e.g. ubuntu 20, 22, 24 - remove ubuntu 20) by removing related files and checks

注釈

For the next big changes we want to:

  • Use CMake instead autotools for jami-daemon

  • Use core22 instead core20 in snap

  • Flatpak/AppImage support? This may simplify custom packaging for RPMs/Debs

  • Only generate one deb instead one per distribution. Same for RPMs

  • Use Jenkinsfile to generate package for Linux/Windows/MacOs at the same time if possible

For internal information (such as how to publish to stores, cf internal wiki).

この文書に貢献する

これらの文書への貢献は,小さな修正から,新しい章まで,常に歓迎され,評価されます.

このページでは新しいページを作成または修正を提出するための手順をご案内します.パッチレビュープロセスは,他のJamiプロジェクト <How-to-submit-a-patch>`と同じです.したがって,すべてのコマンドを説明しません.

注釈

このドキュメントに寄与することで,あなたは:doc:fdl,バージョン 1.3 またはフリーソフトウェア財団が発行した後期バージョンの下でご貢献を公開することに同意します. 不変なセクション,前面カバーテキスト,後面カバーテキストなどありません.

また,変更の作成者自身か,公開領域にある作品から,または:doc:fdl と互換性のある無料ライセンスで公開された作品からコピーしたものであることを約束します.

注釈

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/jami/

依存性

設定されたGitはSSHキーパアを使用し,その上でパッチをレビューに送る `Jami Gerritのアカウントをインストールする必要があります.

ウェブブラウザで本地的に変更を先見表示したい場合は, Sphinx, Read the Docs Sphinx theme,および `MyST Markdown parser <https://myst-parser.readthedocs.io/en/latest/index.html>`_をインストールする必要があります.

$ pip install --upgrade sphinx sphinx_rtd_theme myst_parser

自動構築と自動更新機能を使用したい場合は, `sphinx-autobuild <https://github.com/executablebooks/sphinx-autobuild>`_をインストールしてください.

$ pip install --upgrade sphinx-autobuild

資料庫をクローンする

プレッシュ設定を設定する

$ git clone "ssh://USERNAME@review.jami.net:29420/jami-docs.git"
$ cd jami-docs
$ git config remote.origin.push HEAD:refs/for/master

ファイルに変更をする前に,各貢献/変更に対して新しい支店をチェックしたいかもしれません. get ` 簡単に将来からの変更を上流から本地の主要支店に引き込むことができます.

$ git checkout -b my-example-change

ページの編集

ページはマークダウンまたは `reStructuredText <https://www.sphinx-doc.org/en/master/usage/restructuredtext/basics.html>`_で書かれています.ページの原始ソースを開いて,どのように書かれていたかを確認するには,任意のページの上部にある"ページソースを見る"をクリックできます.

``.rst```または ``.md``ファイルに変更をしてください.

作品をレビューする

資料庫の底から:

$ make clean && make html

ウェブブラウザでドキュメントを閲覧できます.ホームページは ``_build/html/index.html``です.

注釈

This documentation does not currently build with the latest version of sphinx. Please see this issue on GitLab for a workaround and updates regarding this problem.

変更を保存するたびに,ドキュメントを自動的に作成し,ウェブブラウザを更新するには:

$ make clean && make watch

このファイルをバックグラウンドで実行して, http://127.0.0.1:8000 に移動します (*本地.html ファイルではありません).

仕事を節約する

$ git add source/file/you/edited.md
$ git commit

メッセージはこんな感じで

Short summary of your change in present tense

Longer description of your change in complete sentences, if necessary.

Jami GitLab issue numbers (e.g. GitLab: #445), if relevant.

例えば:

Add new page section to contribute guide

Add a new section explaining how to add a new page to these docs,
including listing it in the `toctree` directive of the containing
section/folder index.

GitLab: #123

変更を提出する

変更を押す最初のとき,ゲリットはあなたのコミットに変更 IDがないと文句を言うし,コミットハックをインストールするコマンドを提供します.コマンドを実行した後,変更をリコンミットして押すことができます:

$ git commit --amend --no-edit
$ git push

作品を改変する

修正は,修正を修正するために,変更を実行し,変更を修正するために,変更を実行する. 修正を修正する際に,変更を更新する作業流です. Gerrit を使用する際に提案された変更を更新する作業流です.

ページを追加する

文書に全新ページを追加することを決定する場合は,その章の ``toctree``指示にも追加する必要があります.

```フォルダの Jamiユーザーマニュアルに ````という新しいページを追加した場合は, ```toctree``指示の ```, *st```, *無*ファイル拡張子で追加する必要があります:

.. toctree::

   ...
   bug-report-guide
   hosting-jams-on-aws-guide