Closed nerrad closed 5 years ago
Previously #11331 (which didn't ever go anywhere).
@danielbachhuber I wasn't aware of that issue, thanks for the link. There's a few more concrete actions being taken here and while initially I think we'll put out a call for people to self-identify the components they feel most comfortable with - long term I believe the only way we'll see an increase of reviewers will be through direct invitation. Having a process in place to facilitate will hopefully help.
Yep. I agree with all of the goals mentioned in the description. Only wanted to point out the past attempt at this, which I'll go ahead and close.
I think I added all the packages to a given component, it's not very granular at the moment but maybe we can start high-level and iterate.
I suggest the @WordPress/gutenberg-core gets added as owner to all the components for now (to avoid breaking our current workflow which works but just lacks reviewers) and other people can ask to be added to specific packages if needed.
People are also free to volunteer to be a reviewer for any given area here.
I would caution having 'project components'. I understand application and whilst I see issues with this I am ok seeing if it works. I don't agree in way they are split. We can learn a lot from the way components work in WP over re-inventing a new way that already works.
That's a great proposal for application components. Excellent work identifying areas which might be grouped together. I guess this would be enough for start and we could quickly learn if there are more groups to add. There might be also slight tweaks applied. To give an example, for the data team you could also assign packages/*/src/store/*.js
file. Using the same pattern matching, you could specify that design team can edit all assets which match *.scss, *.svg, *.gif, etc.
.
I think we should clarify that this is not about being a component maintainer or something, it can create confusion with Core. This is essentially to solve one issue we have right now. A few people reviewing and approving PRs, it's about finding a way to involve more people in the reviews.
Find or create a karma/bounty system in which people can earn non-monetary credit weighted by their activity (comments, reviews, etc) and offer for redemption in return by request for review or request for issue to be resolved.
I would note this could be incredibly difficult to do and not have bias. I really think focus on the problem and scale up over including this.
@youknowriad thanks for clarifying:
I think we should clarify that this is not about being a component maintainer or something, it can create confusion with Core. This is essentially to solve one issue we have right now. A few people reviewing and approving PRs, it's about finding a way to involve more people in the reviews.
The way this issue reads could easily be confused and clarity is great around this. With that in mind, I even more think 'Project Components' don't need to be included.
Graph/visualize the disparity publicly and on an individual level contrasting one's opened pull requests to reviewed pull requests.
I would caution against anything that 'calls out' someone's activity. Every person is welcome to contribute and should be. Graphically watching what one person does over another is a slippery slope to exclusion.
There needs to be a good balance between contributing to code directly and reviewing work submitted by other contributors. The idea is to have a way to give more recognition to all those who perform design, copy, accessibility or code reviews and do testing.
I agree with both :) We should recognize those who perform well but we shouldn't blame/block anyone for not having the time or the willingness to help elsewhere.
Find or create a karma/bounty system in which people can earn non-monetary credit weighted by their activity (comments, reviews, etc) and offer for redemption in return by request for review or request for issue to be resolved.
I would note this could be incredibly difficult to do and not have bias. I really think focus on the problem and scale up over including this.
I agree. Many people have tried creating reputation systems and very few have been successful. Those systems that are successful require tremendous amount of effort to maintain.
I'd suggest a narrow focus on the problem with explicitly defined steps and measurable outcomes:
If we follow this approach, we'd first define A, B, C, and then identify the process of X, Y, Z.
Some options for A, B, C include:
Once we have A, B, C in place, it would be interesting to analyze the data before proposing X, Y, and Z:
Battling a qualitative description like "overwhelming" can end up with us simply tilting at windmills. Once you have quantitative measures, it can be much easier to determine whether your actions have the impact you intend.
@danielbachhuber Having a way to measure success is good, If this is something you think you could help with, that's great. We could do a weekly recap during the meetings.
We made some updates to the original issue to make it more actionable. The idea is to collect people interested by each area of Gutenberg. so let's start volunteering.
✅ I'm personally still interested in being approver and reviewer for all these areas (for the moment, changing his mind later is ok).
✅ I'd like to volunteer to be a reviewer for the data and tooling areas.
I'll review/approve just about anything. If anything, less so a focus on blocks.
Having a way to measure success is good, If this is something you think you could help with, that's great.
Sure. Which metrics do you think best represent success?
✅ I'm personally still interested in being approver and reviewer for all these areas until we have enough reviewers and approvers :)
✅ I'm personally still interested in being approver and reviewer for all these areas until we have enough reviewers and approvers :) (grabbed verbatim from gziolo)
Having a way to measure success is good, If this is something you think you could help with, that's great.
Sure. Which metrics do you think best represent success?
I like the idea of collecting metrics as you suggested earlier @danielbachhuber and agree its a good way to help with measuring whether the goal is being reached.
As far as metrics I wonder if we can use them to identify potential bottlenecks in various identified areas of GB. In which case we'd need to be collecting metrics for both the entire project and also for each identified area.
It'd be good if the metrics help answer the questions (spitballing here):
So having metrics that helps answer the above questions would be useful in contributing to keeping the momentum healthy I think?
@danielbachhuber
Maybe these metrics?
✅ I'm happy to review anything to do with UI Components and Docs!
✅ I'm happy to review everything with blocks.
✅ I'm happy to review anything you'd like my opinion on, usually around high level design.
@jasmussen Thanks :) Just noting that these don't replace the existing "Needs Design Review" / "Needs Accessibility Feedback" ... which I think work pretty well. This is more about knowing who to ping in case an area of the code is touched.
Have been trying to do the review for blocks
, UI Components
, docs
Recently I have started reading PR's around tooling
would love to test and try to chip in.
I'm happy to review anything for the RichText
component, rich-text
and format-library
packages, changes to paste logic, and more generally writing flow things.
Not sure why format-library
is part of the blocks area.
@youknowriad @nerrad Good suggestions. I've created #13492 for further conversation as to not derail this one.
Not sure why
format-library
is part of the blocks area.
@iseulde do you think it should be its own area (formatting maybe?) or should it be in a different area?
I'm not sure to be honest. There could be an area Rich Text or something, but maybe that's too specific.
I'd like to help in whatever capacity I can. In my few months in Gutenberg, I've helped in areas that were understaffed and needed fixing instead of focusing on a particular sub-system. Do ping me in any part of the code you see I've contributed to. I guess this pattern resonates with a lot of the other >350 contributors (the contributors pareto law!), so perhaps by setting up automatic review requests for small things (instead of broad areas) people may feel more up to the challenge and reviews will be distributed out of the core gutenberg group. Here are some paths that I remember having contributed to:
packages/components/src/color-picker
packages/components/src/draggable
packages/components/src/drop-zone
packages/components/src/slot-fill
packages/editor/src/components/block-draggable
packages/editor/src/components/post-publish-button
packages/editor/src/components/post-publish-panel
docs/designers-developers/developers/tutorials
✅ I'm happy to review everything with tooling.
I will be able to work on anything in UI Components
An initial CODEOWNERS file proposal can be found at #13604
I'm going to close this issue for now as we have an initial codeowners/reviewers implementation in place. Let's evaluate in some weeks and consider improvements.
Some feedback from my point of view.
It feels like we have two separate groups that might be interested in a pull request:
Github's code owners feature seems to be designed for the first group but not the second, as the name implies.
An example recently is that I had a very minimal pull request (a file rename) and there were ~10 reviewers added automatically to the PR, which I found overkill and creates a lot of notification noise.
I feel like the perfect system would be that when a pull request is created:
I know that GH doesn't support this idea out of the box, we'd probably need a bot to handle something like this ... perhaps an idea for the automation project?https://github.com/WordPress/gutenberg/projects/24
This issue is created as a result of the conversation in the recent #core-editor meeting about the need to have more Pull Requests reviewers in the repository.
Currently, in Gutenberg, there is a bit of a bottleneck in that there are a relatively small group of people reviewing and approving pull requests compared to the number of code (and otherwise) contributions made. While this is not a new problem for any project of this size, it is something that is worthwhile tackling to help keep momentum.
This issue is created to track an initial approach to solving this problem which has the following action steps:
Gutenberg Areas
Gutenberg is a large application, composed of different packages. A given group of people might only be interested in a given area of the project. From that perspective, there should be reviewers and approvers assigned to each area. The below headings are just a starter. Let's iterate on them. If more granularity is needed depending on interests, we could create smaller areas.
Additional Ideas
There were a number of other ideas that came up in the #core-editor meeting for increasing participation for code reviews. In future meetings these additional ideas could be brought up for future iterations on the goal of increasing code review participation.
How can you become a reviewer / approver?
If you’re interested in helping in one of the areas above (or a smaller set), please comment on this issue and we’ll make sure to add you to the corresponding group.