I'm really happy that you're interested in contributing to Temoa! Building a sustainable energy future with an open source energy system model takes a lot of effort, and we can use all the help we can get.
Here are some resources to help get you started:
- A preprint of our Energy Economics paper laying out the motivation for our effort as well as the core model formulation.
- The model documentation, which evolves with changes to the model formulation and the addition of new features.
- Use our forum to ask questions about the model.
If you would like to report a bug in the code or request a feature, please use our Issue Tracker. If you're unsure or have questions, use the forum.
To make changes to the code, first clone the repository. If you would like to share those changes back to our main repository, then you need to issue a pull request on GitHub. Details on how to contribute code are nicely outlined in this blog post by Rob Allen. If you'd like to make changes but don't feel comfortable with GitHub, get in touch with us through the forum.
When making commits to the repository, please use verbose commit messages for all but the simplest changes. Every commit to the repository should include an appropriate summary message about the accompanying code changes. Include enough context so that users get a high-level understanding of the changes without having to check the code. For example, "Fixed broken algorithm" does not convey much information. A more appropriate and complete summary message might be:
Add NEOS solve functionality to config file
With this commit, users can now use the NEOS server: https://neos-server.org/neos/
to solve their Temoa models. If users do not have a local install of cplex, this
is a potentially faster option. Note that when using NEOS, both --neos and --solver
must be used in the config file.
In general, we try to follow these 7 rules when writing commit messages:
- Separate subject from body with a blank line
- Limit the subject line to 50 characters
- Capitalize the subject line
- Do not end the subject line with a period
- Use the imperative mood in the subject line
- Wrap the body at 72 characters
- Use the body to explain what and why vs. how
Regarding how we format code, please see Chapter 7 of our user manual, which serves as the Temoa Code Style Guide. Be sure that all modified files included in the pull request have unix line endings.
Thanks, Joe DeCarolis NC State University