-
-
Notifications
You must be signed in to change notification settings - Fork 14
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
[Proof of concept] Show hello greeting message #44
Conversation
Hi @wilzbach -- of course I have time and motivation for stuff like this, don't be misled if I seem grumpy on the forums ;-) The message I would like to see probably goes something like this:
where the word I've left out the auto-suggestion of reviewers because I think this does risk being spammy. It's better for that information to be available (on request) to the reviewer with commit rights, who can then decide who to ping and how to do it. The What do you think? BTW I would be careful to ensure this kind of message is cleanly separated from things like the bot's cross-linking to issues.dlang.org. |
First thoughts: Isn't this what CONTRIBUTING.md is supposed to do? |
The We could probably reduce the number of points, though.
Yes, good point. Could we send a different message for people who GitHub already considers a contributor? Maybe just a shorter message assigning a reviewer with commit rights?
No, I agree. But I do think there's some value in setting a tone of expectation in terms of responsiveness of someone responsible for the project. Psychological 'nudges' can be for maintainers as well. It would need 'buy-in' though from people with commit rights. I wouldn't feel comfortable with this message being approved if maintainers felt it was making false promises on their behalf.
Good point that could maybe be handled separately -- perhaps maintainers could receive a weekly email identifying 5 PRs for which their attention could be useful? By the way, for reference, the 'highfive' bot message that I received when submitting to rust was as follows. I did rather follow its style but tweaked some things for D:
What is interesting about this of course is that it only mentions points regarding the upcoming review, not about how the PR should be prepared. |
Might be worth covering what we want to get out of this. Fundamentally, my own goals for this kind of auto-response would be:
@MartinNowak, does that sound reasonable to you? Is there anything you would add/remove or which you see as problematic? |
I'm not positive that any push-based assignment will work out, we're fairly busy already and more pushing will rather lead to even more congestion and unfocused hopping around. Identifying (or mentioning) common PR mistakes/practices is indeed interesting (also see #8) to reduce the amount of review ping-pong. Can we get some proper stats/analysis on why PRs get stuck or take too long to be merged? |
Fair point. I'm less concerned about pushing maintainers to do things, than about what can be done to make sure that no PR misses out on a timely maintainer response. It's obviously better if volunteer maintainers are able to self-select what they work on, but there must be plenty of things that can be done (in a non-pushy way) to facilitate awareness of which PRs need particular kinds of action.
I wonder if we might be able to get some traction by reliably identifying statuses of a PR:
In the event of changes to the submitted patches, the status would reset to 'needs review'. Of the above I think that only 'needs review' and 'auto-merge' are available among the current tags.
No promises that it'll be soon, but I'll try to do a quick examination of open phobos PRs and see if I can classify them in some way (possibly along the lines of the above statuses). |
See also #46 - during the summer I did this manually for a couple of weeks by sending @andralex a selected list of PRs that required his attention. It worked quite well, we went down to 60 PRs at Phobos for the time being. Unfortunately it's quite a lot of work, but we could do something like @WebDrake proposed:
Maybe this could even be done with solely with new GitHub Review feature
FWIW there's a designated issue about automatically assigning PRs: #31
I would add sth. like "no-activity" to the list as handling stalled PRs is especially difficult. My 2 cents
|
BTW, just a slightly extended thought on how the above 'PR status' ideas could be helped by dlang-bot. Let's suppose a standard model for approval of a PR which goes along the lines of, there need to be two favourable maintainer reviews (and no outstanding changes requested) before a change can be accepted. However, maintainers can override this in the event of trivial PRs which don't need that much scrutiny. So, the possible interactions would go something like:
Does that sound like a helpful structure (without too much push on the maintainers)? |
Yep it does to me! I added a couple of comment for the individual points below.
GitHub allows to have "required" CI tests (at Phobos: auto-tester, DAutoTest) and non-required for now are (CircleCi, CodeCov and the ProjectTester). See also: #43 (trigger warning when a PR gets unmergeable)
I think the time intervals need to be larger, but they definitely should exist.
I think that's a good idea. It could here draw reviewers randomly from an |
In this case I wasn't thinking of pinging arbitrary reviewers, but those maintainers who had already submitted a GitHub review (& so are already self-engaged with the PR). |
@WebDrake I went ahead and started to implement a first iteration (or grounding layer) for the features you proposed.
Once we have all these building bits in place, we can stark looking on the details of the 'needs review' cycle. From what I understand it's supposed to be and in a simplified way:
Note that I replaced "author action needed" with the 'needs work' because it's an already existing label and it fits nicely in the 'needs X' structure. More feedbackI think point (4) is a bit opportunistic: reviews are usually very rare and case that a PR has two approvals and doesn't get immediately merged almost never happens. It is much more likely that a PR receives a single or two comments and then sink into the PR queue abyss. So in the end it's all just about keeping reviewers happy and motivated ;-) |
@wilzbach wow, you have been busy! :-) It might take me a little while to get to look through this properly. I'll try to give it the attention it deserves before the end of the week. |
I see @MartinNowak is on this, leaving it to him. FWIW it seems a more favorable out-of-the-box experience for new contributors would be a net positive. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A welcome msg seems fine, should contain some guidance, e.g. a link to CONTRIBUTING.md.
Also sounds fine to just always add a comment to begin with.
source/dlangbot/github.d
Outdated
{ | ||
import std.array : appender; | ||
import std.format : formattedWrite; | ||
|
||
auto combined = zip(refs.map!(r => r.id), refs.map!(r => r.fixed), descs.map!(d => d.desc)); | ||
auto app = appender!string(); | ||
app.formattedWrite("Hi @%s. Thanks a lot for your contribution.", pr.user.login); | ||
app.put("Fix | Bugzilla | Description\n"); | ||
app.put("--- | --- | ---\n"); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No need for a table header when there are no referenced issues.
Just found a link that is probably worth citing: https://wiki.dlang.org/Starting_as_a_Contributor#Create_a_pull_request |
9e08b24
to
7014bd2
Compare
Okay I finally found time to rebase this - as I now have a bit of time to babysit this and we all agree on that adding a "hello" msg is useful, I will merge this now & have a look at the bot. Of course, the message isn't intended to be fixed, but once its' working we can trivially change it. |
Belated congrats for this great work! |
@WebDrake - I hope you still have time & motivation:
Here's a proof of concept change that would make the dlang-bot show such a "hello contributor" message.
I didn't adapt the test suite as this PR is just to show that's rather trivial to add such a message ;-)
@MartinNowak what's your opinion on this? If there are people who consider this as too noisy, they could configure a filter at their mail server or simply block the dlang-bot user. OTOH it might be quite motivating and helpful to have a handy summary of important links. Moreover, the dlang-bot is already comments on about half of all dlang PRs.
For reference - the starting post