Help is always appreciated!


In particular, we need help in the following areas:

How to Report Issues


  • Which version of Solidity you are using
  • What was the source code (if applicable)
  • Which platform are you running on
  • How to reproduce the issue
  • What was the result of the issue
  • What the expected behaviour is


Workflow for Pull Requests



Additionally, if you are writing a new feature, please ensure you write appropriate Boost test cases and place them under test/.

However, if you are making a larger change, please consult with the Gitter channel, first.

Finally, please make sure you respect the coding standards for this project. Also, even though we do CI testing, please test your code and ensure that it builds locally before submitting a pull request.

Thank you for your help!

Running the compiler tests

Solidity includes different types of tests. They are included in the application called soltest. Some of them require the cpp-ethereum client in testing mode.

To run cpp-ethereum in testing mode: eth --test -d /tmp/testeth.

To run the tests: soltest -- --ipcpath /tmp/testeth/geth.ipc.

To run a subset of tests, filters can be used: soltest -t TestSuite/TestName -- --ipcpath /tmp/testeth/geth.ipc, where TestName can be a wildcard *.

Alternatively, there is a testing script at scripts/ which executes all tests.



The syntax comes with a substantial difference to Mustache: the template markers {{ and }} are replaced by < and > in order to aid parsing and avoid conflicts with Inline Assembly (The symbols < and > are invalid in inline assembly, while { and } are used to delimit blocks). Another limitation is that lists are only resolved one depth and they will not recurse. This may change in the future.

A rough specification is the following:
