A preCICE developer told me to try a “PR” (Pull Request). What is this and how do I try it?
“Pull Requests” (also known as “Merge Requests”) are collections of code changes that we test & review, before we apply them onto the main / released preCICE. This is a term used on GitHub, the collaboration platform we use to develop preCICE.
When you ask for help, a developer may observe that you found an issue and may propose a solution that needs you to test.
Follow the link that you were given, or find the PR in the lists of Pull Requests of the respective repository. Every PR and issue is identified by a number (in the example below, #494).
Every PR also has a “target branch” (here:
precice:develop) and a “compare / from branch” (here:
Dominanz:PR_draft_MATLAB_bindings). In order to test the changes, you need to get the version from the “from” branch. Scrolling to the bottom of the page you can find the instructions:
To get the code, you will need to install Git. If you want to avoid it (not recommended), you can always click on the link to the “from” branch and use the “Download zip” button.
After you get the code, you will need to build it. You may also need to build all your adapters again. If you are testing an adapter PR, you don’t need to build preCICE itself.
Please pay attention to the version information that preCICE prints during initialization and include this in your feedback. Also make sure that you use the same preCICE version with all the participants.
I would like to add one thing: If you create a PRs from a branch of your fork, you can also grant write access to your (private) branch to the preCICE developers. For more information see here. Whether this makes sense or not, depends on your workflow:
- if you grant write access to the preCICE developers, they can help you polishing your code, before it is merged. They can also push commits to your branch etc.
- if you do not grant write access the preCICE developers can still help you in the PR dialog by adding comments or writing reviews. However, they cannot change your code.