Comments (7)
We are assigning based on changelog label and then the person responsible for the project, can do the review or assign the codeowners. The confusion on the above PR is created due to repeated changing of changelog labels.
Also, the automatic assigning of codeowners to PR is something we are targeting for milestone 3. Are there any other cases of the wrong assignment of reviewers?
from oppiabot.
No, this is the only type of case I am aware of. I think also sometimes the changelog labels might not match the actual codeowners, so I was wondering whether it would make sense to bypass that initial reviewer and figure out directly which codeowner would be the "most appropriate reviewer"?
from oppiabot.
What do you mean by "most appropriate reviewer"? I feel it is difficult to define the most appropriate reviewer using the bot and it is better to assign all the codeowners since they all will need to do the review finally.
from oppiabot.
We currently have a review flow where one reviewer looks at the PR in its entirety, and then adds all the codeowners for review of the subparts. So the question I was thinking about is, how do you figure out who that "one reviewer" is?
My suggestion would be that, since each "line of code" is owned by a codeowner, you could add up the lines of code (or, less granularly the number of files) in the PR that are "owned" by each codeowner, categorize these by codeowner, and see which codeowner corresponds to the largest number. This isn't exact but might be a good first guess.
Or, alternatively, you could pick a codeowner at random to take the first-pass review. There may also be other (necessarily approximate) approaches that I haven't thought of.
That said, if you think assigning all the codeowners is better, I don't have a strong objection to that. The only thing to be aware of is that it's possible that this might lead to a somewhat fragmented review because there's a chance that no reviewer would look through the entire PR. But we can still try this and see if this actually happens in practice. I think it's ultimately your call.
(Does this help?)
from oppiabot.
We currently have a review flow where one reviewer looks at the PR in its entirety, and then adds all the codeowners for review of the subparts. So the question I was thinking about is, how do you figure out who that "one reviewer" is?
This is normally the reviewer assigned via the changelog label.
My suggestion would be that, since each "line of code" is owned by a codeowner, you could add up the lines of code (or, less granularly the number of files) in the PR that are "owned" by each codeowner, categorize these by codeowner, and see which codeowner corresponds to the largest number. This isn't exact but might be a good first guess.
Or, alternatively, you could pick a codeowner at random to take the first-pass review. There may also be other (necessarily approximate) approaches that I haven't thought of.
That said, if you think assigning all the codeowners is better, I don't have a strong objection to that. The only thing to be aware of is that it's possible that this might lead to a somewhat fragmented review because there's a chance that no reviewer would look through the entire PR. But we can still try this and see if this actually happens in practice. I think it's ultimately your call.
I think it is feasible to choose the most appropriate reviewer by summing up the lines/files linked with each codeowner but even in that case fragmented review is possible. The most appropriate reviewer will just review the codeowner files and assign other reviewers and there is no guarantee that they will assign the next reviewers (they can miss doing that and only assign the author instead). So, I would prefer the approach of assigning all codeowners and if we see flaws, we can then update it.
from oppiabot.
This is normally the reviewer assigned via the changelog label.
Ah yes, sorry -- for clarification, what I meant (but was unclear about) was "how to figure out which of the codeowners should be the 'one reviewer'". Currently, there's sometimes no overlap between the auto-assigned reviewer and the list of codeowners.
For the rest, I think what you say sounds reasonable. Thanks!
from oppiabot.
This is fixed by #104.
from oppiabot.
Related Issues (20)
- Describing more features of Oppiabot in README.md
- Oppiabot should close a PR if junk commits are present. HOT 1
- Fix: Ensure Oppiabot verifies CLA work for Android too HOT 7
- Oppiabot should close the PR when someone force pushes the changes. HOT 1
- Oppiabot is saying that contributors can't merge PRs, when they can.
- Self Assigned after PTAL comment
- [Github action] CLA Check - Input variables using `with` instead of `env`. HOT 1
- Migrate Modules to Github Actions HOT 22
- [Oppia Android] Require new files to be re-approved HOT 3
- Github action bot should close the PR if the author has not signed the CLA HOT 5
- Make cla check case-insensitive
- [Oppia Android] Request to enable post-merge sync notifications HOT 3
- [Oppia Android] Oppiabot did not close a PR that was force pushed HOT 1
- Auto-close PRs that are force-pushed for Oppia and Oppia Android HOT 4
- Oppiabot should assign release coordinator on addition of hotfix labels
- Disable stale check on Android repo HOT 3
- Make message about who can add "good first issue" labels more clear HOT 7
- Add `PR: Affects datastore layer` label to PRs that modify anything in `platform` folder
- [Feature Request]: Reopen an issue if it corresponds to unresolved TODOs in the codebase. HOT 2
- Auto-assign reviewers for a PR when created, and give clearer instructions to contributors on how to make that assignment happen. HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from oppiabot.