Skip to content

github: add CODEOWNERS file#13289

Merged
benpicco merged 1 commit intoRIOT-OS:masterfrom
benpicco:CODEOWNDERS
Feb 16, 2020
Merged

github: add CODEOWNERS file#13289
benpicco merged 1 commit intoRIOT-OS:masterfrom
benpicco:CODEOWNDERS

Conversation

@benpicco
Copy link
Contributor

@benpicco benpicco commented Feb 4, 2020

Contribution description

Our handling of Pull Requests is not always optimal. Often things are lost or fizzle out, which can be a frustrating experience for contributors.

A lot of this comes down to the simple fact that maintainers only have a limited amount of time in a day, but there are some issues that can be improved by technical means:

  • When creating a PR it is often not obvious who to request a review from.
  • External contributors are not in the loop on future changes of their code.
  • It is often not clear who should feel responsible for a PR

GitHub provides the option to create a CODEOWNERS file.
If someone creates a PR that touches files or directories matching a pattern in that file, a review is automatically requested from the assigned users.

Testing procedure

The file provided is very rudimentary.
Please feel free to push to this branch directly if you want to add your name to modules or drivers that you are involved in.

If we have all directories covered in the future, we can add a check to Travis to ensure no new code gets added that doesn't have someone attached who is responsible for it.
This process is employed by Zephyr and the Linux kernel.

Issues/PRs references

Discussed briefly at a previous Virtual Maintainer Assembly and the FOSEM BoF meeting.

@benpicco benpicco added State: WIP State: The PR is still work-in-progress and its code is not in its final presentable form yet Type: new feature The issue requests / The PR implemements a new feature for RIOT Area: tools Area: Supplementary tools State: demonstrator State: This PR (loosely) demonstrates a concept and is not necessarily meant to be merged. labels Feb 4, 2020
@kaspar030
Copy link
Contributor

Good idea this.

@benpicco benpicco force-pushed the CODEOWNDERS branch 3 times, most recently from a37802b to 5c47de4 Compare February 5, 2020 21:51
@benpicco benpicco removed the State: demonstrator State: This PR (loosely) demonstrates a concept and is not necessarily meant to be merged. label Feb 5, 2020
@benpicco benpicco requested a review from a team February 5, 2020 22:10
CODEOWNERS Outdated
/tests/cpu_efm32_features/ @basilfx

Kconfig @leandrolanzieri
*.md @aabadie @jia200x
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does that mean all *.md files in the repo, no matter in which directory? Isn't this a little bit vague?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That is also the case for sys/net ;-). It's just to point GitHub in the right direction about who to assign. We still can make things more precise later on.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I guess that even if the "wrong" maintainer is occasionally flaged, this will still serve the intended goal: That maintainer is likely aware who would be the right person to dial in and juat do so.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That's for @aabadie and @jia200x to decide (though, I don't doubt that they would happily be triggered for each md file (: )

Copy link
Contributor

@aabadie aabadie Feb 6, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would prefer to limit this rules on md files present in the doc directory. Otherwise, I will be triggered for each changes in application README, even the ones I don't want to review.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does anyone know if only the first match is triggered (so that @aabadie and @jia200x would only get triggered for .md files that don't fall into other categories), or all matches?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

From the docs:

# These owners will be the default owners for everything in
# the repo. Unless a later match takes precedence,
# @global-owner1 and @global-owner2 will be requested for
# review when someone opens a pull request.
*       @global-owner1 @global-owner2

# Order is important; the last matching pattern takes the most
# precedence. When someone opens a pull request that only
# modifies JS files, only @js-owner and not the global
# owner(s) will be requested for a review.
*.js    @js-owner

Order is important; the last matching pattern takes the most precedence.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Order is important; the last matching pattern takes the most precedence.

right, so we should put these to the start of the file.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actually Kconfig should still be at the end, so our KConfig maintainer is always in the loop about changes to KConfig since those require some global coherence.

CODEOWNERS Outdated

Kconfig @leandrolanzieri @jia200x @cgundogan
*.md @aabadie @jia200x
*.murdock @kaspar030
Copy link
Contributor

@kaspar030 kaspar030 Feb 6, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just the one file:

Suggested change
*.murdock @kaspar030
/.murdock @kaspar030

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

or would that be /.murdock?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

.murdock will be any .murdock file anywhere in the repo
/.murdock will only be the one in the root of the repo

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/.murdock will only be the one in the root of the repo

that's the one I mean!

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(updated suggestion)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do you also want .travis.yml?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nope. :) maybe @aabadie wants it!

