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)
- Visual Studio 2005
- Visual Studio 2010 (under development)
- Starting with Keeler (Version 4.0) including Navajo (trunk)
- Mac OSX
- Autoconf
- Xcode (under development)
- Setting up a Mac to build GridLAB-D
- Legacy PackageMaker utility for Mac OSX
- Starting with Keeler (Version 4.0) including Navajo (trunk)
- Linux
- Starting with Keeler (Version 4.0) including Navajo (trunk)
Libraries
- All platforms
- Xerces-C (Version 3.1)
- SuperLU_MT
- CBLAS
- Pthreads
- MySQL Connector C (6.1) (optional)
- Matlab (2012 or later) (optional)
- MacOSX
- 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
- a SourceForge user id];
- 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
- 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 http://www.subversion.org for a list. Once you have installed the tool, you can download code from the repository. The structure of the repository is as follows:
- trunk
- 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.
- branch
- 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.
- ticket
- 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
- Guide to Programming GridLAB-D
- Introduction
- Creating a module
- Creating a class
- Special Topics
- Source documentation
- Validation
- Debugging
- Code templates