From GridLAB-D Wiki
Jump to: navigation, search

Developer prerequisites - Prerequisites for GridLAB-D developers

Programming languages

Before you begin developing code for GridLAB-D, you need to be sure you have the necessary experience. GridLAB-D is written in primarily C and C++, although other languages may be used in some components. If you intend to develop on modules, which are used to implement classes, then you will only need C++. If you intend to develop for the GridLAB-D core, you will need to use C as well.

Development platforms

You can develop code for GridLAB-D on any supported platforms, including

Microsoft Windows
Up to and including Jojoba (Version 3.2)
Starting with Keeler (Version 4.0) including Navajo (trunk)
Starting with Keeler (Version 4.0) including Navajo (trunk)
Starting with Keeler (Version 4.0) including Navajo (trunk)


All platforms
  • Xerces-C (Version 3.1)
  • SuperLU_MT
    • CBLAS
  • Pthreads
  • MySQL Connector C (6.1) (optional)
  • Matlab (2012 or later) (optional)
  • Ncurses

Developer registration

GridLAB-D's open source license gives you full access to the [source code]. This means you can make changes to your own copy and use it however you want, provided that you acknowledge the original copyright holders. However, some developers may want to share their code changes with other GridLAB-D users. This requires

  1. a SourceForge user id];
  2. you request access to the GridLAB-D project by sending a request to the Project Administrator (please include a synopsis of your reason and information about your experience and/or credentials); and
  3. you be granted access by the project team to both the source repository (SVN) and issue tracking (TRAC) sites.

SVN structure

You will need an appropriate subversion repository access tool. See for a list. Once you have installed the tool, you can download code from the repository. The structure of the repository is as follows:

This is the main development branch in which all major new features and capabilities are introduced. The trunk is under strict control by project team.
This is the branch maintenance tree in which all major releases of GridLAB-D are kept. The branch tree is under strict control by project team.
This is the ticket workspace tree in which all working version are kept. Each ticket is owned by the developer to whom the TRAC ticket is assigned.

Issue tracking

All work is scheduled and managed through the ticket reporting site.

Build/release process

The project team strictly manages the build and release process. For details see development/release process page.

Programming conventions

The project team uses a few conventions that developers are asked to follow. See programming conventions for details.

Documentation guide

The project uses these wiki pages are the primary documentation of GridLAB-D. See the Documentation Guide for details on how to write documentation and project conventions.

See also