Copy link
Contributor

@fjmolinas fjmolinas left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some suggestions.

CODEOWNERS Outdated
/sys/riotboot/ @kaspar030
/sys/tsrb/ @kaspar030
/sys/usb/ @bergzand @dylad @aabadie
/sys/xtimer/ @kaspar030 @MichelRottleuthner
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
/sys/xtimer/ @kaspar030 @MichelRottleuthner
/sys/xtimer/ @Hyungsin @MichelRottleuthner

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Hyungsin is not a maintainer (but maybe that should change ?)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does @kaspar030 not maintain xtimer anymore?

@roberthartung
Copy link
Member

I'd be happy to be added to sys/pm_layered/ and maybe even pm.c in the future. (#7595 #7597 #7648 #8207) Maybe along with @kaspar030 ?

Copy link
Contributor

@aabadie aabadie left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added some more propositions for me (and others, sorry @fjmolinas).

Maybe we should also put names for files in makefiles/ ?

/tests/cpu_efm32_features/ @basilfx

# KConfig maintainers will be notified about all KConfig changes
Kconfig @leandrolanzieri @jia200x @cgundogan
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Kconfig @leandrolanzieri @jia200x @cgundogan
Kconfig @leandrolanzieri @jia200x @cgundogan
Makefile.dep @aabadie @fjmolinas
Makefile.features @aabadie @fjmolinas
Makefile.include @aabadie @fjmolinas

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Putting this here means you will be notified for every new module or driver.

@miri64
Copy link
Member

miri64 commented Feb 11, 2020

Should we maybe put a final call for this until Thursday? This gives us the opportunity to point to this at the VMA tomorrow and we likewise can finally merge this soon.

@miri64 miri64 added the CI: skip compile test If set, CI server will run only non-compile jobs, but no compile jobs or their dependent jobs label Feb 11, 2020
Comment on lines +119 to +123
Makefile.dep @aabadie @fjmolinas
Makefile.features @aabadie @fjmolinas
Makefile.include @aabadie @fjmolinas
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm worried of the implication of this, I don't feel confident and wont have the time to be responsible for the build-system. At least I think there should be much more people on this list.

@kaspar030
Copy link
Contributor

Hey, we can fiddle with the details forever. I suggest we figure out a solution to the open questions regarding wildcard matches and get this in, then add / change actual codeowners with followups.

@miri64
Copy link
Member

miri64 commented Feb 12, 2020

Hey, we can fiddle with the details forever. I suggest we figure out a solution to the open questions regarding wildcard matches and get this in, then add / change actual codeowners with followups.

@kaspar030 see #13289 (comment)

@benpicco benpicco removed the State: WIP State: The PR is still work-in-progress and its code is not in its final presentable form yet label Feb 12, 2020
@benpicco
Copy link
Contributor Author

benpicco commented Feb 12, 2020

The next step would be to add Integration to Travis / Murdock, otherwise this list will be outdated in no time.
A warning should issued when a new file is added that doesn't have a CODEOWNER yet.
It shouldn't block the PR yet, at this time there are still many 'unclaimed' directories where one might add a single file.
E.g. if someone adds a file to boards/common/stm32/include/ as part of board support, they shouldn't 'own' that single file but there should rather a general stm32 maintainer for that. They should only be responsible for maintaining their board directory.

@benpicco benpicco added the CI: ready for build If set, CI server will compile all applications for all available boards for the labeled PR label Feb 13, 2020
Copy link
Contributor

@kaspar030 kaspar030 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ACK.

Maybe give this another day?

Copy link
Member

@maribu maribu left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ACK. There are some boards that I could be default reviewer of, but honestly: I think we really should just get this in as it is asap. All the additional nitpicking could be better done in follow up PRs: Those PRs would be small, easy to review, and could be handled in parallel.

@benpicco: Thanks a lot for addressing this. I think especially for new contributors it this will simplify and speed up the review process significantly.

@benpicco benpicco merged commit f437a95 into RIOT-OS:master Feb 16, 2020
@benpicco benpicco deleted the CODEOWNDERS branch February 16, 2020 16:35
@leandrolanzieri leandrolanzieri added this to the Release 2020.04 milestone Feb 20, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Area: tools Area: Supplementary tools CI: ready for build If set, CI server will compile all applications for all available boards for the labeled PR CI: skip compile test If set, CI server will run only non-compile jobs, but no compile jobs or their dependent jobs Type: new feature The issue requests / The PR implemements a new feature for RIOT

Projects

None yet

Development

Successfully merging this pull request may close these issues.