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
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
- 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.
- 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
- 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.
- 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. - 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
- 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. - 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.
- The about page on this site
- Subversion: the version control system we use
- Qt Software: the C++ libraries on which Lurch is built
- Trac: report bugs, request features, track to-dos
- Source documentation: documents implemented decisions
- Doxygen: the source code documentation tool we use to generate the documentation referenced in the previous bullet
- Wiki: where we record design plans
- The overview video documentation and video below
- Email list: where all things Lurch-related are discussed (primarily development)
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.
|
|
(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.) |