Developer FAQ

Do you accept code contributions from users?

We love to see users getting involved with GExperts development. Please join the mailing list and review this FAQ for an introduction to our development process.

Where can I get the latest source code?

We recommend you use Subversion (SVN) (see below for a 5-minute quick start) and access the source repository directly. If this is not an option, you can download one of the occasional snapshots of the GExperts SVN source. If you are looking for source to a much older version of GExperts, see the download page. There is also a web interface to the SourceForge SVN repository. The web interface is sometimes a few hours behind the official repository, but it allows easy browsing and downloading of individual files. Please do not make modifications to old versions of the source and send them into us for inclusion in the official GExperts releases – always apply your changes to the latest SVN source.

How do I use Subversion (SVN) to download the latest source code?

If you are using a recent IDE version such as Delphi XE1 or later, use the File, “Open from Version Control” menu item. Enter https://svn.code.sf.net/p/gexperts/code/trunk as the URL and a local PC directory as the Destination for the GExperts source (such as C:\Projects\GExperts\).

If you are using IDE versions before XE1, make sure you have SVN installed. Windows users can download and install the client-only module of SVN. Change to a directory such as C:\Projects\ where you want to create the GExperts source tree. Then, execute this command from the command line:

svn.exe co https://svn.code.sf.net/p/gexperts/code/trunk gexperts

If you get SVN connection errors, check the SourceForge site status page to see if SVN is down or try the .zip files above instead. After executing the above command, you will have a directory such as C:\Projects\GExperts\ containing the GExperts source tree. See Documentation\SourceCode.txt there for more help on compiling the source. If you begin to use SVN more, you might want to check out some of the nicer looking free GUI SVN clients such as RapidSVN (simple, lightweight, stand alone) or TortoiseSVN (more features, shell integration, heavier). Also, see the SourceForge SVN documentation.

How can I interactively debug GExperts?

See the debugging tips in the GExperts User FAQ.

How should I publish my changes to GExperts for others to use?

After you complete and test your changes, you should post a notice to the GExperts Discussion mailing list and explain the changes you made. Include a link to a zip archive of the changed source files (include screenshots and binary DLL if you want to). If you don’t have access to a web site, you can upload to the GExperts file area for the mailing list or use Hightail. Other GExperts developers and users can then download, test, and comment on your modifications. To dramatically increase the chances of getting your changes into the main GExperts distribution, remember to base your code contributions on the latest SVN source, instead of older versions of GExperts.

I want to help fixing bugs or adding features, what can I do?

Consult the mailing list or the mailing list archives for projects that may need help. You can also check the latest Readme.txt to see any known bugs or plans for future features.

Can I use the GExperts source code in my application?

Be sure and review the details of our license for the full details. Basically, you can use the GExperts source when building an Open Source application, but not in commercial or proprietary applications. The source distribution of your application must include a copy of the GExperts license and you must state what parts of the source are distributed under our license. You can not re-license our code under another license, so it is your job to ensure that it is legal to link our code to your code under your open source license. You are not required to leave our about box in your application, but it is generally considered polite to include a note about GExperts in your documentation, readme, or about box credits.

What guidelines should I follow when making changes to the source code?

  • Format your code similar to the existing GExperts source code. We generally follow the standard VCL/RTL source style.
  • Review the existing general utilities in Src/Utils/ to see what helper functions are available to make your coding easier.
  • Use comments where your code is incomplete or unclear, but not everywhere.
  • Avoid making changes to DFM files unless absolutely necessary. All DFMs should be saved in text format in the lowest version of the IDE you have available.
  • All visual development of forms should be done with the “Small Fonts” Windows Display Adapter setting.
  • Remember as you code that GExperts supports several versions of Delphi/RAD Studio/BDS.
  • For GUI buttons/toolbars/menus use use TAction components when possible.
  • Avoid usage of pointers, PChars, Windows API calls, and other platform/environment specific features.
  • Look at the SampleExperts directory if you need help creating a new expert.
  • Thoroughly test your code before submitting it to us for review.
  • The mailing list can help you with any other issues.