Developers introduction

On this page, we discuss several relevant resources for developers. This includes social groups for Quorum to get help and instructions for building Quorum from source. Those with questions are encouraged to get active and ask. The Quorum community is happy to help where we can!

Building Quorum or the Development Environment from Source

The Quorum team has attempted to make building the project from source as easy as we can. With that said, it is a big project with many moving parts. We have placed instructions below.

Building Quorum from Source

In this section, we discuss building Quorum from source. These instructions only apply to Quorum 3.0 and up. Building older versions of Quorum is still possible, but we no longer actively support these versions. To build Quorum from source, please follow these instructions:

1. Download and install Quorum from the download page
2. Clone the source code for Quorum from the public repository using Git. For those unfamiliar with Git, for all practical purposes, this tool downloads the source code and manages versions of it. The source can be downloaded either from the console or from within NetBeans. For a tutorial on using Git from within NetBeans, we have one here. If you are using the console, the command for obtaining the source code will look something like this: git clone https://YourUserName@bitbucket.org/stefika/quorum-language.git
3. Open NetBeans and then open the project under under quorum-language/Quorum3. This is a normal NetBeans project that, if you have Quorum installed, will open like any other project in NetBeans.
4. Build, run, or debug the project normally in NetBeans. Since Quorum itself is written in Quorum, it works like any other project.

Building the NetBeans development environment for Quorum from Source

In this section, we discuss building the development environment for NetBeans. In order to build the environment, the same source repository is used and you need to build Quorum. Thus, if you want to build the development environment, you need to build Quorum first. Here are the steps:

1. Like listed above, download and build Quorum.
2. After Quorum has been built, either run the file boostrap.sh (Mac OS X) or bootstrap.bat (Windows) from within NetBeans or the console. This file makes a "deployable"version of Quorum for the IDE automatically.
3. For iPhone support, we next need to download Quorum's version of a robovm kit. What this is is basically a converter from Quorum's executable format (Java Bytecode) to something iOS can understand. To install it, we need to unzip it and place it into the Sodbeans source under Sodbeans/Quorum/release/modules/ext/quorum-robovm. Quorum will not be able to compile to iPhone if this folder is not present.
4. Open the Development Environment for Quorum under quorum-language/IDE/Sodbeans.
5. Build the project named Sodbeans. There are now several choices for deploying the environment. One can create a NetBeans plugin with the option "Package As -> NBMs,"which is in the context menu of the main Sodbeans project. There are other options under the package menu for various kinds of deployment. If you have questions about these, feel free to ask the team on the mailing list.

Quorum Branches

If you are interested in contributing source code to the project, first check out the current source branches: Quorum source code. As of the time of this writing, there are several branches in the repository, each with a different purpose. These do change on a per-release basis, so if you have questions, feel free to ask the team on the mailing list:

Contributing to Quorum

We accept contributions to Quorum in many forms. Some contribute to lessons, others to libraries, and a few contribute to the compiler itself. Others still provide help by filing bugs, participating in focus groups, or just generally emailing us feedback or constructive criticism.

Contributing to Documentation or Lessons

We highly encourage Quorum users to submit more or better documentation to any aspect of the project and we regularly make changes based on these submissions. We accept submissions in any form that is convenient for the submitter. All contributors must agree to place their submission under the creative commons with attribution license, so that all of our teachers can actually use it. First time submitters to lessons are welcome to get in touch if they need more information on the process.

Libraries

In addition to changes to documentation or lessons, we also accept submissions to libraries for the language. Libraries of any kind are accepted and can be submitted to the team however is convenient. Accepted libraries will be included into the standard library for the language and will be placed under the BSD license. We decline submissions that cannot be placed under this license, as we want anyone to be able to use it (including ourselves).

Contributing to the Quorum Compiler

We are the most picky about submissions to the Quorum compiler itself. The reason is because if the compiler is changed, it impacts every lesson, piece of documentation, and source code on the whole system. Further, the team is picky about human factors evidence and, as such, we do not make changes lightly. Specifically, technical submissions will be given a close eye and changes to the core language require evidence on the impact they have on human beings, which must be completed using scientific conventions that follow scientific conventions. In other words, while we do accept proposals, they have to be thoroughly vetted by the team and we reserve the right to send any proposal for external peer review.