Add initial version of a CODEOWNERS mapping#5573
Conversation
|
Thanks for your pull request, @wilzbach! Bugzilla referencesYour PR doesn't reference any Bugzilla issue. If your PR contains non-trivial changes, please reference a Bugzilla issue or create a manual changelog. |
|
Praise be. Please gimme std.file and the std.windows / std.c.windows ones. I could also take std.stdio (together with @schveiguy), std.json, std.path, etc.c.*, zip/zlib, and the curl ones I guess. |
|
I'll take std.conv and std.string |
CODEOWNERS
Outdated
| # These owners will be the default owners for everything in the repo. | ||
| # Later match takes precedence | ||
|
|
||
| std/bitmanip.d @WalterBright |
There was a problem hiding this comment.
Walter is too busy with other stuff to review Phobos PRs. Best leave him off.
|
@wilzbach Could we get a listing of all modules so we see the unassigned ones? |
|
I guess I'll also volunteer for std.array and std.algorithm.iteration |
|
Awesome! Thanks a lot already!
Yes. I added the unassigned files and commented them. |
|
I should be on hook for all of |
|
Great initiative, thanks! I'd also be happy to take a share in std/math*, having recently gone through all of it for AArch64 support. |
CODEOWNERS
Outdated
|
|
||
| etc/c/* @CyberShadow | ||
| std/* @andralex | ||
| std/algorithm/* @andralex @wilzbach |
There was a problem hiding this comment.
@JackStouffer: I though it makes more sense to group entire std.algorithm - still interested?
CODEOWNERS
Outdated
| std/conv.d @JackStouffer | ||
| #std/csv.d | ||
| std/datetime/* @jmdavis | ||
| #std/demangle.d |
There was a problem hiding this comment.
+#std/demangle.d
Maybe @rainers and @MartinNowak ?
Fine with me. This is just a wrapper for core.demangle, though.
| # Later matches take precedence. | ||
|
|
||
| etc/c/* @CyberShadow | ||
| std/* @andralex |
There was a problem hiding this comment.
I should be on hook for all of std/, at least for the time being. Thanks!
@andralex AFAICT the CODEOWNERS file will ask for a reviewer for the last matching line, hence this line is a fall-through (and of course documentation).
CODEOWNERS
Outdated
| std/meta.d @klickverbot @ZombineDev | ||
| #std/mmfile.d | ||
| std/net/curl.d @CyberShadow | ||
| #std/net/isemail.d |
CODEOWNERS
Outdated
| std/path.d @CyberShadow | ||
| std/process.d @kyllingstad @schveiguy @CyberShadow | ||
| std/random.d @WebDrake @wilzbach | ||
| std/range/* @andralex @jmdavis @wilzbach |
There was a problem hiding this comment.
jmdavis has remarked on how busy he is lately. I suggest you take him off because I don't think he has much time to even respond to datetime changes.
You can put me here instead
There was a problem hiding this comment.
I have been very busy, and I do need to find more time for Phobos reviews, but on the whole, I don't want folks changing std.datetime without me at least seeing what they're doing, and I definitely don't want API changes being merged without me looking at them.
There was a problem hiding this comment.
@jmdavis Right, I was just saying you shouldn't be asked to review all changes to std.range.
There was a problem hiding this comment.
Ah, okay. That's fine. I already get e-mails for every PR creation and comment anyway. So, if anything, the problem is not having key things buried rather than not being notified. Fortunately, I recently got it fixed so that my e-mail client is actually able to single out the e-mails that include @jmdavis, since my filter for that wasn't working before. And without a working filter for that sort of thing, I suspect that a number of us risk never seeing a message targeted at us (for anyone who cares and has also had filtering problems, the key thing for my e-mail client was to watch for the e-mail to be cc-ed to mention@noreply.github.com - since for whatever stupid reason, it was failing to filter based on the e-mail's content).
CODEOWNERS
Outdated
| etc/c/* @CyberShadow | ||
| std/algorithm/* @andralex @wilzbach | ||
| #std/array.d | ||
| #std/ascii.d |
There was a problem hiding this comment.
I'll take array.d and ascii.d as well
|
I'd be happy to help out on std.meta, std.typecons, std.bigint, std.traits, std.math and std.mathspecial (in order of preference, if we're trying to limit numbers). I could also do std.range and std.algorithm, but I think that's nearing the limit of how much I should do. |
|
@Biotronic wow - thanks a lot
Nope there's no limit - on the contrary redundancy is good!
So that's what this file is about: building a quicklist of qualified reviewers for Phobos modules - super-powered with GitHub features. |
|
I can help with std.meta/typecons |
JackStouffer
left a comment
There was a problem hiding this comment.
That covers all of the modules which change more than once a release (or once a year). I'd say this is ready to merge.
I would wait for a bit (e.g. two or three days) to give people enough time to respond - especially since we haven't gotten the OK from many people on this file. |
|
Feel free to add my name to std.complex and std.path too. I rewrote both of them some years ago and feel a certain sense of ownership even if I'm not as active as I used to be. |
CODEOWNERS
Outdated
| #std/compiler.d | ||
| #std/complex.d | ||
| std/concurrency.d @MartinNowak | ||
| #std/container/ |
There was a problem hiding this comment.
You can add me here as well. Though, I guess @schveiguy would want to be at the front of the list?
CODEOWNERS
Outdated
| etc/c/* @CyberShadow | ||
| std/* @andralex | ||
| std/algorithm/* @andralex @JackStouffer @wilzbach | ||
| std/array.d @JackStouffer @wilzbach |
There was a problem hiding this comment.
+1 for std/algorithm and std/array
CODEOWNERS
Outdated
| std/digest/* @jpf191 | ||
| #std/encoding.d | ||
| #std/exception.d | ||
| std/experimental/allocator/* @andralex |
There was a problem hiding this comment.
+1 for std/experimental/allocator
CODEOWNERS
Outdated
| std/path.d @CyberShadow | ||
| std/process.d @kyllingstad @schveiguy @CyberShadow | ||
| std/random.d @WebDrake @wilzbach | ||
| std/range/* @andralex @JackStouffer @wilzbach |
CODEOWNERS
Outdated
| std/string.d @JackStouffer | ||
| #std/system.d | ||
| std/traits.d @klickverbot @ZombineDev @Biotronic | ||
| std/typecons.d @Biotronic @MetaLang |
|
Just a small technical point here. IIUC the point of Are we clear about the impact of introducing this? I'm good with the idea of being automatically notified about PRs for |
To quote GitHub:
The approval isn't enabled.
Cool!
FWIW in particular regarding std.random I wouldn't worry about being the bottleneck 😉 |
|
@wilzbach all good, then. I'm glad to see this feature being used so quickly :-) |
|
How did you produce the mapping? I'd be a little more comfortable with the automated recommended reviewer mechanism which seems to work fairly well and takes into account recent edits (and thus trends). At least we should figure out how to regularly update that mapping. |
|
Sounds like a great new feature. Now if we only could subscribe to all new bugzilla issues filed for a certain module...
OK. But there's a typo here, my user handle is And if you add CODEOWNERS for druntime as well I can adopt the fiber code |
I think that's certainly possible. Bugzilla has components, and it's possible to assign owners to components (currently all components have no owner). @braddr Do you think it would be possible to configure Bugzilla so that each Phobos module can be assigned an owner? |
|
how was this list generated? bit-blame?
IMHO two or three days is a way to short timeline. I think two, three weeks is much more realistic. Especially, for an org change this big. I also would like to be an owner of std.string. |
|
@burner There's no org change. In essence, this is an automated pinging system. See @MartinNowak's earlier comments. |
sounds like a org. change to me Anyway, how did you generate the list? |
Manually by looking at the the "Authors" section of the most popular modules (filtering out "dead" people, of course). I did this to get an initial list on which can be improved, which has already heavily happened in this PR ;-)
Oh I am terribly sorry. Fixed. |
IFS=$'\n'
for i in `git shortlog -s $1 | cut -c8-`
do
echo $i
git blame $1 | grep -c $i
donegitstats is properly the better idea then this small script |
Good idea: http://files.wilzbach.me/dlang/gitstats/ Btw I also provide something more rough as a handy API for dlang.org: https://contribs.dlang.io/contributors/file/dlang/phobos?file=std/ascii.d (it's used to display the contributors list at the bottom of each module, here: https://dlang.org/phobos/std_ascii.html) However, as you are interested I quickly hacked together another script: -> results here - the results are quite ugly (didn't have time to remove the coloring) and didn't filter for maintenance commits. |
|
replace "ls std" with "find std -name *.d" that should also make sub directories work |
I used Anyway - before we waste more time here. Can we get sth. actionable from these stats? Many people on the git history have switched their focus to other areas and it wouldn't make sense to ping them on new PRs. |
|
Are there any people in the file who haven't been active lately or haven't replied here? E.g. I haven't seen @don-clugston-sociomantic on GitHub in a while. |
That's why I wanted to wait a bit - though I think only responses from @don-clugston-sociomantic, @schveiguy and @DmitryOlshansky are outstanding. We could remove all (or only Don) for now, squash the commits and go ahead with the initial version? |
|
As I understand it, Don has gotten far busier in recent years (primarily due to spending time with his family, I think), and he's really not very active with D at this point outside of work. So, having him on the list doesn't really make sense even if it would be nice to have him around more. Steven and Dmitry are certainly active here on github, but I don't know how they feel about this. They probably already get e-mails about all of the Phobos PRs. |
Thanks for the info -> removed Don (also squashed the file and sorted the owners within one line alphabetically). |
|
I'm fine with being the "owner" of some modules in Phobos, whatever that means. The only module I truly am responsible for is I'll have to see if it makes any difference in the notifications. I have been swamped lately at work and have almost 7k unread messages in my github email folder. Anything that helps me filter which messages are more likely to concern me would be useful. |
It wouldn't surprise me if it has an extra CC address that you can filter on, since they do that with @ mentions. |
Jonathan and me seem to be the only phobos contributors with a net negative line contribution in that list. |
|
Wrote a small script to analyse git blames @wilzbach. dmd_contributors.txt |
Seb's page there doesn't think that I've committed since 2014, so I suspect that it assumes that someone has only ever have one e-mail address. |
Nice! For the orphaned modules, I have posted the list of the top5 with GH mapping to the Phobos slack channel (ping Martin or me if you need an invite). I can post them here as well, but I wasn't sure whether it's a good idea to ping so many people.
Yep, I think this list will evolve over time anyways. If someone thinks it's a good idea to ping nearly all contributors of the orphaned modules, I am happy to open a new PR ;-) @ future readers: If you have in-depth knowledge of a Phobos module, please don't hesitate to add yourself to the respective list (even if already contains contributors). |
@wilzbach Invite me ;) |
GitHub recently introduced code owners.
Moreover, it's a simple plain-text format:
For more information, the help page goes into more details.
We were actually looking to implementing sth. similar with the Dlang-Bot, so I am very happy that GitHub helped us out here. I have thrown together a basic, initial CODEOWNERS file. It's incomplete and I can only encourage everyone to step up and adopt a module. There are no strings attached, but newcomers immediately get a helpful point of contact.
@andralex,@burner,@CyberShadow,@DmitryOlshansky,@don-clugston-sociomantic,@jmdavis,@jpf91,@klickverbot,@kyllingstad,@MartinNowak,@schveiguy,@WalterBright,@WebDrake,@ZombineDev - are you all ok with being listed here? Would you like to adopt more modules? :)