Hello all,
Now that we are drawing close to what I believe will be the final, production ready release of OpenYOLO for Android, I'd like to add a little more formality to the review and release process for the code associated with the project.
To date, myself and David Samuelson from Google have been the only two people able to submit code to the OpenYOLO-Android repository. I would like to create a broader "reviewer pool" for submissions, so as to alleviate any concerns about organizational bias - to this end, I'd like to add Michael Verde from 1Password, and Stan Kochen from Dashlane to the pool.
As part of this, we must also establish the standard that we must all uphold when reviewing and submitting code. I propose the following, as a base set of rules upon which we can build:
- A reviewer from the pool must be assigned for all pull requests within one business day. The reviewer should not be from the same organization, except in circumstances where this is unavoidable due to the availability of reviewers.
- Review comments must be provided within two business days of assignment of a reviewer, or
follow-up changes provided in response to review comments.
- All code submitted must pass the automated checks defined in our build. Reviewers do not need to more rigorously review code until these checks pass - they can simply reply with "please fix the build errors".
- All code submitted must have at least 60% coverage for the affected lines. Reviewers may request higher coverage, or additional tests generally, if the changes made warrant this.
- Code submitted must not drop the overall coverage of the project below 80%.
- Code changes that have implications for the specification must have an associated thread of discussion here on this mailing list, and consensus must have been reached that the change is worthwhile.
- Code changes that affect the API must also be demonstrated as part of the test and sample applications.
- Code changes that affect the SPI must also be demonstrated as part of the test and demo providers.
- Complex changes may be broken into multiple pull requests for review, but these should not be directly submitted to the master branch - instead, they must be submitted to a feature branch until the complete set of changes is made, and then merged into master.
- In the case of disputes over code style or implementation approach, I will be used as a tie-breaker.
I believe this should be a sufficient set to get us going; if there is agreement on this, I'll add this to the contributor instructions in the repository, and then give Michael and Stan the necessary permissions. to review and submit code.
Iain