Difference between revisions of "How To Help Developing Lazarus/ja"

From Free Pascal wiki
Jump to navigationJump to search
m (→‎劣化、品質の低下に対応する: Remove defunct reference to git mirror)
 
(10 intermediate revisions by 5 users not shown)
Line 58: Line 58:
 
  * パッチを作って送ります
 
  * パッチを作って送ります
  
== How to submit your changes? ==
+
== あなたの修正や変更を反映する方法 ==
You will need to make a "patch" (see [[Creating A Patch]]). The preferred way of submitting the patch to the Lazarus developers is to create an issue in the bug tracker and attach the patch to it. Alternatively you can send it to the mailing list (maximum size 40kB) or the mailbox for patches [mailto:patch@lazarus.dommelstein.net patch@lazarus.dommelstein.net] (put at least the word "patch" in the subject otherwise the mail will be rejected).
 
  
== Dealing with regressions ==
+
[[Creating A Patch/ja]]をみて、パッチを作成してください。
 +
Lazarusの開発者にあなたのパッチを反映させる良い方法は、バグトラッカーに問題点のページをつくり、そこにパッチを添付することです。他の方法としては、Lazarusの開発者用のメーリングリストに投稿する方法があります。[mailto:patch@lazarus.dommelstein.net patch@lazarus.dommelstein.net] へ送ってください。(タイトルに必ず "patch"をいれてください。また、最大40Kbまでです)
  
From time to time changes on the Lazarus source code might cause features which worked before stop working. In case there is no clue of what caused the break it may be useful to do a iteration method to determine exactly which revision caused the problem.
+
== 劣化、品質の低下に対応する ==
  
This process is simple, although somewhat time consuming:
+
Lazarusソースコードは以前動いていたものが、時間がたつにつれ、動かなくなるかもしれません。
 +
こういった場合、問題の解決に手がかりがないことがありますが、どのリビジョンで問題が発生したのか繰り返しレビジョンを調べていくことができます。
  
Suppose it works with rev 1000 and not with 5000. Then test with 3000. Testing requires updating the svn code, rebuilding lcl for desired widgetset, rebuilding a test application which uses the feature and testing this application. If it works, repeat with 3000 and 5000 as extremes. If not, use 1000 and 3000 as extremes.
+
この方法はシンプルですが、次の点を考慮する必要があります:
  
After some time you should be able to isolate which revision broke it. This information makes fixing the problem much easier, so we encourage people helping to develop Lazarus to try this process and post this information on bug reports in case they are regressions with no clear clue of what went wrong.
+
レビジョン番号1000から5000の間で発生しているとすると、3000で一度テストしてみます。
 +
テストは、svnのコード、ターゲットとしているlclで、テストができるコードでおこないます。
 +
もし、テストがうまくいくなら、次は3000と5000の間で、うまくいかないなら、1000と3000の間で、というふうにします。
  
