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.

Code of Conduct

We have a brief code of conduct which we ask you to respect:

  • We are committed to providing a friendly, safe and welcoming environment for all, regardless of level of experience, gender identity and expression, sexual orientation, disability, personal appearance, body size, race, ethnicity, age, religion, nationality, or any other characteristic.

  • Please avoid using overtly provoking aliases or nicknames that might detract from a friendly, safe and welcoming environment for all.

  • Please be kind and courteous. There’s no need to be mean or rude.

  • Respect that people have differences of opinion and that every design or implementation choice carries a trade-off and numerous costs.

  • Please keep unstructured critique to a minimum. If you have solid ideas you want to experiment with, make a fork and see how it works.

Concerns

If you believe one of these standards has been violated, you can reach out to the Arbor project by email, concern@arbor-sim.org. Nora Abi Akar, Thorsten Hater, Brent Huisman and Sam Yates read this inbox and will get back to you in a timely manner. Your complaint and the private information therein will be handled with the utmost care and confidentiality. Alternatively, you can contact someone outside of the Arbor team at Ebrains, see below.

In general, violations of the community standards will generate one or more of the following responses from the Arbor Team:

  1. Informal feedback, privately and/or (for public violations) in the forum where a violation appeared, with the goal of encouraging good-faith contributions and mutual understanding while making offenders aware of the problem and preventing future incidents. Where possible, good intentions of the participants should be assumed.

  2. Gross online violations of community standards may result in immediate deletion of the offending comments, coupled with informal feedback.

  3. For severe cases, especially persistent, disruptive violations despite repeated warnings and other feedback, a formal investigation may be started through the Ebrains Ombudsperson.

Ebrains

Arbor is an Ebrains/HBP project. Its policies and recourse options in case of concern are therefore available to you. In addition, the European Commission recognizes the ALLEA Code of Conduct as a model for all research it funds, which includes Ebrains/HBP/Arbor.

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.