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

From Free Pascal wiki
Jump to navigationJump to search
Line 2: Line 2:
  
 
== Voraussetzungen um Lazarus zu entwickeln ==
 
== Voraussetzungen um Lazarus zu entwickeln ==
# Sie sollten das neueste Release von FreePascal (aktuell 2.0.4) haben oder eine neue SVN Version von [http://www.freepascal.org/download.html FPC].
+
There are two things to note:
# Sie MÜSSEN das allerneueste Lazarus von SVN haben. [[Getting_Lazarus#Via_SVN|Getting Lazarus Via SVN]]
+
* You should have the latest release of FreePascal compiler (FPC) or a recent SVN version (i.e. a later version) of it. For obtaining FPC, see [http://www.freepascal.org/download.html FreePascal download].
 +
* You '''must''' have the very latest Lazarus from SVN. For obtaining it, see [[Getting_Lazarus#Using_SVN|Getting Lazarus via SVN]].
  
== Wo soll man anfangen? ==
+
== Entwicklungsbereiche ==
Sie haben jetzt die neueste Version von Lazarus und wünschen sich, mit der Verbesserung von Lazarus zu beginnen, aber "wo soll ich anfangen?"  
+
So now you have the latest version of Lazarus and wish to start improving it, but are asking yourself "where do I begin?" Das kommt darauf an.
  
Das kommt darauf an. Wenn sie keine besonderen Leiden mit Lazarus haben aber einfach helfen wollen, dann würde ich empfehlen, auf die Bug Liste [http://www.lazarus.freepascal.org/mantis/main_page.php Bug Tracker] zu schauen, einen Bug finden, den sie glauben berichtigen zu können und start hacking. Das Lazarus Team hat die offenen Bugs priorisiert in der [[Road To 1.0]].
+
=== Bekannte Bugs ===
 +
If you don't have any particular woes about Lazarus but just want to help, then I would recommend looking at the bug list [http://www.lazarus.freepascal.org/mantis/main_page.php Bug Tracker] find a bug that you think you can fix, and start hacking. Das Lazarus Team hat offene Bugs priorisiert in [[Road To 1.0]].
  
Lazarus benötigt mehr Dokumentation! Wenn sie keinen Bug berichtigen wollen können sie helfen durch das Schreiben von Dokumentation. Schauen sie auf [[Lazarus Documentation Editor/de|Lazarus Documentation Editor]] und [[LCL Documentation Roadmap]] für Hilfe wie man es tut und eine Liste von Units, die dokumentiert werden müssen.
+
=== Dokumentation ===
 +
Lazarus needs more documentation! If you don't want to fix a bug you can help by writing documentation. Even this page is a work in progress. If you have useful information to add, or if you see mistakes, please feel free to improve the contents of this page.
  
Betrachten sie auch diese Links: [[Extending the IDE/de|Extending the IDE]],
+
Look at [[Lazarus Documentation Editor]] and [[LCL Documentation Roadmap]] for some help on how to and a list of units to be documented.
  
Wenn sie eine Frage haben können sie diese auf der Lazarus Mailing Liste stellen (siehe [http://www.lazarus.freepascal.org/modules.php?op=modload&name=StaticPage&file=index&sURL=maill Mailing Liste]) oder auf dem #lazarus-ide IRC channel auf irc.freenode.net.
+
The on-line IDE help is gradually being created as a part of the wiki. Recently a lot of stub pages of the [[Lazarus IDE]] documentation about the IDE windows have been added. When working in IDE, if you need help, press F1. You will be presented a help wiki page (possibly empty or incomplete). Improve it, if you have the relevant knowledge.
  
== Jetzt habe ich Lazarus berichtigt oder Dokumentation hinzugefügt. Wie reiche ich meine Änderungen ein? ==
+
=== IDE ===
Sie müssen einen "Patch" erstellen ([[Creating A Patch/de|Creating A Patch]]). Die bevorzugte Weise der Einreichung eines Patches an die Lazarus Entwickler ist die Erstellung eines Issues im Bug tracker mit angehängtem Patch. Alternativ können sie ihn an die Mailing Liste senden (maximale Größe 40kB) oder an die Mailbox für Patches [mailto:patch@lazarus.dommelstein.net patch@lazarus.dommelstein.net].
+
Siehe diese Links: [[Extending the IDE]], [[Road To 1.0]].  
  
== Sie benötigen weitere Hilfe? ==
+
=== Widgetsets ("interfaces") ===
  
Wenn sie noch Fragen haben, können sie diese an den folgenden Orten stellen:
+
A widgetset (WS) is the "glue code" between the LCL code parts that are independent of the target operating system and the target operating system itself. For each supported target OS, the corresponding WS units are to be found in one of the subdirectories under the C:\Lazarus\lcl\interfaces\.
* Die Lazarus Mailingliste (siehe [http://www.lazarus.freepascal.org/modules.php?op=modload&name=StaticPage&file=index&sURL=maill Mailingliste])  
+
 
*Der #lazarus-ide IRC channel on irc.freenode.net.
+
Here is an outline of the steps one should follow, in order to improve a widgetset (description provided by Mattias Gärtner on the Lazarus mailing list on 2006-07-15). When making changes to a WS, it is not necessary to rebuild everything (Lazarus including the IDE), in order to test the efects of the changes. Proceed as follows:<br>
 +
 
 +
* Create your testbed project (a small program
 +
  which should contain the testing code for your WS changes);
 +
* Setup the keyboard shortcuts for 'Build Lazarus' and 'Configure Build Lazarus'
 +
  (in IDE, go to Editor Options/Keymapping);
 +
<u>'''repeat'''</u>
 +
  * Configure "Build Lazarus" to only build the LCL
 +
  (in IDE, go to Tools/Configure "Build Lazarus");
 +
  <u>'''repeat'''</u>
 +
  * Make your improvement in the WS code;
 +
  * Build Lazarus (in IDE, go to Tools/Build Lazarus
 +
    - this only rebuilds the LCL, which rebuilds also the selected WS);
 +
  * Now compile your testbed project;
 +
  * Run and debug your program;
 +
  <u>'''until'''</u> no errors are found in your change;
 +
  * Reconfigure "Build Lazarus" to build all
 +
    (in IDE, go again to Tools/Configure "Build Lazarus");
 +
  * Build Lazarus and test the IDE;
 +
<u>'''until'''</u> no errors/degradation due to your changes are found in IDE;
 +
* Create a patch and send it (see further below for details).
 +
 
 +
== Wie reichen sie ihre Änderungen ein? ==
 +
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].
 +
 
 +
== Dealing with regressions ==
 +
 
 +
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, althougth somewhat time consuming:
 +
 
 +
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.
 +
 
 +
To check to which data each revision correspondes one can use the [http://svn.freepascal.org/cgi-bin/viewvc.cgi/?root=lazarus Lazarus ViewCVS]. 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 ViewCVS and check which are possible canditates for the break, to speed up the final part.
 +
 
 +
== Sie haben noch Fragen? ==
 +
 
 +
Wenn sie noch Fragen haben, dann können sie diese an den folgenden Stellen loswerden:
 +
* Die Lazarus Mailing Liste (siehe [http://www.lazarus.freepascal.org/modules.php?op=modload&name=StaticPage&file=index&sURL=maill Mailing list])  
 +
*Der #lazarus-ide IRC Channel auf irc.freenode.net.

Revision as of 13:28, 4 January 2008

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

Voraussetzungen um Lazarus zu entwickeln

There are two things to note:

  • You should have the latest release of FreePascal compiler (FPC) or a recent SVN version (i.e. a later version) of it. For obtaining FPC, see FreePascal download.
  • You must have the very latest Lazarus from SVN. For obtaining it, see Getting Lazarus via SVN.

Entwicklungsbereiche

So now you have the latest version of Lazarus and wish to start improving it, but are asking yourself "where do I begin?" Das kommt darauf an.

Bekannte Bugs

If you don't have any particular woes about Lazarus but just want to help, then I would recommend looking at the bug list Bug Tracker find a bug that you think you can fix, and start hacking. Das Lazarus Team hat offene Bugs priorisiert in Road To 1.0.

Dokumentation

Lazarus needs more documentation! If you don't want to fix a bug you can help by writing documentation. Even this page is a work in progress. If you have useful information to add, or if you see mistakes, please feel free to improve the contents of this page.

Look at Lazarus Documentation Editor and LCL Documentation Roadmap for some help on how to and a list of units to be documented.

The on-line IDE help is gradually being created as a part of the wiki. Recently a lot of stub pages of the Lazarus IDE documentation about the IDE windows have been added. When working in IDE, if you need help, press F1. You will be presented a help wiki page (possibly empty or incomplete). Improve it, if you have the relevant knowledge.

IDE

Siehe diese Links: Extending the IDE, Road To 1.0.

Widgetsets ("interfaces")

A widgetset (WS) is the "glue code" between the LCL code parts that are independent of the target operating system and the target operating system itself. For each supported target OS, the corresponding WS units are to be found in one of the subdirectories under the C:\Lazarus\lcl\interfaces\.

Here is an outline of the steps one should follow, in order to improve a widgetset (description provided by Mattias Gärtner on the Lazarus mailing list on 2006-07-15). When making changes to a WS, it is not necessary to rebuild everything (Lazarus including the IDE), in order to test the efects of the changes. Proceed as follows:

* Create your testbed project (a small program
  which should contain the testing code for your WS changes);
* Setup the keyboard shortcuts for 'Build Lazarus' and 'Configure Build Lazarus' 
  (in IDE, go to Editor Options/Keymapping);
repeat
 * Configure "Build Lazarus" to only build the LCL 
  (in IDE, go to Tools/Configure "Build Lazarus");
 repeat
  * Make your improvement in the WS code;
  * Build Lazarus (in IDE, go to Tools/Build Lazarus 
    - this only rebuilds the LCL, which rebuilds also the selected WS);
  * Now compile your testbed project;
  * Run and debug your program;
 until no errors are found in your change;
 * Reconfigure "Build Lazarus" to build all 
   (in IDE, go again to Tools/Configure "Build Lazarus");
 * Build Lazarus and test the IDE;
until no errors/degradation due to your changes are found in IDE;
* Create a patch and send it (see further below for details).

Wie reichen sie ihre Änderungen ein?

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 patch@lazarus.dommelstein.net.

Dealing with regressions

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, althougth somewhat time consuming:

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.

To check to which data each revision correspondes one can use the Lazarus ViewCVS. 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 ViewCVS and check which are possible canditates for the break, to speed up the final part.

Sie haben noch Fragen?

Wenn sie noch Fragen haben, dann können sie diese an den folgenden Stellen loswerden:

  • Die Lazarus Mailing Liste (siehe Mailing list)
  • Der #lazarus-ide IRC Channel auf irc.freenode.net.