Are you tired of waiting around for your code changes to be reviewed or tested? Try "Pull Request Trading" with another developer!
What is Pull Request trading? Why would I want to do this?
"Pull Request trading" is when two developers agree to review or test each others' Pull Requests. This can be used to obtain more immediate feedback for both developers, and is also a way to build collaborations with developers at other institutions.
You can also "trade" by asking a developer to review a PR that you did not author, but are interested in seeing it get immediate feedback. Simply let the developer know which PR you are asking them to review in exchange.
Trading PRs is also very beneficial to DSpace in general! The more developers we have helping to test or review PRs, the more quickly those PRs can be merged into the codebase (once approved). It also ensures that bugs may be found more quickly as different people test things in different ways.
Do I need to be a Committer or "expert" developer?
No. Any developer can take part in Pull Request Trading. Even if you are new to DSpace and just submitted your first PR, you are welcome to offer to trade reviews/testing with another developer. PR trading can be used as a way to get more familiar with DSpace development & review processes in general.
How do I trade PRs with another developer?
Simply reach out to other DSpace developers and ask! The easiest way to reach out is usually via Slack (see our #dev channel). You can either ask a specific person to trade, or generally post that you are open to a trade for one of your PRs.
We only ask that you follow a few simple rules:
- Please trade with developers who are not at your institution. While developers at your same institution are welcome to review your code as well, every PR needs feedback from other institutions. So, PR trading works best if you trade with someone from a different institution.
- Please make sure to give useful feedback in return (via a comment on the PR). Not all feedback needs to be positive. Even if you found issues/bugs or couldn't get the PR to work, that can be useful feedback to the other developer. Keep in mind though that you should describe how to reproduce any issues you may have encountered.
- We recommend you trade similar-sized PRs. It's much less likely that a developer will want to review/test a very large PR in exchange for a much smaller one.
A few other tips to be aware of:
- If you don't feel comfortable doing a code review, you can still trade by offering to test the other developer's PR. Testing can be just as beneficial as code review in that it helps us ensure the changes seems stable & bug free.
- If you aren't sure how to test a specific PR, please ask the PR's author. Sometimes the author may accidentally leave out important information regarding how to reproduce the bug they fixed, or similar. So, if you aren't sure, please don't be afraid to ask.
- You do not need to be assigned as a reviewer of a PR to review or test it. Reviews/Testing is welcome from any developer at any time. So, you can make trades with any open PR provided another developer wants to trade with you.
How do I trade PRs with the Technical Lead?
The DSpace Technical Lead (Tim Donohue) also is available for PR trading (based on the general rules above). However, a few additional rules apply, as he generally has a lot of code reviews on his plate.
- If you review or test any two similar-sized PRs (of your choice), Tim will promise to review one PR of your choice as soon as possible. (Your chosen PR will go to the top of his "to do" list.)
- PRs you review or test can be any PR on one of our active boards (currently 7.6.1 Board or 8.0 Board), provided the PR is of similar-size to your PR.
- PRs you review or test must be from a developer at a different institution from your own.
- Again, you must submit useful feedback on the PR you've reviewed/tested (via a comment on the PR or similar). It can be positive or negative feedback (So, if you test it and it doesn't work for you, that still counts).
- Once your reviews/testing is complete, message Tim via Slack or email (private messages are fine). Let him know which PRs you tested/reviewed & which PR you want him to review in exchange! That PR will go to the top of his "to do" list.
If you have other questions on how this works, please ask them on our #dev channel in Slack or on the dspace-devel Mailing List. We'd be glad to clarify things for you or help find you someone to trade with!