Developer Workflow

The source-code for the HowLeaky Simulation Engine is freely available for anyone to download and use via the GitHub repository.  You may use this code however you like under the Creative Commons Attribution-ShareAlike 4.0 International License (

It is encouraged that any code changes which could benefit the wider HowLeaky community be re-uploaded back to the repository. These changes will then be reviewed by the HowLeaky "scientific" Panel, for possible inclusion in future versions. 

This code is deveoped in the C# langauge and can be managed using either Microsoft Visual Studio IDE or Microsoft Visual Studio Code. The repositories contain the following modules:

  • HowLeaky Core Engine. This project contains all the code required to run the HowLeaky Simulatio Engine, including classes for inputs and outputs. Note however, that it doesn't contain any information on how to read these inputs or write these outputs. For that see the IO Module.
  • HowLeaky IO Module. Contains code to read legacy hlk project files, as well as write outputs to CSV and Binary files.
  • HowLeaky Jenkins Report Module. Contains a console application/library that is called by the HowLeaky Jenkins Server that generate reports for new HowLeaky Engine Builds.
  • HowLeaky Console. Contains code to run the HowLeaky model from HLK files and output CSV files.
  • HowLeaky Unit Tests. Unit tests for engine.

To use this code, please follow these steps:

  1. Create your own GitHub account and go to  the HowLeaky-Core repository.
  2. It is highly recommended that you download the GitHub Desktop software to manage this code.
  3. Create a new "Fork" of the repository to your account (See image below). Only changes to this fork can be resubmitted back to the repository for review by the HowLeaky Panel.
  4. Login to GitHub Desktop, and pull down the fork you have created. 
Select the "Fork" option to create your own "Fork" of this repository.

To sumit your changes back to the HowLeaky Panel for review (and possible inclusion in the "base" version"

  1. Push your changes to your branch back to the repository.
  2. Fill out the Submission Form on this website to notify the Panel of your submission. 
  3. Once you have made contact with the Panel, create a "Pull Request" in your fork of the HowLeaky-core repository by following the instructions below. This will allow the Panel to evalulate your code changes. 
Pull Request Instructions