Contributing to Arbor

First off, thank you for considering contributing to Arbor! It’s people like you that make Arbor such a great tool. Feel welcome and read the following sections in order to know how to ask questions and how to work on something.

Types of contributions

There are many ways to contribute: writing tutorials or blog posts, improving the documentation, helping other users, submitting bug reports and feature requests or writing code which can be incorporated into Arbor itself.

Use the Arbor Discussions page for support questions.

Github

Arbor uses Git for version control and Github to host its code repository and nearly all of its infrastructure.

Start a discussion

You can use the Arbor Discussions to help other users of Arbor, or get help with you own simulations. Also, we’re eager to discover what you’re using Arbor for, so don’t hesitate to share your Arbor simulations or publications!

Filing an issue

If you have found a bug or problem in Arbor, or want to request a feature, you can use our issue tracker. If you issue is not yet filed in the issue tracker, please do so and describe the problem, bug or feature as best you can. You can add supporting data, code or documents to help make your point.

Help solving an Issue

If you want to help solve an issue, that’s great! Issue labels can help you find an something that fits your expertise or interest, and if you’re just getting started, you can look for the “good 1st issue” label. Don’t hesitate to post a comment to the Issue if you want to ask clarifying questions. If you have implemented a fix, you can make a pull request.

Write code

Some tips when contributing code:

  • Consider the Coding Guidelines.

  • If you add functionality, please update the documentation accordingly.

  • If you add functionality, add tests if applicable. This helps make sure Arbor is stable and functionality does what it’s supposed to do.

  • If you work on the public C++ API, provide Python wrappings.

  • Make sure Arbor compiles and has no new warnings.

Add examples or unit tests

See Examples and Tests.

Modify documentation

See Documentation.

Making a pull request

See PR workflow.

Other contributions

We’re always happy to hear about Arbor being used! Have you used Arbor to create a model? Have you used Arbor in a publication? Do you have a workflow or tool that involves Arbor? Get in touch and we’d be very happy to showcase your work through our channels.

Get in touch

You can reach out in the following ways:

  • Discussions. Any questions or remarks regarding using Arbor for your research are welcome.

  • Slack. If you’re interested in developing Arbor itself, you can visit our Slack.

  • Email.