How To Help Developing Lazarus/ja

From Free Pascal wiki
Jump to navigationJump to search

Deutsch (de) English (en) español (es) Bahasa Indonesia (id) 日本語 (ja) português (pt) русский (ru)

日本語版メニュー
メインページ - Lazarus Documentation日本語版 - 翻訳ノート - 日本語障害情報

Lazarus自体の開発に用意するもの

次の2点が必要です:

  • 最新のFreePascal コンパイラ(FPC)もしくは最近のSVNバージョン(最も新しいもの)を入手して下さい。FPC を入手するには、FreePascal downloadを参照して下さい。
  • 次にSVNから最も新しいLazarusを入手する必要があります。これを入手するには、Getting Lazarus via SVNを参照して下さい。

開発する場所

最新の Lazarus を入手して開発の準備が整えました。けれども、“さて何から手を付けたらいいの?”という時に下記を参照してください。

既知のバグ

もしLazarusについて個人的に特別な問題がなく、単に手助けしたいなら、バグリスト Bug Trackerの参照を推奨します。ここなら該当するバグを見つけてフィックスしたり、ハッキングする事ができます。 Lazarusチームは、1.0 に向けてで公開されたバグに優先順位を決めています。

ドキュメンテーション

Lazarus はより多くのドキュメントを必要としています。もしバグを修正する作業を望まないなら、ドキュメントを書くことによって貢献することも出来ます。まさにこのページは作業が進行中です。 利用価値のある情報を加えたり、間違いを見つけたら、このページのコンテンツを自由に改善してください。

Lazarus文書エディタLCLに関する文書のロードマップには、ドキュメント作成の手順とドキュメント化された項目のリストがありますので参照して下さい。

オンラインIDEヘルプは、Wiki の一部として時間が経つにつれ作成されていきます。 最近、IDE ウィンドウに関する Lazarus IDE/ja ドキュメントの多数のページが追加されました。IDEの作業の際、ヘルプが必要になればF1キーを押してください。Wikiページからヘルプを参照することが出来ます(まだ作成されていなかったり、不完全だったりする場合があります)。適切な知識をお持ちであれば改善して下さい。

IDE

次のリンクを参照して下さい: Extending the IDE/ja, 1.0に向けて.

ウイジェットセット ("interfaces")

ウイジェットセット(WS) はターゲットから独立しているLCLコードの部分と、ターゲットOSのためのコードを生成するための"グルーコード (訳注:glue code オブザーバーパターンを実装したり、置換するコードのことか?)" です。 サポートされているそれぞれのOSでは、依存しているWSのユニットは C:\Lazarus\lcl\interfaces\. の中で見ることができます。

MattiasがLazarusメーリングリストに2006-07-15に提示したものによるとWSを改善するには、下記が、コードを追う際にフォローすべき概要です。WSに変更を加えるとき、変更の結果をたしかめるのに、(IDEに含まれるLazarusなど)すべてをリビルドする必要はありません。次のようにしてください:


* テストするプロジェクトを作成します。(WSの変更のテストコードを含む小さいプログラムをつくります)
* 'Build Lazarus'と'Configure Build Lazarus' のためのキーボードショートカットを作ります。
  (IDEで Editor Options / Keymappingを選択);
繰り返します
 * LCLのみをビルドするように"Build Lazarus"を設定します。
  (IDEで Tools/Configure "Build Lazarus"を選択);
 繰り返します
  * WSコードに変更を加えます。
  * Build Lazarus (IDEで Tools/Build Lazarus を選択
    - これはLCLと選択されたWSのみリビルドします。)
  * テスト用のプロジェクトをコンパイルします。
  * プログラムを実行してデバッグします。
 エラーがでなくなるまで繰り返します 
 * "Build Lazarus"をすべてビルドするように再設定します。
   (IDEで再び Tools/Configure "Build Lazarus"を選択);
 * LazarusをビルドしてIDEをテストします。
IDEで変更したコードのよるエラーやでグレーションがなくなるまで繰り返します 
* パッチを作って送ります

あなたの修正や変更を反映する方法

Creating A Patch/jaをみて、パッチを作成してください。 Lazarusの開発者にあなたのパッチを反映させる良い方法は、バグトラッカーに問題点のページをつくり、そこにパッチを添付することです。他の方法としては、Lazarusの開発者用のメーリングリストに投稿する方法があります。patch@lazarus.dommelstein.net へ送ってください。(タイトルに必ず "patch"をいれてください。また、最大40Kbまでです)

Dealing with regressions

Lazarusソースコードは以前動いていたものが、時間がたつにつれ、動かなくなるかもしれません。 こういった場合、問題の解決に手がかりがないことがありますが、どのリビジョンで問題が発生したのか繰り返しレビジョンを調べていくことができます。

この方法はシンプルですが、次の点を考慮する必要があります:

レビジョン番号1000から5000の間で発生しているとすると、3000で一度テストしてみます。 テストは、svnのコード、ターゲットとしているlclで、テストができるコードでおこないます。 もし、テストがうまくいくなら、次は3000と5000の間で、うまくいかないなら、1000と3000の間で、というふうにします。

何度かすると、どのリビジョンの変更部分が問題を発生させたかを、切り分けることができます。 これにより、問題の解決をより簡単なものにできます。 何が原因で品質低下をまねいたかはっきりできれば、Lazarusの開発者達にこの問題の再現やバグレポートなどを書くことができます。

それぞれのリビジョンが、どのソースコードなどの変更に対応するかを調べるため、Lazarus svn browser (ViewVC)を使うことができます。調べるリビジョンの間の間隔が比較的すくない(25くらい)になってくれば、ViewVCでチェックするのがより速くなり、最後は問題となりそうな部分を特定することが早く可能になります。

特定のリビジョンは次のコマンドで入手できます。

svn update -r <revision number>


注意点もし、インターネットの接続が遅かったり、不安定だったりするならば、いろんなバージョンのリビジョンをSubVersionから取得するのは、時間やコストがかかります。それらは、インターネットからダウンロードされるからです。

もし、 Git mirror を使えるなら、この問題は解決できます。なぜなら、それを使えば全部のリポジトリ履歴があなたのコンピュータにあるからです。これを使えば、どんな古いリビジョンでもインターネットに接続したり都度都度チェックアウトすることなしに、取得することができます。

品質低下を自動的に探す

SubVersion

Florianは、こういった品質低下によるエラーを発見する助けになる簡単なunix scriptをかきました。 このスクリプトはこちらです。 searchrev.

Git mirrors

Git includes a command called bisect which helps with finding regression bugs. It also has built-in support for automated testing. You need to create a small testcase and let Git use that testcase to determine if a revision is buggy or not. So with the automated bisecting, regression bugs can be found in seconds. For more information on the git bisect command, see the Git User Manual.

To download the Git mirror of the Lazarus repository, follow this link, or for more detailed instructions look here - git mirrors.

Need more help?

If you have any question you can ask them on one of the following places:

  • The Lazarus Mailing list (see Mailing list)
  • The #lazarus-ide IRC channel on irc.freenode.net.

See also