Sign in Join
Wiki copytemporary

How To Help Developing Lazarus/de: what changed

Revision 2 to 3. Removed lines have a minus sign; added lines have a plus sign.

OldNewLine
11## Voraussetzungen um an der Entwicklung von Lazarus mitzuarbeiten
22
33Beachten Sie die folgenden beiden Punkte:
44
55- 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](http://www.freepascal.org/download.html).
66- Sie **müssen** ebenfalls über die allerneuesten *Lazarus-Quelltexte* von SVN verfügen. Um diese zu bekommen, siehe [[Getting Lazarus|Getting Lazarus via SVN]].
77
88## Entwicklungsbereiche
99
1010Sie haben die neueste Version von Lazarus. Sie möchten sie verbessern und fragen sich: "Wo kann ich beginnen?" Hier einige Anregungen:
1111
1212### Bekannte Fehler
1313
1414Wenn Sie keine besonderen Probleme mit Lazarus haben, aber einfach helfen möchten, dann werfen Sie doch einen Blick auf die Fehlerliste [Bug Tracker](http://www.lazarus.freepascal.org/mantis/main_page.php). Suchen Sie sich einen Bug, den Sie beheben können, und fangen Sie zu Hacken an. Das Lazarus Team hat die noch offenen Bugs nach Prioritäten aufgelistet in [[Road To 1.0]].
1515
1616### Dokumentation
1717
1818Lazarus muss besser dokumentiert werden! Falls Sie keine Fehler beheben wollen, können Sie vielleicht bei der Dokumentation mithelfen. Auch diese Seite ist in Bearbeitung. Falls Sie nützliche Informationen zum Hinzufügen haben, oder falls Sie Schreibfehler finden, dann zögern Sie nicht den Inhalt zu verbessern.
1919
2020Schauen Sie nach bei [[LCL Documentation Roadmap]] für eine Liste der noch undokumentierten Units. Eine Hilfe wie's gemacht wird finden Sie unter [[Lazarus Documentation Editor]].
2121
2222Die 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 Sie in der IDE arbeiten und F1 drücken wird die Online-Hilfe aufgerufen. Dabei wird Ihnen eine Seite des Hilfe-Wikis angezeigt - möglicherweise ist sie aber leer oder unvollständig. Helfen Sie mit, sie zu verbessern, wenn Sie über das nötige Wissen dazu verfügen.
2323
2424### IDE
2525
2626Siehe diese Links: [[Extending the IDE/de|Die IDE erweitern]], Der Weg nach 1.0 [[Road To 1.0]].
2727
2828### Widgetsets ("interfaces")
2929
3030Ein Widgetset (WS) ist der "Kleber" zwischen den Teilen des LCL Codes, die unabhängig von einem Betriebssystem sind, und dem jeweiligen Ziel-Betriebssystem selbst. Für jedes unterstützte Ziel-Betriebssystem findet man die entsprechenden WS Units in einem der Unterverzeichnisse unter C:\Lazarus\lcl\interfaces\\.
3131
3232Hier ist eine Reihenfolge der Schritte die beim Verbessern eines Widgetsets zu beachten sind. (Diese Beschreibung wurde durch Mattias Gärtner von der Lazarus Mailing-Liste am 2006-07-15 geliefert.) Wenn Sie an einem WS Änderungen durchführen, ist es nicht notwendig alle Units (Lazarus inklusive der IDE) erneut zu kompilieren, um die Effekte Ihrer Änderungen zu testen. Gehen Sie so vor:\
3333
34-`* Create your testbed project (a small program`\
35-`  which should contain the testing code for your WS changes);`\
36-`* Setup the keyboard shortcuts for 'Build Lazarus' and 'Configure Build Lazarus' `\
37-`  (in IDE, go to Editor Options/Keymapping);`\
38-**`repeat`**\
39-` * Configure "Build Lazarus" to only build the LCL `\
40-`  (in IDE, go to Tools/Configure "Build Lazarus");`\
41-` `**`repeat`**\
42-`  * Make your improvement in the WS code;`\
43-`  * Build Lazarus (in IDE, go to Tools/Build Lazarus `\
44-`    - this only rebuilds the LCL, which rebuilds also the selected WS);`\
45-`  * Now compile your testbed project;`\
46-`  * Run and debug your program;`\
47-` `**`until`**` no errors are found in your change;`\
48-` * Reconfigure "Build Lazarus" to build all `\
49-`   (in IDE, go again to Tools/Configure "Build Lazarus");`\
50-` * Build Lazarus and test the IDE;`\
51-**`until`**` no errors/degradation due to your changes are found in IDE;`\
52-`* Create a patch and send it (see further below for details).`
34+``` pascal
35+* Create your testbed project (a small program
36+ which should contain the testing code for your WS changes);
37+* Setup the keyboard shortcuts for 'Build Lazarus' and 'Configure Build Lazarus'
38+ (in IDE, go to Editor Options/Keymapping);
39+<u>repeat</u>
40+ * Configure "Build Lazarus" to only build the LCL
41+ (in IDE, go to Tools/Configure "Build Lazarus");
42+ <u>repeat</u>
43+ * Make your improvement in the WS code;
44+ * Build Lazarus (in IDE, go to Tools/Build Lazarus
45+ - this only rebuilds the LCL, which rebuilds also the selected WS);
46+ * Now compile your testbed project;
47+ * Run and debug your program;
48+ <u>until</u> no errors are found in your change;
49+ * Reconfigure "Build Lazarus" to build all
50+ (in IDE, go again to Tools/Configure "Build Lazarus");
51+ * Build Lazarus and test the IDE;
52+<u>until</u> no errors/degradation due to your changes are found in IDE;
53+* Create a patch and send it (see further below for details).
54+```
5355
5456## Wie reichen Sie ihre Änderungen ein?
5557
5658Sie müssen dazu einen "Patch" erzeugen (siehe [[Creating A Patch]]). Der empfohlene Weg, um einen Patch an die Entwickler von Lazarus zu übermitteln ist der über den Bug Tracker. Erstellen Sie einen neuen Fehlereintrag (engl. "issue") und fügen Sie Ihren Patch als Anhang hinzu. Alternativ dazu können Sie ihn an die Mailing List übermitteln (maximale Größe 40kB) oder an die Mailbox für Patches <patch@lazarus.dommelstein.net>. (Schreiben Sie zumindest das Wort "**patch**" in das Feld 'Betreff' sonst wird Ihre Mail zurückgewiesen).
5759
5860## Der Umgang mit Rückfällen (engl. "regressions")
5961
6062Von Zeit zu Zeit können die Änderungen am Lazarus Quellcode ungewollt bewirken, dass bisher zuverlässige Programmfunktionen ihr Verhalten ändern. Falls es keinen Hinweis darauf gibt, was diesen Bruch verursachte, könnte es hilfreich sein, mit einer Näherungsmethode exakt diejenige Lazarus-Revision zu bestimmen, die das Problem verursachte.
6163
6264Dieser Vorgang ist einfach, aber auch etwas zeitraubend:
6365
6466Angenommen ein Merkmal funktioniert mit rev 1000 aber nicht mit rev 5000. Dann testen Sie mit 3000. Diese Tests erfordern es, den svn code zu aktualisieren, die lcl für ein bestimmtes Widgetset neu zu erstellen, ebenso eine Testanwendung (die das Merkmal benutzt) neu zu erstellen und diese Anwendung ausführlich zu testen. Wenn das zufriedenstellend klappt, wiederhole das Verfahren mit den Revisionen 3000 und 5000. Falls nicht, nimm 1000 und 3000 als Schranken.
6567
6668Nach einiger Zeit sollten Sie damit die Revision, die den Bruch verursachte, isolieren können. Diese Information erleichtert die Problembeseitigung sehr. Deshalb ermutigen wir alle, die an der Verbesserung von Lazarus mithelfen wollen, dieses Verfahren zu versuchen. Senden Sie uns die Informationen über Fehlerberichte die sich auf Rückfälle ohne klaren Hinweis auf die Problemursache beziehen.
6769
6870Um zu prüfen, welche Daten mit einer Revision korrespondieren, können Sie den [Lazarus svn browser (ViewVC)](http://svn.freepascal.org/cgi-bin/viewvc.cgi/?root=lazarus) benutzen. Nachdem Sie das Intervall der Revisionen auf eine relativ kleine Anzahl (ungefähr 25) eingegrenzt haben, geht es vielleicht schneller, die Revisionen mit ViewVC zu untersuchen und so den möglichen Verursacher des Bruchs zu bestimmen.
6971
7072Sie können eine bestimmte Revision erhalten, indem Sie folgenden Befehl benutzen:
7173
72-`svn update -r <revision number>`
74+```text
75+svn update -r <revision number>
76+```
7377
7478**Ein Wort zur Warnung.** Wenn Sie eine langsame oder unzuverlässige Internetverbindung (wie ein Modem oder 3G) und begrenzte Bandweite, dann ist das Checkout von verschiedenen Revisionen von SubVersion ein langsamer und teurer Vorgang. Jede auszucheckende Revision muss aus dem Internet heruntergeladen werden.
7579
7680Dieses Problem entfällt vollständig, wenn Sie eine [[git mirrors|Git-Spiegelung]] von Lazarus verwenden, weil dann die vollständige History des Repositoriums lokal auf Ihrem Computer liegt. So können Sie beliebige ältere Revisionen auschecken ohne Internetverbindung und Checkouts passieren sofort.
7781
7882### Automatisieren der Suche nach Rückfallsfehlern
7983
8084#### SubVersion
8185
8286Florian schrieb ein kurzes Unix-Skript das hilft, die Suche nach Regressionsfehlern zu automatisieren. Das Skript heißt [searchrev](http://svn.freepascal.org/cgi-bin/viewvc.cgi/scripts/florian/unix/searchrev?view=markup&root=fpcbuild).
8387
8488#### Git-Spiegelung
8589
8690Git enthält einen Befehl namens *bisect*, der bei der Suche nach Regressionsfehlern hilft. Außerdem hat es eine eingebaute Unterstützung für das automatisierte Testen. Sie müssen einen kleinen Testfall erzeugen, den Git dazu benutzt, festzustellen, ob eine Revision fehlerhaft ist oder nicht. Mit dem automatisierten 'Bisecting', werden Regressionsfehler in Sekunden gefunden. Für weitere Informationen über den *git bisect*-Befehl, siehe das [Git User Manual](http://www.kernel.org/pub/software/scm/git/docs/user-manual.html#using-bisect).
8791
8892## Sie haben noch Fragen?
8993
9094Wenn Sie noch Fragen haben, dann können Sie diese an den folgenden Stellen loswerden:
9195
9296- Die Lazarus Mailing Liste (siehe [Mailing list](http://www.lazarus.freepascal.org/modules.php?op=modload&name=StaticPage&file=index&sURL=maill))
9397- Der \#lazarus-ide IRC Channel auf irc.freenode.net.
9498
9599## Siehe auch
96100
97101- [[Lazarus Development Process]]
98102
99103---
100104*From the Free Pascal wiki, page "How To Help Developing Lazarus/de", as it stood on 2022-01-13 after a change by Trev, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*
101105Category: Lazarus/de

Back to history