Hello Jim,
I agree that these are important questions to be answered as we move towards a community-driven process for managing maintenance and development of the codebase. Along those lines, it is important that the VIVO committers ultimately shape and agree on such policies.
I can suggest some possibilities:
1. GitHub has a built-in capability to present a template when a contributor opens a pull-request. Here is an example of such a template used in the Fedora project:
1b. There is a serious unit/integration testing conversation to be had. My general opinion is that unit tests are great for test-driven-development, but integration tests are what ensure the application works as expected over time.
1c. Documentation... yes, both in the code and in the wiki (as appropriate). I believe it is the documentation that opens the project to the broader community of contributors.
1d. Both DSpace and Fedora have documented coding style-guides that could be used as reference:
It is also worth noting that the Maven Checkstyle plugin does a good job of enforcing whatever styles we require.
2. Responding to pull-requests: This is again a question on which the project committers need to decide... since the committers are the ones who ultimately merge pull-requests. I would suggest such a policy include elements of:
- minimum number of committers required for approval of a pull-request
- no pull-request to be merged by its author
I have created a page in the VIVO GitHub as a starting point for refinement:
3. Nature of code review: This speaks directly to the quality of product we want to create and maintain. I agree with your suggestions around line-by-line review and testing... as well as exploring edge cases.
I have added this topic to next week's (Tues 1/30) Development Meeting agenda to get more ideas on the table and move towards consensus.
Thanks for kicking this off, Jim!
Andrew