Developers
Who Are Our Developers?
There are many teams currently developing new extensions or revising existing extensions. Because LANDIS-II is open-source, anyone can become a developer. And because the science resides within the extensions, it is possible (and relatively easy) to test new ideas without touching the model core or worrying about how other extensions operate.
Bulletin Board for Developers
We have a Google Group for LANDIS-II Developers. This is a moderated group devoted to questions about programming for LANDIS-II. There is a separate bulletin board for model users.
We have a technical advisory group (TAG) that determines whether any proposed changes to the API (Application Programming Interface), Software core (not including extensions), the core user interface, web site functionality, or Software installers is valid and advisable.
Members are:
Brian Miranda, USDA Forest Service, Technical Advisory Group
LANDIS-II Source Code
All of our code is freely available (under an open-source license) at GitHub. Our open-source goals are to increase transparency and promote collaboration. Each extension has a standard C# project file, allowing developers to quickly download and compile code.
Source Code Contributor Guidelines
The Technical Advisory Committee (TAC), as established by The LANDIS-II Foundation, has instituted the following rules as of July 2015.
1. For every extension (disturbance, output, and succession), there is a single party (an individual or a team of people like a lab or research group) who is responsible for its maintenance (including source code, installers, and documentation). This party is listed as the Contact (or 'Maintainer') on the extension web site.
2. Any proposed changes to an extension must be communicated to the Contact.
3. Any actual changes to the primary ('master') branch of an extension (including source code, installers, and documentation) must receive written prior approval by the Contact. Note: Branches can be created without approval.
4. The LANDIS-II core, and its associated libraries, documentation, and installers are maintained together; they are referred to collectively as the ‘Core Framework’. For the purpose of these guidelines, the TAC is the Maintainer of the Core Framework. Any changes to the Core Framework’s trunk requires the consent of the TAC. As with extensions, branches can be created without approval.
5. For libraries that are not used by the Core Framework (‘extension libraries’, e.g., the Metadata library), contact the TAC to determine who is the Maintainer. The TAC is the default Maintainer. Any actual changes to the primary branch of the library (including source code, installers, and documentation) must receive written prior approval by the Maintainer. The Maintainer is responsible for communicating any proposed changes to all developers who use the library.
6. We encourage developers to release old (tagged) versions of extensions and current versions of libraries on GitHub. However, current versions of extensions are only to be released via the official LANDIS-II web site.
The History of LANDIS-II Development
For the most curious, the archive of the first LANDIS-II release (v5.0) is available.