Help the Krita Foundation! October 2017 Donations €858 collected 115 awesome people

素晴らしく、最速で成長しているオープンソースペイントプログラムの一つの開発に、あなたも参加できます。

Kritaはモジュラーアーキテクチャと、CalligraとQtライブラリの使用のおかげで、車輪の再発明ではなく新しい機能の開発に集中しやすくなっています。ですのでコードを書くのは楽しいです!Kritaで開発をするには、C++とQtを使う必要があります。開発をすることで両方を学ぶこともできます!

開発のはじめ方

  1. 一番大切なことですが我々は開発にKDEのPhabricatorを使用しています:https://phabricator.kde.org/diffusion/KRITA/ Githubにあるのはミラーです。我々は開発にGithubを使っていませんので、こちらにpull requestsをするのはやめてください。
  2. KDE Developer wikiを読みます
  3. 開発環境をセットアップしてKritaをビルドします。 (アーティストのDavid Revoyさんによる楽しいビルドセットアップの記事もあります)
  4. KDEのバグトラッキングシステムからいくつか修正できそうなバグを見つけます。まずはバグを修正することでコードに慣れるのはいいアプローチです。手に負える範囲から開発プロセスに慣れることができます。 もちろん0から自分が欲しくてたまらない新しい機能を書きたいと思うなら、それもOKです。
  5. バグについては、”Junior Jobs”からはじめるのもいいでしょう。新しい開発者向けの、比較的簡単なタスクです。バグトラッキングシステムでは、そうしたバグには “JJ”と印がついています。

Kritaコードベースでの作業について

アーキテクチャ – Kritaのコードベースは大幅に変更しているので、コードアーキテクチャについての最新のドキュメントはありません。過去に書かれたものはありますが、それらは古くなってあまり役に立たなってしまいました。ただコード構造を知りたい場合には、かなり最近に書かれたAPI guideがあります。

総合開発環境(IDE) – Krita開発者の中で一番人気のあるIDEは、Qt Creator、Emacs、KDevelop、vimといったものです。Qt Creatorの利点はctrl-kメニューでクラスや行などどこへでもジャンプできることです。 この場合もQt Creatorでビルドする必要はありません!ターミナルに切り替えて「make」をして結果を確かめてから、IDEに戻るほうが簡単と思います。

デバッグ – 問題には大きいものと小さいものがあります。小さい問題に対してはQt Creatorのデバッガー(run external application)やコードへのqDebugメッセージの追加でなんとかなるでしょう。困難な問題については、最初に取るべきなのはユニットテストを書くことです。欠陥があるコードで問題を再現する、パターンや操作のコードです。そうすることで、修正を見つけ出すことも、後で修正状態を保つのにも役立ちます。

リソース – コード学習で一番重要な段階は、メモリ管理を真の意味で理解することです。ポインター、スマートポインター、ポインター操作などです。JavaやC#のプログラマは、そのことについて少し勉強する時間を取る必要があります。C++とQtに慣れるための資料をいくつかあげます。

問題対処のTips

機能とリファクタリング – 時には、特定なゴールを達成するのに多くの作業が必要になるとわかっていることがあります。こうした時の変更は「master」ではない別の機能追加ブランチで行いましょう。例えばDmitryは自分のテスト用のブランチで機能追加開発を行っています。ユーザがDmitryの進捗をチェックのも簡単です。

パフォーマンス向上 – 機能追加ではなく、Kritaのある部分が遅い、というユーザの発言に取り組みたい時があるでしょう。こうした場合まず行うのは、Kritaをcallgrindvtune環境で実行することです。こうしたツールは実行時のボトルネックを表示することができます。異なる視点からの解析を行うので、両方を使うことが重要です!

バグ – 土曜の朝に修正するのに丁度好さそうなバグをバグデータベースに見つけることもあります。時には緊急性の高いバグ(データ損失など)があるかもしれません。IRCやフォーラムの誰かがバグについて話し出すかもしれません。バグについてまず行うことは、再現方法を見つけることです。次に、処理が行われている部分のコードの確認です。クラッシュするバグで、特に謎が多い場合は、バックトレースの重要そうな行についてGoogleで調べるのがいいかもしれません。時にはディストリビューションの問題ということもあります!

障害物 – Kritaでの開発を手伝おうとしていて、何かが障害になって進めない、ということがあれば、知らせてください!KritaのIRCチャンネルで話をして、できることを探しましょう!

連絡の取り方と、開発者になる方法

バグ修正の作業やGUIのちょっとした変更をしていて、躓いてしまうこともあるかもしれません。そうした時にできる一番のことは、残りのKritaチームに連絡を取ることです。オープンソースアプリケーションで作業をする楽しみの一つは、結局のところコミュニティなのです!irc.freenode.netの#kritaチャンネルに参加して (なお、開発者の多くはヨーロッパもしくはインドから参加しています)質問してみてください。すぐに返事が返ってこなくても、しばらく待ってみてください。開発者の中にはIRCクライアントを常にオープンにしている人がいて、何時間も後に返答するということがよくあります!

また、メーリングリストにメールを送ることもできます: kimageshop@kde.org 個々の開発者に直接メールを送るのはお勧めできません。質問の答えを知らない人にメールを送ってしまうかもしれないですし、他のKrita開発者が答えるチャンスを逃してしまうからです。

あなたのパッチが完成したら、git.reviewboard.kde.orgに投稿してください。groupには’calligra’を選択します。開発者があなたのパッチをチェックして、問題がなければ代わりにgitにpushします。3つ目のパッチが承認されると、KDE identityアカウントのステータスを開発者にアップグレードする依頼を受けることになるでしょう!これについてのガイドは以下です: https://techbase.kde.org/Contribute/Get_a_Contributor_Account

パッチを作成する簡単な方法の一つは、自分のコミットすべてをローカルのGitブランチに行ってから、以下のコマンドをターミナルで実行することです:

git diff HEAD~2..HEAD > my-patch.diff

これを実行すると最新の2つのコミットのdiffファイル(テキストファイル)が作成されます。そのdiffをレビューに添付してください。