To check to which data each revision corresponds one can use the [http://svn.freepascal.org/cgi-bin/viewvc.cgi/?root=lazarus Lazarus svn browser (ViewVC)]. After the interval of revisions was reduced to a relative small number, like 25 or so, it may be quicker to check the revisions with ViewVC and check which are possible candidates for the break, to speed up the final part.
+
何度かすると、どのリビジョンの変更部分が問題を発生させたかを、切り分けることができます。
 +
これにより、問題の解決をより簡単なものにできます。
 +
何が原因で品質低下をまねいたかはっきりできれば、Lazarusの開発者達にこの問題の再現やバグレポートなどを書くことができます。
 +
 
 +
それぞれのリビジョンが、どのソースコードなどの変更に対応するかを調べるため、[http://svn.freepascal.org/cgi-bin/viewvc.cgi/?root=lazarus Lazarus svn browser (ViewVC)]を使うことができます。調べるリビジョンの間の間隔が比較的すくない(25くらい)になってくれば、ViewVCでチェックするのがより速くなり、最後は問題となりそうな部分を特定することが早く可能になります。
 +
 
 +
特定のリビジョンは次のコマンドで入手できます。
  
One can obtain a particular revision using the command:
 
 
  svn update -r <revision number>
 
  svn update -r <revision number>
  
'''A word of caution.''' If you have a slow and unreliable internet connection (like modem dial-up or 3G) and limited bandwidth, then checking out various revisions from SubVersion is a slow and costly process. Every revision you checkout has to be downloaded from the internet.
 
  
This issue is completely eliminated if you use a [git mirrors|Git mirror]] of Lazarus, because the whole repository history is local on you computer. So you can checkout any older revisions without needing a internet connection and checkouts are instant.
+
'''注意点'''もし、インターネットの接続が遅かったり、不安定だったりするならば、いろんなバージョンのリビジョンをSubVersionから取得するのは、時間やコストがかかります。それらは、インターネットからダウンロードされるからです。
  
=== Automate searching for regression errors ===
+
=== 品質低下を自動的に探す ===
  
 
==== SubVersion ====
 
==== SubVersion ====
Florian wrote a small unix script which can help automate the process of finding a regression error. The script is called
+
Florianは、こういった品質低下によるエラーを発見する助けになる簡単なunix scriptをかきました。
 +
このスクリプトはこちらです。
 
[http://svn.freepascal.org/cgi-bin/viewvc.cgi/scripts/florian/unix/searchrev?view=markup&root=fpcbuild searchrev].
 
[http://svn.freepascal.org/cgi-bin/viewvc.cgi/scripts/florian/unix/searchrev?view=markup&root=fpcbuild searchrev].
  
 
==== Git mirrors ====
 
==== 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 [http://www.kernel.org/pub/software/scm/git/docs/user-manual.html#using-bisect Git User Manual].
+
Gitには 品質低下のバグを探すのに役立つ''bisect'' というコマンドがあります。
 
+
これは、自動化されたテストをサポートします。小さなテストケースを書いて、Gitにそれぞれのリビジョンにバグの可能性があるかどうかを調べさせることができます。この自動切り分けにより、品質低下バグは数秒で見つかるかもしれません。''git bisect''コマンドについての詳しい情報は、[http://www.kernel.org/pub/software/scm/git/docs/user-manual.html#using-bisect Git User Manual] を見てください。
To download the Git mirror of the Lazarus repository, follow [http://github.com/graemeg/lazarus/tree/upstream 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 [http://www.lazarus.freepascal.org/modules.php?op=modload&name=StaticPage&file=index&sURL=maill Mailing list])  
+
* The Lazarus メーリングリスト(英語) (see [http://www.lazarus.freepascal.org/modules.php?op=modload&name=StaticPage&file=index&sURL=maill Mailing list])  
*The #lazarus-ide IRC channel on irc.freenode.net.
+
* The #lazarus-ide IRC チャンネル on irc.freenode.net.
  
==See also==
+
==関連項目==
  
 
* [[Lazarus Development Process]]
 
* [[Lazarus Development Process]]
  
[[Category:Lazarus]]
+
[[Category:Lazarus/ja]]
 +
[[Category:Community/ja]]

Latest revision as of 08:05, 15 January 2022

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までです)

劣化、品質の低下に対応する

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

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

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

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

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

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

svn update -r <revision number>


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

品質低下を自動的に探す

SubVersion

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

Git mirrors

Gitには 品質低下のバグを探すのに役立つbisect というコマンドがあります。 これは、自動化されたテストをサポートします。小さなテストケースを書いて、Gitにそれぞれのリビジョンにバグの可能性があるかどうかを調べさせることができます。この自動切り分けにより、品質低下バグは数秒で見つかるかもしれません。git bisectコマンドについての詳しい情報は、Git User Manual を見てください。

手助けが必要なときは

もし、疑問や質問があれば、次で質問することができます。

  • The Lazarus メーリングリスト(英語) (see Mailing list)
  • The #lazarus-ide IRC チャンネル on irc.freenode.net.

関連項目