How to contribute to JuMP
Welcome! This document explains some of the ways you can contribute to JuMP.
Code of Conduct
This project and everyone participating in it is governed by the JuMP Code of Conduct. By participating, you are expected to uphold this code.
Join the Discourse forum
First up, join the Discourse forum.
The forum is a good place to ask questions about how to use JuMP. You can also use the forum to discuss possible feature requests and bugs before raising a Github issue (more on this below).
Aside from asking questions, the easiest way you can contribute to JuMP is to help answer questions on Discourse!
Improve the documentation
Chances are, if you asked (or answered) a question on Discourse, then it is usually a sign that the documentation could be improved. Moreover, since it is your question, you are probably the best-placed person to improve it!
If your change is small (like fixing typos, or one or two sentence corrections), the easiest way to do this is via Github's online editor. (Github has help on how to do this.)
If your change is larger, or touches multiple files, you will need to make the change locally and then use Git to submit a pull request. (See Contribute code to JuMP below for more on this.)
If you need any help, come join our Gitter channel and we will walk you through the process.
File a bug report
A third way to contribute to JuMP is to file bug reports.
Make sure you read the info in the box where you write the body of the issue before posting. You can also find a copy of that info here.
Contribute code to JuMP
Finally, you can also contribute code to JuMP!
If you do not have experience with Git, Github, and Julia development, the first steps can be a little daunting. However, there are lots of tutorials available online (such as this, this, this, and this). If you need any help, come join our Gitter channel and we will walk you through the process.
Once you are familiar with Git, the workflow for contributing code to JuMP is along the lines of the following:
- Find an open issue (or open a new one) for the problem you want to solve
- Discuss (in the issue, or on Gitter) before spending too much time on it to test the waters first and see if other contributors are fine with your proposed changes
- Make your changes locally. (The Julia manual has a guide
on how to do this.) Make sure you:
- Follow the style guide
- Add tests and documentation for any changes or new features
- Submit a pull request to Github
- Update your pull request, responding to any comments
Remember to be patient and polite; you may get a lot of comments on your pull request! However, do not be afraid! A lot of comments means that people are willing to help you improve the code that you are contributing to JuMP.
Thanks for contributing to JuMP!