The PR team chronicles: month one
Remind me again, what is the purpose of the PR team again? 🤔
For the first few months of its existence, the purpose of the PR team is to make sure that new contributions (so anything new after Codegarden 18, more on this later in "Future plans") to Umbraco get all the attention they deserve. This means they'll get a prompt reply that we have seen and appreciate their contribution and that we'll check it out soon. This alone helps contributors feel like they have sent their PR correctly and that they can expect a more substantive reply in the next few days.
After that initial reply, a PR team members will:
- Evaluate the code, to see if it makes sense and is roughly in line with the coding style that Umbraco uses already
- If there's any concerns or questions, we'll raise them as soon as possible - examples of questions might be: "what exactly does this solve?", "how do I reproduce the problem?", "why is there a picture of a banana added?", etc.
- Clone the PR locally, build the code and test it out to see if it works as expected and to make sure it doesn't break anything - this results in either a positive review or a request for some more changes as required
- At this point HQ can pick up the PR if they had not already and feel fairly confident that it does what is described. Usually we'll do another quick test and we'll do another code review as well.
- Of course if there's any questions or changes are needed, the PR will get updated accordingly so the submitter knows what's going on and can help further the PR
The goals for new PRs after Codegarden 18 currently are:
- Initial reply within 48 hours, even if it's just a simple acknowledgement of receipt of the PR
- Within at most 14 days (but most of the time much faster) a substantive reply after looking at the code and testing it
- Merging the PR within at most 30 days.
Results for the first month
Currently with the PR team we're still learning how to handle the flow of new contributions and we're not quite on top of absolutely everything yet. However, we are already breaking records!
I've been so jealous of Sofie's beautiful stats based on the Documentation Curators development over the past year, so I had to follow up with some stats of our own!
Below we're showing pull requests created (blue) and merged (red) per month for the last year.
For the month of June 2018 (stats are from the 21st of June) we have managed to merge a record number of 40 PRs from just community members, this does not include pull requests made by Umbraco HQ, so only community contributors.
Blue is PRs created. Red is PRs merged - look at June 2018!
This is not just a record for the past year but for all time, and the month is not even over yet!
We've seen a lot of enthusiasm right after Codegarden from people sending in new pull requests now that they know they'll get the attention they deserve and it's been a super fun challenge to go through all of them, thank you for your trust! 🎉
All of this, of course, has already resulted in a fabulous new release, version 7.11 (insert 7eleven joke here 😉)!
Umbraco version 7.11 was released last week thanks to contributions from the community!
It’s great to see people celebrate their contributions
And getting inspired to keep helping more after their first PR was merged.
And enjoying the new process.
While we're currently focused mostly on new incoming pull requests, a select number of older PRs will also get attention whenever HQ can fit them into each sprint. So even though we've only been going for a month, we've already managed to fit in a huge change to the dictionary section which Dave Woestenborghs provided. 👍👏
This is where another, albeit unwanted, record comes in, in the month of May the number of open (community contributed) PRs was 169, the highest number we've ever had. Luckily we've got it down to 165 in June so far.
Stats on number of open PRs
We'll keep working very hard to get that number down by a lot, but that is not going to happen over night as we want to evaluate the merits of each PR that is still open right now. I'm reminded of James South's recent tweet:
This is indeed a labor intensive task to figure out the intention of the PR, if the problem is still there or if a feature is still wanted, review, communicate, etc.
In the next few months, with help from other HQ members, I will start categorizing existing pull requests so that we have a general theme to them. This will help us bundle a bunch of PRs together so we can take a higher level view: where do we want to go with this and does it fit in either v7 or v8.
So while our goal is to get close to zero open PRs this will take a while (thank you for your patience 🤗!). I expect that we'll be in a good place after the summer to start taking a more structured look at most of the older PRs. We'll also involve the PR team in that process of course.
The executive summary:
Thanks to all contributors for donating their valuable time! And thanks very much to the PR team who made it possible for us to merge a record number of pull requests in the first month of their existence #H5YR!