Under Review! Please make your thoughts known by YYYY-MM-DD

This doc is a starting point for conversation. It takes questions that were posted on the 9/14 meeting notes and proposes a solution for each, based on research done on Open Source best practices and years of experience with the Open edX project.

What are maintainers expected to do vis-a-vis notifications on Discourse?

What does monitoring GitHub issues mean in practice?

If your team is overloaded with GH monitoring and no time, consider soliciting another maintainer (or even a triage-r, perhaps on their way to becoming a maintainer) from the community.

Should GitHub notifications be person oriented, team oriented, or at the discretion of the maintainers?

Notifications should be team-oriented. This prevents a person from being a single point of failure, and from being overloaded from being the only person who the community knows to contact. It will be good if our community knows to @ -mention a team that follows a pattern throughout the entire openedx GitHub organization. Teams may consider an “on-call” rotation so there is one specific person at any time responding to notifications.

That said, individual projects may decide that person-oriented notifications are the best way to go. So ultimately this is at the discretion of the maintainers, but should be documented in the README or in Backstage if there is a different way to tag the team.

Is a week for merging or closing a PR reasonable and sustainable?

No, this isn’t reasonable. Many PRs require back and forths that take longer than a week, particularly if the author takes awhile to respond, tests continue to fail, and/or the diff is very large requiring a careful and thoughtful review.

A new PR should be triaged within a week. During triage, a decision must be made as to whether or not the project is interested the PR, and it must be closed within this period if the project does not outright want it. Remember: Learn to say no.

Elaborating on the above: Your job is to look at the PR when it comes in, and make some kind of decision about it. Say what you know as soon as you know it, even if it’s only partial (for example, “This looks like it could be interesting, but we are busy right now. We expect we’ll be able to get back to you about it in two weeks”). Sometimes something that initially looks good may turn out to be something you don’t want; it is OK to initially say “this is interesting to us” just to close the PR later - the PR may end up being wrong for the project, and you may only realize that on deeper review. Remember that partial answers and some amount of uncertainty is always OK. Remember that we are people talking to people, not corporations making promises.

Once triaged, the maintainer team must respond within a week to an author’s updates (new commits/comments/questions that require attention - such as requests for re-review).

Maintainer teams may consider a policy of closing PRs that are stale (ones where maintainers are waiting on authors to provide more input/responses, and the author has not responded) - but the period of “staleness” can not be less than the amount of time the maintainer team is taking to respond to an author’s update. That is to say: if the maintainer team is not responding to a PR’s new commits/comments until 3 weeks have passed, the maintainer team cannot consider a PR to be stale if the author has not responded for less that 3 weeks.

Cadence for merging security updates from the requirements bot?

Merging security updates should happen once per week, and should happen no less than once per sprint.

We strongly recommend that our repos stay in sync by merging weekly. This decreases the overall burden to the maintainers team by having smaller diffs/changesets.

Consider developing community members who could take on triaging and testing these PRs as a first step to becoming a Core Contributor to your repository.

What GitHub permissions should a maintainer have for a repository that they maintain?

This section is pending additional research & consultation with tCRIL’s legal team

Currently, I am not entirely sure - maintainers should either have “Maintain” or “Admin” access to their repository.

See the GitHub repository roles table; the “Maintain” level of access includes all privileges of the “Write” access, plus a few more small things such as configuring how PR merges should behave (ie, “squash and merge” as default), deleting issues, and editing the repo’s description. “Admin” contains more permissions including managing repo secrets.

I suspect that “Admin” is the permission that maintainers need - at least occasionally. My worry is that the “Admin” permission may confer responsibility that legally we cannot confer from tCRIL to individual maintainers. I’ve tested and people with Admin on one or more repos cannot initiate a repo transfer in to the openedx org. However, any Admin would have the ability to transfer their repo out of the org, as well as delete or archive it. Also concerning is Admins to repos can add outside collaborators to their repository, which directly impacts the amount tCRIL pays to GitHub (adding an outside collaborator takes a paid seat).

I vacillate between allowing full Admin access, allowing limited Admin access, or allowing no Admin access. In the case of limited Admin access, a maintainer with “Maintain” access could request Admin access for some period of time in order to perform discrete actions, and then they’d lose it. With no Admin access, any Admin tasks would need to be done by tCRIL on-call. This latter option would potentially overwhelm on-call, although I currently have no idea the volume of Admin tasks performed over repos on a daily basis.