-
Notifications
You must be signed in to change notification settings - Fork 9
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
Simplified state diagram #49
Comments
I'm having a bit of a hard time reading that diagram, I'm not familiar with the notation. Maybe you could clarify, how does it solve these problems:
The same is true for #29. Only Re: short forms: I'm actively trying to make "needs merge" a very explicit action, so |
Yes, but how does the bot distinguish between PRs abandoned by the author and PRs abandoned by the reviewer?
This already happens.
Note that requesting reviews is not always possible, we can only request reviews from people who have "explicitly been granted read permission" to the repository. Marvin falls back to @mentions otherwise.
I don't understand this point.
It is not possible to search for PRs that have any assigne/review requested (1, 2). Its also not always possible to assign reviewers, as mentioned before. It would also make the information somewhat more implicit and harder to change manually / harder to understand the flow.
I don't think that should be true. As said in #47 (comment), I'm trying to complement the "natural" review flow as much as possible and not replace it / force people to always actively work with the bot.
👍 |
Again a technical limitation: We cannot reliably determine who is a "merger" and who is not (as long as they don't happen to be signed up as reviewers for marvin). |
If an open review request is not "submitted" within the time frame, then the abandonment is of the reviewer. If the author abandons, the PR get's stale, but since the author is supposed to have an interest to get PRs merged, I'd argue that there is no need for signalling that state other than closing stale PRs.
For the sake of using those github-native states, would it be feasible to only assign reviews to those people or have marvin grant those rights automatically to all reviewers that signup for marvin?
I'm referring to the case a requested reviewer just comments, and does neither approve nor request changes. So this review isn't really actionable. It might in fact be an atrempt to delegate the review. At any rate, the ball should be passed on to another reviewer (to either approve or request changes).
I tacitly assumed that we can query any combination of github native states. However, when not possible, it shoukd be easy to compose the set based on set operations on available queries (against open & non-draft PRs).
I'd argue a little against this cause girthub has very prominent visuals and build in filters. It might rather feel more "natively" supported.
For this idea, marvin could regard any assigned reviewer in
|
Or is the idea that marvin on one hand revourses on an internal list of reviewers while at the same time pretends signaling to an unkown third party? I think |
Let me rephrase that question: How does marvin discover those PRs using the GitHub API in a scalable manner?
There are a lot of stale PRs in nixpkgs, life gets in the way.
Possible yes (NixOS/rfcs#39), but it restricts our pool of potential reviewers and I'm not sure if it adds enough value to justify it.
People often use comments to request changes. I don't think its realistic to ask everybody to change their habits here -- people will just not use marvin and get annoyed by it. We should try to work with people's workflows, not against them.
Not sure what you mean by that. Exhaustively going through the search results and requesting the details on every PR will quickly eat through the rate limit.
In order to find actionable PRs, potential reviewers would now have to look up the GitHub search syntax for review requests (which doesn't even really exist), assignees, drafts. Contrast that to simply searching for
Again, this makes things more complicated and less transparent. Its also again not possible to discover these PRs and run triage on them. What do we gain?
What do you mean by "pretends signaling to an unknown third party"? |
I'm inclined to close this, as I don't see what the changes would give us. In my view, they simply move some of the external state to internal logic. While that may seem like a simplification at first, it only hides/moves the complexity. It makes the logic harder / impossible to implement withing GitHubs restrictions. It also the bots actions less transparent, makes it harder for people to filter PRs and harder to spot and manually fix up errors in the heuristic. Do you disagree? |
I really apreciate the discussion. I'm not able to defend the idea further in an actionable manner. My gut tells me the "flight height" of I also think technical limitations can eventually be circumvented pulling the right levers. With internal state definitely more easily than with external/label state. For now, I'm really happy to have discussed it with you and that you probably are in a position where you mught draw inspiration from some of those ideas if that seems like a good fit later on, so I'm closing this. Thanks! 👍 |
Thanks for the ideas! For the moment, I do think that external state is both easier to implement and easier to understand. Especially since its easy to override the heuristics. Lets see how that works out. A similar discussion will probably come up again when I revive rfc#30. |
Coming from #29, superseding #40, abiding by #29 (comment) :
Also supersedes #22, #44
Link To SVG
Notes:
/marvin go
menas togitub.undraft
andLastMile.label
/marvin merge
means to assign another github reviewer (really: "merger") , which has committer rightsmarmaidjs
sourceFeatures:
LastMile
-> in reviewLastMeter
-> towards mergeShort forms: (#41)-/marvin go
->/m g
-/marvin merge
->/m m
-/marvin delegate @timokau
->/m d @timokau
The text was updated successfully, but these errors were encountered: