First off, thank you for considering contributing to openCARP. It's people like you that make openCARP such a great tool.
Following these guidelines helps to communicate that you respect the time of the developers managing and developing this open source project. In return, they should reciprocate that respect in addressing your issue, assessing changes, and helping you finalize your merge requests.
openCARP is an open project and we love to receive contributions from our community — you! There are many ways to contribute, from writing tutorials or blog posts, improving the documentation, submitting bug reports and feature requests, sharing in silico experiments, writing tests, or writing code which can be incorporated into openCARP itself.
Please, don't use the issue tracker for support questions. Check whether the question and answer system can help with your issue. If your problem is not strictly openCARP specific but e.g. Python-related, Stack Overflow is also worth considering.
Please note that the openCARP project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.
We believe that openCARP should not introduce and security relevant issues that do not stem from the underyling libraries or operating system. In the unlikely event that you find a security vulnerability, do NOT open an issue. Email firstname.lastname@example.org instead.
When filing an issue, make sure to follow the template and answer these five questions:
General questions should go to the question and answer system instead of the issue tracker. The users there will answer or ask you to file an issue if you've tripped over a bug.
At this point, you're ready to make your changes! Feel free to ask for help; everyone is a beginner at first! First Timers Only lists some good resources for getting started with contributing to open source projects.
The process to get your changes into the openCARP repositories is the following:
If you like the change and think the project could use it:
The maintainer team looks at merge requests on a regular basis. After feedback has been given, we expect responses within a month. After that time, we may close the merge request if it isn't showing any activity. Merge requests can be merged after positive review of at least one maintainer responsible for the respective part of the project.
If a maintainer asks you to "rebase" your merge request, they're saying that a lot of code has changed, and that you need to update your branch so it's easier to merge.
This section is supposed to expose some conventions that may not be obvious to a new user or contributor. This list is neither complete nor final.
clang-formatwithin our openCARP developer docker image.
time_trace), as opposed to camel-case (e.g.
timeTrace). Since we tend to have large function names, this increases readability. Since we move many code parts over from an existing code-base, the renaming may not be enforced with the first commits, but should be enforced over time.
user_globals. The globals defined automatically by param are in the namespace
numerics) has a header file of the same name that exposes the relevant definitions of that particular module. As such, including the capabilities of a module is streamlined.
Basic_physic. That interface can then be used to trigger initialization, computation and output events without having to know the physics instance.
If you find yourself wishing for a feature that doesn't exist in openCARP, you are probably not alone. There are bound to be others out there with similar needs. Many of the features that openCARP has today have been added because our users saw the need. Open an issue on our issues list which describes the feature you would like to see, why you need it, and how it should work. Don't forget to use the "Feature Request" label and any additional, specific labels. Feature requests are welcome. But take a moment to find out whether your idea fits with the scope and aims of the openCARP project. It's up to you to make a strong case to convince the project's developers of the merits of this feature. Understand that ressources of all people involved in the project are limited and that everyone is welcome to contribute.
The openCARP contrubution guide is adapted from nayafia's CONTRIBUTING template, available at https://github.com/nayafia/contributing-template/blob/master/CONTRIBUTING-template.md