Thank you for considering contributing to elastix
!
-
Ask any question about how to use
elastix
on the mailing list. You can subscribe to the mailing list here, after which you can email to [email protected]. -
Do not open an issue on GitHub for general questions, registration questions, or issues you may have while running
elastix
. GitHub issues are primarily intended for bug reports and fixes. -
General information about
elastix
can be found on our website. -
The manual explains much of the inner workings of image registration.
-
Ensure the bug was not already reported by searching on GitHub under Issues.
-
If you're unable to find an open issue addressing the problem, you can open a new one. Be sure to include a title and clear description, as much relevant information as possible. A code sample with a test demonstrating the expected behavior that is not occurring would be awesome.
-
Suggest your change on the
elastix
mailing list. -
Do not open an issue on GitHub until you have collected positive feedback about the change.
-
Open a new GitHub pull request (PR) with the patch.
-
Make sure the PR is done with respect to the develop branch.
-
Ensure the PR description (log message) clearly describes the problem and solution. Include the relevant issue number if applicable. One-line messages are fine for small changes, but bigger changes should look like this:
$ git commit -m "ENH: A brief summary of the commitA paragraph describing what changed and its impact."
-
We use the following tags for commit messages:
- ENH: for functional enhancements of the code
- BUG: for fixing runtime issues (crash, segmentation fault, exception, or incorrect result)
- COMP: for compilation issues (error or warning)
- PERF: for performance improvements
- STYLE: a change that does not impact the logic or execution of the code (improve coding style, comments, documentation)
-
Ensure the PR adheres to our coding conventions.
-
We will review your PR and possibly suggest changes. We also have an automatic build and test system checking all PRs (Travis-CI). When all lights are green, the PR will be merged.
-
More information on pull requests can be found here and here.
Start reading our code and you'll get the hang of it. We optimize for readability:
-
We indent using two spaces (soft tabs). This ensures a consistent layout of the code on different text editors.
-
We ALWAYS put spaces after list items and function arguments (
[1, 2, 3]
, not[1,2,3]
), around operators (x += 1
, notx+=1
), etc. -
Use
/** ... */
style documentation. -
Member variables of classes should start their name with
m_
. For example:m_NumberOfIterations
. -
Type definitions should start with a capital. ImageType for example, instead of imageType.
-
This is open source software. Consider the people who will read your code, and make it look nice for them. It's sort of like driving a car: Perhaps you love doing donuts when you're alone, but with passengers the goal is to make the ride as smooth as possible.
Thanks,
The elastix
team