How to get involved in Lurch development

This page aims to help you get from square one up to being a Lurch developer. It includes a step-by-step process for familiarizing yourself with the project and the development tools, as well as several links to resources you'll need as you learn Lurch coding and the tools we use. See the table of contents at the right.

 

Table of Contents

Becoming a developer
Developer resources
Brief infrastructure overview

Becoming a developer

Here's a short sequence of steps to follow to get up to speed on helping us build Lurch, and making it not just what we want it to be, but what you, too, want it to be.

The Basics

  1. Be sure that you know what the project is about, and what its goals are. This information appears on our main page and our About page.
  2. Download the latest release and play with it so you have some experience with what the software can do now. (Although, as you'd expect, development is always ahead of the latest release.)

Getting Code

  1. Understand the big picture of how the software is being built. There's a quick explanation at the bottom of this page, followed by a video.
  2. You can preview the code online, but in order to do any development, you'll need to get a copy. Do so using the version control system Subversion. If you're not familiar with it, you will need to learn how to use it. Our repository URL (which you can check out with your Subversion client) is https://lurch.svn.sourceforge.net/svnroot/lurch/Lurch. (To check out code, you can change the https to http, but to commit back any changes or enhancements you make, you'll need to use the https, create a SourceForge account, and join the Lurch project.)
    Note!! To understand the code you downloaded, you're not left to read the code by itself! The documentation embedded in the source code is used to generate online source code documentation.
  3. In order to compile the code you've checked out, you'll need a C++ development environment with the Qt toolkit. Probably the easiest thing to do is to get the complete Qt SDK (choose the LGPL version), but experienced programmers are free to use other environments. The key thing is to have at least Qt 4.5.0. After installing that toolkit, you should be able to double-click on any .pro file in the source code to open the corresponding project in the Qt Creator IDE, then click Run to get it to compile and run. (For instance, you might try the Lurch Lite project for starters, in the subdirectory trunk/utils.)

Accomplishing Something

  1. Now what? You can find tasks that need doing by checking out the list of active tickets. (A "ticket" is a task, a to-do, kept in the communal developer to-do list managed by a system called Trac.)
    The easiest ones are those that just ask you to document something; this only involves reading someone else's code and putting comments in the right places. You can see the list of such tasks, and learn how to do them by examining already-commented files like this one, and by learning about Doxygen, the tool we use for generating documentation from commented source code.
    The next easiest ones are those that just ask you to test someone else's code. We have two ways to do that in the Lurch project, either writing your unit tests in Javascript (when appropriate), as in all the examples in this folder, or writing them in C++ (when appropriate), as in all the subfolders of this one, each of which is one test. Two example such tasks are tickets #57 and #74.
  2. You may want assistance as you try to accomplish these things, especially if you're just beginning to familiarize yourself with the project. So contact us!
    The two main developers are always glad to answer email, Nathan Carter and Ken Monks.
    You can also reach a broader community of developers by joining the Lurch email list, and asking questions there. See other developer resources below.

Going Further

This page is not yet complete. Watch this space for added information on the following topics:

  • How to use Lurch as a development environment for writing Javascript libraries
  • How to use Lurch (and a related command-line tool) to automate unit testing of such libraries
  • How to get started on C++ development in Lurch
  • An overview of the source code folders

Developer resources

Some of these were mentioned above, but not all.

Brief infrastructure overview

Lurch is a simple, math-capable word processor plus two key features that make checking arbitrary math possible.

Existing math word processors will not suffice, because their internal storage is in a format suitable for display, but without precise semantics. (See the OpenMath website for their explanation of this problem, and how the OpenMath Standard addresses it.) Thus we will build a simple math word processor that stores documents in the OpenMath format, for semantic precision.

In order to enable Lurch to grade any type of mathematics (without we as developers specifying the rules a priori), we add to Lurch a scripting engine that makes Lurch extensible with any rule set by users. Lurch will come with a robust library of script libraries and tools tailored to make it as easy as possible for users to add to Lurch the rules for their particular branch of mathematics.

This same information, plus more, is also covered in the following video:

The Lurch Project: Structure and Design, 15 minutes, MOV format

A narrated slide presentation of the project goals and how we intend to build it.

small, 320x240, 23MB

medium, 640x480, 279MB

(This video may refer to "Lurch Alpha," which has since evolved to "Lurch Lite." Although Lurch Lite has more features, statements in this video still apply.)