-
Notifications
You must be signed in to change notification settings - Fork 4.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
For comment: Roslyn team SLA for addressing community PRs and bug submissions #26266
Comments
I should note that we've already begun the work on identifying the older PRs that need rebasing and looping back to contributors, so as to get that in front of contributors as early as possible (thanks, @jaredpar !). |
@MattGertz Sounds great. My pieces of feedback (which may be covered above, but i missed it), are around the expected communication times provided. Specifically, that when the SLA allows for long amounts of times (for example, multiple weeks), if the buddy could still check in on somewhat of a reasonable bases (maybe weekly would make the most sense) just to confirm things are on the radar and are proceeding as planned. Right now there's a large need for contributors to continuously 'ping' the team to try to get eyes on a PR. I've had to do it many times myself, often waiting several weeks between pings to not be too annoying, but finding it necessary because there has been zero communication in the other direction. -- Also, while i firmly expect other work of the 'buddy' to be important and mentally consuming, i would impress on the value in being to have quick turnaround and communication on a PR. For example, several of my own PRs have been difficult to deal with as i've only gotten eyes on them sporadically over the months. Each time that happens, i myself have to 'page in' all my understanding and context, and it makes the work much harder. While i would never expect that these PRs occupy too much of a buddy's time, i think it would be appreciated if buddies helped try to 'close the loop' on PRs when possible by engaging more continuously. In other words, while 'three days' is def a nice SLA to have, i would impress on the team that if it would only take a couple of minutes for a buddy to respond to something simply, that sort of responsiveness would be very appreciated and will help out the PR process enormously. Thanks! |
Another small niggle:
You need to specify what you mean by "older than six months". Right now it seems like you're closing PRs that were created more than six months, even if there has been active work on them. Can you instead only close PRs that have not been touched in 6 months? Thanks! :) |
Rather than re-submitting, why not suggest that the author reopens the PR after resolving merge conflicts and pushing? |
Note: i cannot seem to reopen my PRs that were closed. This is also problematic as i do not want to open new PRs which would then not have all the comments and discussion from the original. I've pinged jared to reopen the ones that are still relevant. |
I didn't know this. From GitHub support via isaacs/github#361:
So the PR author should first reopen, then force push. |
That's really unfortunate. I'd been working on this PR #10873 with Neal, and had just done more work on it in the last week based on the latest pattern changes he'd made. Needing to reopen, which would lose all the discussion and whatnot is not great. |
I think a far more appropriate and gentle approach would have been to give some warning on this. If these steps were very destabalizing for the contributor, it's not very nice to give zero warning and then have it foisted on them. Even giving a week with a message of "we're going to close this unless you pull this forward" would have been appreciated. That would be esp. good given that the SLA is still in first-draft form and could easily change in the near term. I would ask that you please consider that in the future when enacting any policies that can have this sort of impact on a contribitor's work. Just a little heads up goes a long way and can prevent unnecessarily painful situations, without really costing the team anything. Thanks! |
Ah, ok. I didn't realize it could go back to the original PR. I thought a new PR was required. That's much more palatable. |
We have a problem right now that we don't always do a good job of assigning incoming issues to a team, and under the proposed plan such issues would fall through the cracks. See currently uncategorized issues HERE. |
Another important issue: it's often difficult to get the requisite two reviews. Leading to the situation where a PR is reviewed by one person at one time, but then may go weeks until reviewed by another. Then based on what the second reviews lead to, changes may be necessary that restart the entire process with both reviewers. I'm not sure what can be done about this, but generally having the team be open to reserving some amount of time to do reviews would be valuable. Note: this was a particular pain even when i was on the team. It was often difficult to find people who could give any time toward a review. That doesn't seem particularly healthy as it leads to only an extremely slow dribble of improvements to the codebase. |
Update: yesterday Jinu and I walked through the remaining PRs to be assigned out to buddies. We are getting very close to having that step completed. @CyrusNajmabadi Sorry for the late response. Great point. For simple changes, I'm open to that being a call by the buddy without the second review to improve velocity -- lemme just check with my leads to be sure that no one has a concern about that. For bigger stuff (i.e., pretty much anything you personally write :-)) I'd still want the second review, though. (Lotsa code comments helps make that go faster...) |
Are there any updates on this? |
@Neme12 what update are you looking for. We are currently following this progress, where community PR are assigned out to one of the buddies and we work together to get it in on time. |
It's been nearly four years since we moved Roslyn to open source, and during that time we’ve worked on refining our processes and infrastructure to better enable and support it. Much of that effort has been focused on the CI (continuous integration) train, particularly focused on automated testing.
One thing that we recognize that we haven’t done as well as we’d like is the processing of community-submitted PRs and bugs. In fact, we have over 200 unprocessed PRs, many of which are quite old, along with rather more bug reports which are still open. We’ve attempted several times to impose more rigor on getting these processed. However, for various reasons (but ultimately due to the availability of engineers to drive through the backlog vs. other high priority work in Visual Studio), we haven’t been able to sustain those efforts. We want to do better here.
In discussing this in one of our weekly Roslyn leads’ meetings, we agreed that previous attempts to make progress here were too ad hoc. We further agreed that this type of community support can only succeed if we bake in time to each sprint to address it. To that end, we want to start by creating an SLA to which we would hold ourselves accountable by setting goals and reporting progress against them in a transparent way each sprint, which then would allow us to better build in cost for support each sprint after a few sprints’ worth of data.
What follows is a draft of that plan, reviewed by the leads of the Roslyn team and cross-checked by managers in peer organizations. In the spirit of open source, we would like community & Roslyn team feedback on it before ratifying it.
PRs:
While the Roslyn team has the right and obligation to move Roslyn in directions which might conflict with community-submitted PRs, we should not leave PRs hanging without any feedback at all. We now have accumulated a lot of PRs, many of which are old and possibly not even relevant to the state of the codebase. To address this, we are considering the following:
Existing PRs:
New PRs:
The lead developer for each area of the repo will do first-pass triage community PRs within a week of submission for the PRs in their area. (In practice, this will probably mean that a lead will set aside one block of time each week for this.) The first pass will result in the following visible status update within that week:
PR report:
The Roslyn leads will each produce a brief report each sprint which shows how we are tracking against PRs for their area (PRs completed in bounds, PRs in discussion, PRs out of bounds, PRs rejected). These areas include Productivity (IDE/Debugger/Analyzers), Compiler & Language, Project System, and .NET Core CLI/SDK.
Bugs:
Reported bugs from customers (w/o PRs) in GitHub will be treated identically to any other bug, whether reported from customer via the Visual Studio Feedback mechanism, discovered internally by the team, etc. Specifically:
Please discuss. The goal is to have a plan in place by May 15, 2018.
The text was updated successfully, but these errors were encountered: