Difference between revisions of "How To Help Developing Lazarus"

From Free Pascal wiki
(Where to begin?: added link to Lazarus IDE documentation pages about IDE windows)
(page reorganised; Improving Widgetsets added)
Line 1: Line 1:
 
{{How To Help Developing Lazarus}}
 
{{How To Help Developing Lazarus}}
  
== So you want to help make Lazarus a world class IDE. Well you've come to the right place.==
+
== Prerequisites to developing Lazarus ==
 +
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 [http://www.freepascal.org/download.html FreePascal download].
 +
* You '''must''' have the very latest Lazarus from SVN. For obtaining it, see [[Getting_Lazarus#Via_SVN|Getting Lazarus via SVN]].
 +
 
 +
Also see these links: [[Extending the IDE]], [[Lazarus IDE ToDo List]]. If you have any question you can ask them on the Lazarus Mailing list (see [http://www.lazarus.freepascal.org/modules.php?op=modload&name=StaticPage&file=index&sURL=maill Mailing list]) or on the #lazarus-ide IRC channel on irc.freenode.net.
 +
 
 +
== Development areas ==
 +
So now you have the latest version of Lazarus and wish to start improving it, but are asking yourself "where do I begin?" Well, that depends.
  
This Is A Work In Progress. If you have useful information to add to this, or see mistakes please feel free to fix or add to this page.
+
=== Fixing known 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. The Lazarus team has prioritized the open bugs in the [[Road To 1.0]].
  
== Prerequisites to developing Lazarus ==
+
=== Improving documentation ===
# You should have the latest release of FreePascal (currently 2.0.2) or a recent SVN version of fpc.
+
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.
# You MUST have the very latest Lazarus from SVN. [[Getting_Lazarus#Via_SVN|Getting Lazarus Via SVN]]
 
  
== Where to begin? ==
+
Look at [[Lazarus Documentation Editor]] and [[LCL Documentation Roadmap]] for some help on how to and a list of units to be documented.
So now you have the latest version of Lazarus and wish to start improving Lazarus, but "where do I begin?"
 
  
Well, that depends. 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. The lazarus team has prioritized the open bugs in the [[Road To 1.0]].
+
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.
  
Lazarus needs more documentation! If you don't want to fix a bug you can help by writing documentation. Look at [[Lazarus Documentation Editor]] and [[LCL Documentation Roadmap]] for some help on how to and a list of units to be documented.
+
=== Improving Widgetsets ===
  
Recently a lot of stub pages of the [[Lazarus IDE]] documentation about the IDE windows have been added. These need to be written.
+
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\.
  
Also see these links: [[Extending the IDE]], [[Lazarus IDE ToDo List]]
+
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>
  
If you have any question you can ask them on the Lazarus Mailing list (see [http://www.lazarus.freepascal.org/modules.php?op=modload&name=StaticPage&file=index&sURL=maill Mailing list]) or on the #lazarus-ide IRC channel on irc.freenode.net.
+
Create your testbed project - a small project, which will contain the testing code for your WS changes;
 +
Setup 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 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 found in IDE;
 +
Create a patch and send it (see further below for details).
  
== Now I've fixed lazarus or added documentation. How do I submit my changes? ==
+
== How to submit your changes? ==
You will need to make a "patch" ([[Creating A Patch]]) and send it to the mailing list (maximum size 40kB) or the mailbox for patches [mailto:patch@lazarus.dommelstein.net patch@lazarus.dommelstein.net].
+
You will need to make a "patch" (see [[Creating A Patch]]) and send it to the mailing list (maximum size 40kB) or the mailbox for patches [mailto:patch@lazarus.dommelstein.net patch@lazarus.dommelstein.net].
  
 
If you need help doing any of these things, you can always ask on the Lazarus mailing list or ask in #lazarus-ide on irc.freenode.net.
 
If you need help doing any of these things, you can always ask on the Lazarus mailing list or ask in #lazarus-ide on irc.freenode.net.

Revision as of 11:24, 16 July 2006

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

Prerequisites to developing Lazarus

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.

Also see these links: Extending the IDE, Lazarus IDE ToDo List. If you have any question you can ask them on the Lazarus Mailing list (see Mailing list) or on the #lazarus-ide IRC channel on irc.freenode.net.

Development areas

So now you have the latest version of Lazarus and wish to start improving it, but are asking yourself "where do I begin?" Well, that depends.

Fixing known 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. The Lazarus team has prioritized the open bugs in the Road To 1.0.

Improving documentation

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.

Improving Widgetsets

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 project, which will contain the testing code for your WS changes;
Setup 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 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 found in IDE;
Create a patch and send it (see further below for details).

How to submit your changes?

You will need to make a "patch" (see Creating A Patch) and send it to the mailing list (maximum size 40kB) or the mailbox for patches patch@lazarus.dommelstein.net.

If you need help doing any of these things, you can always ask on the Lazarus mailing list or ask in #lazarus-ide on irc.freenode.net.