Contributing to ClojureQL
Although ClojureQL is spearheaded by BIC it has received frequent and important contributions from many contributors. On this page you will find the guidelines for contributing as well as documentation on the internal API.
Feature requests / Bugs
If you have a great idea for a feature which ClojureQL does not currently implement, please add your feature request to the issue tracker at Github: Issue tracker.
If you have found a bug in ClojureQL please also report it on the Issue tracker. For bugs it's important that you include a thorough report of what happened and how we can reproduce the issue.
If its a compilation bug please include the Clojure statement, the compiled SQL statement as well as the SQL statement you would have expected.
Contributing code to ClojureQL requires the knowledge of a few guidelines and conventions. It is always highly recommended that you visit #clojureql on irc.freenode.net before undertaking any larger contribution.
It is our ambition to keep the codebase exceptionally clean and robust, which means your code might be reviewed multiple times before being accepted/rejected. Usually if a patch is not accepted straight away, we will provide tips on how to improve the code until it can be merged.
Please make sure, that you keep your code and commit messages clear of any profanity/idle chatter. A commit message must clearly state which area of the code is being changed and which feature is being worked on.
ClojureQL is at its core an abstract syntax tree (AST) contained in the fields of the record RTable. Understanding the fields and their use in the compiler is crucial to contributing code which touches the record. In the following we will document the conventions which are not obvious from the code. This document will likely change often as the compiler is constantly being optimized.