Hi everyone, I would like to discuss how to improve the process of shepherding code into the kernel to make it more enjoyable for maintainers, reviewers, and code authors. Here is a brief summary of how we got here: Years ago, XFS had one maintainer tending to all four key git repos (kernel, userspace, documentation, testing). Like most subsystems, the maintainer did a lot of review and porting code between the kernel and userspace, though with help from others. It turns out that this didn't scale very well, so we split the responsibilities into three maintainers. Like most subsystems, the maintainers still did a lot of review and porting work, though with help from others. It turns out that this system doesn't scale very well either. Even with three maintainers sharing access to the git trees and working together to get reviews done, mailing list traffic has been trending upwards for years, and we still can't keep up. I fear that many maintainers are burning out. For XFS, the biggest pain point (AFAICT) is not assembly and testing of the git trees, but keeping up with the mail and the reviews. So what do we do about this? I think we (the XFS project, anyway) should increase the amount of organizing in our review process. For large patchsets, I would like to improve informal communication about who the author might like to have conduct a review, who might be interested in conducting a review, estimates of how much time a reviewer has to spend on a patchset, and of course, feedback about how it went. This of course is to lay the groundwork for making a case to our bosses for growing our community, allocating time for reviews and for growing our skills as reviewers. --- I want to spend the time between right now and whenever this discussion happens to make a list of everything that works and that could be made better about our development process. I want to spend five minutes at the start of the discussion to acknowledge everyone's feelings around that list that we will have compiled. Then I want to spend the rest of the session breaking up the problems into small enough pieces to solve, discussing solutions to those problems, and (ideally) pushing towards a consensus on what series of small adjustments we can make to arrive at something that works better for everyone. --D