How To Help Developing Lazarus/de

From Free Pascal wiki
Jump to navigationJump to search

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

Voraussetzungen um Lazarus zu entwickeln

Beachten Sie die folgenden beiden Punkte:

  • Sie sollten die jeweils letzte offizielle Version des FreePascal Compilers (FPC) oder eine aktuelle SVN Version (d.h. eine Entwicklerversion mit höherer Build-Nr.) installiert haben. Um den FPC Compiler zu bekommen, siehe FreePascal download.
  • Sie müssen ebenfalls über die allerneuesten Lazarus-Quelltexte von SVN verfügen. Um diese zu bekommen, siehe Getting Lazarus via SVN.

Entwicklungsbereiche

Du hast die neueste Version von Lazarus. Du möchtest sie verbessern und fragst dich: "Wo kann ich beginnen?" Hier einige Anregungen:

Bekannte Fehler

Wenn du keine besonderen Probleme mit Lazarus hast, aber einfach helfen möchtest, dann wirf doch einen Blick auf die Fehlerliste Bug Tracker. Such dir einen Bug, den du beheben kannst, und fang zu Hacken an. Das Lazarus Team hat die noch offenen Bugs nach Prioritäten aufgelistet in Road To 1.0.

Dokumentation

Lazarus muss besser dokumentiert werden! Falls du keine Fehler beheben willst, kannst du vielleicht bei der Dokumentation mithelfen. Auch diese Seite ist in Bearbeitung. Falls du nützliche Informationen zum Hinzufügen hast, oder falls du Schreibfehler findest, dann zögere nicht den Inhalt zu verbessern.

Schau nach bei LCL Documentation Roadmap für eine Liste der noch undokumentierten Units. Eine Hilfe wie's gemacht wird findest du unter Lazarus Documentation Editor.

Die Online-Hilfe der IDE entsteht schrittweise als Teil dieses Wikis. Dabei wurden der Dokumentation über die Lazarus IDE Fenster auch viele leere Seiten als vorläufige Platzhalter hinzugefügt. Wenn du in der IDE arbeitest und F1 drückst wird die Online-Hilfe aufgerufen. Dabei wird dir eine Seite des Hilfe-Wikis angezeigt - möglicherweise ist sie aber leer oder unvollständig. Hilf mit, sie zu verbessern, wenn du über das nötige Wissen dazu verfügst.

IDE

Siehe diese Links: Die IDE erweitern Extending the IDE, Der Weg nach 1.0 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 effects 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. (put at least the word "patch" in the subject otherwise the mail will be rejected).

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, although 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 corresponds one can use the 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.

One can obtain a particular revision using the command:

svn update -r <revision number>

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.