Creating a github team

63 views
Skip to first unread message

Eric Gourgoulhon

unread,
Feb 7, 2023, 4:28:02 AM2/7/23
to sage-devel
Hi,

Thanks again for all the hard work for the github migration!

I would like to create a team "Manifolds" of https://github.com/sagemath, with sufficient permissions so that I can add users to it. How shall I proceed? Are there any team creation request on the github interface or should some sagemath admin do it?

Maybe a preliminary question: do we want to create github teams to organize Sage development by topics?

Eric. 


David Roe

unread,
Feb 7, 2023, 8:33:04 AM2/7/23
to sage-...@googlegroups.com
On Tue, Feb 7, 2023 at 10:28 AM Eric Gourgoulhon <egourg...@gmail.com> wrote:
Hi,

Thanks again for all the hard work for the github migration!

I would like to create a team "Manifolds" of https://github.com/sagemath, with sufficient permissions so that I can add users to it. How shall I proceed? Are there any team creation request on the github interface or should some sagemath admin do it?

I think people in the Core group can create teams. 
 
Maybe a preliminary question: do we want to create github teams to organize Sage development by topics?

 I think this is a good idea: we can use it to help us organize code reviews, and people can @mention a team if they're looking for advice on a certain topic.  After talking to Julian Rüth some, here's a proposal for how to carry this out (given that Github's code owners functionality requires write permission to the repo, and that only repo owners can add people to teams).

* Julian and I can work on creating a bot for managing component teams.  There will be a top level "Components" team, with a sub-team associated to each of our existing components.
* The bot will be contained in a new repo in the sagemath organization, and will run on a google cloud instance that Julian sets up (we could run it on Github Actions, but that would use up one of our runners that we use for linting and doctesting PRs).  Julian can give others access to the machine, and if Julian disappears for some reason and we want to shut the bot down years from now, an organization admin can just revoke the bot's permissions.
* It will operate by monitoring pull requests:
  1. If someone who is not a member of the Sage organization has a pull request merged, it will invite them to the SageMath organization (with whatever privileges we end up settling on for that status).  They'll accept via normal means (whatever the email tells them to do).
  2. If someone who is not part of any component team has a pull request merged (including the above case), it will reply with a description of the component teams and an offer to join some; anyone can join a team by making a comment addressed to the bot.  It will remember that an offer is made, and not spam people on future PRs if they choose not to join a component team.
  3. When an author's Nth pull request is merged (maybe N=5?) it will offer to add them to the triage team, giving them the power to change labels.
  4. When a component tag is added to a PR (or a new PR created with a component set), if there is no reviewer already requested then the bot will request review from someone on that component team (eventually we may refine this process based on what lines are being modified in the PR).  Details on how a person is chosen are still to be worked out, but we think it's helpful to have a single person responsible rather than a large group.
  5. If a reviewer declines or if a review is not given within a week (this duration can be up for discussion), the bot will request review from another member of that component team.

Thoughts or suggestions?
David


Eric. 


--
You received this message because you are subscribed to the Google Groups "sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email to sage-devel+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/sage-devel/1120db7e-9536-4b06-8d43-b1d1a920de3dn%40googlegroups.com.

Dima Pasechnik

unread,
Feb 7, 2023, 10:17:39 AM2/7/23
to sage-devel


On Tue, 7 Feb 2023, 13:33 David Roe, <roed...@gmail.com> wrote:


On Tue, Feb 7, 2023 at 10:28 AM Eric Gourgoulhon <egourg...@gmail.com> wrote:
Hi,

Thanks again for all the hard work for the github migration!

I would like to create a team "Manifolds" of https://github.com/sagemath, with sufficient permissions so that I can add users to it. How shall I proceed? Are there any team creation request on the github interface or should some sagemath admin do it?

I think people in the Core group can create teams. 
 
Maybe a preliminary question: do we want to create github teams to organize Sage development by topics?

 I think this is a good idea: we can use it to help us organize code reviews, and people can @mention a team if they're looking for advice on a certain topic.  After talking to Julian Rüth some, here's a proposal for how to carry this out (given that Github's code owners functionality requires write permission to the repo, and that only repo owners can add people to teams).

* Julian and I can work on creating a bot for managing component teams.  There will be a top level "Components" team, with a sub-team associated to each of our existing components.
* The bot will be contained in a new repo in the sagemath organization, and will run on a google cloud instance that Julian sets up (we could run it on Github Actions, but that would use up one of our runners that we use for linting and doctesting PRs). 

we don't have our Actions runners, as far as I know.
Thus I don't understand "use up" here.


But it would be good to set up dedicated Actions runners, ones we don't have to share.


Julian can give others access to the machine, and if Julian disappears for some reason and we want to shut the bot down years from now, an organization admin can just revoke the bot's permissions.
* It will operate by monitoring pull requests:
  1. If someone who is not a member of the Sage organization has a pull request merged, it will invite them to the SageMath organization (with whatever privileges we end up settling on for that status).  They'll accept via normal means (whatever the email tells them to do).
  2. If someone who is not part of any component team has a pull request merged (including the above case), it will reply with a description of the component teams and an offer to join some; anyone can join a team by making a comment addressed to the bot.  It will remember that an offer is made, and not spam people on future PRs if they choose not to join a component team.
  3. When an author's Nth pull request is merged (maybe N=5?) it will offer to add them to the triage team, giving them the power to change labels.
  4. When a component tag is added to a PR (or a new PR created with a component set), if there is no reviewer already requested then the bot will request review from someone on that component team (eventually we may refine this process based on what lines are being modified in the PR).  Details on how a person is chosen are still to be worked out, but we think it's helpful to have a single person responsible rather than a large group.
  5. If a reviewer declines or if a review is not given within a week (this duration can be up for discussion), the bot will request review from another member of that component team.

Thoughts or suggestions?
David


Eric. 


--
You received this message because you are subscribed to the Google Groups "sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email to sage-devel+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/sage-devel/1120db7e-9536-4b06-8d43-b1d1a920de3dn%40googlegroups.com.

--
You received this message because you are subscribed to the Google Groups "sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email to sage-devel+...@googlegroups.com.

Eric Gourgoulhon

unread,
Feb 7, 2023, 11:29:03 AM2/7/23
to sage-devel
Thanks for your reply. 

Le mardi 7 février 2023 à 14:33:04 UTC+1, David Roe a écrit :
  4. When a component tag is added to a PR (or a new PR created with a component set), if there is no reviewer already requested then the bot will request review from someone on that component team (eventually we may refine this process based on what lines are being modified in the PR).  Details on how a person is chosen are still to be worked out, but we think it's helpful to have a single person responsible rather than a large group.
  5. If a reviewer declines or if a review is not given within a week (this duration can be up for discussion), the bot will request review from another member of that component team.

I would rather favor a mode in which the bot sends a notification to the whole team at each tagged PR, instead of picking members one per one, so that any team member that is interested by the PR, feels competent and has the time to do the review can do it. 

Eric.

John Cremona

unread,
Feb 7, 2023, 11:39:29 AM2/7/23
to sage-...@googlegroups.com
Re David's #1:   Could we only allow PRs to be made by members?  (Or is that against the spirit of open source?)  Then, a new contributor would first ask to become a member, and then would be able to make a PR.

John

--
You received this message because you are subscribed to the Google Groups "sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email to sage-devel+...@googlegroups.com.

Dima Pasechnik

unread,
Feb 7, 2023, 11:42:34 AM2/7/23
to sage-devel


On Tue, 7 Feb 2023, 16:39 John Cremona, <john.c...@gmail.com> wrote:
Re David's #1:   Could we only allow PRs to be made by members?  (Or is that against the spirit of open source?)  Then, a new contributor would first ask to become a member, and then would be able to make a PR.

on trac, everyone with a GitHub account was able to open a ticket and propose a branch.

I don't see a reason to deviate from this openness.


John

On Tue, 7 Feb 2023 at 16:29, Eric Gourgoulhon <egourg...@gmail.com> wrote:
Thanks for your reply. 

Le mardi 7 février 2023 à 14:33:04 UTC+1, David Roe a écrit :
  4. When a component tag is added to a PR (or a new PR created with a component set), if there is no reviewer already requested then the bot will request review from someone on that component team (eventually we may refine this process based on what lines are being modified in the PR).  Details on how a person is chosen are still to be worked out, but we think it's helpful to have a single person responsible rather than a large group.
  5. If a reviewer declines or if a review is not given within a week (this duration can be up for discussion), the bot will request review from another member of that component team.

I would rather favor a mode in which the bot sends a notification to the whole team at each tagged PR, instead of picking members one per one, so that any team member that is interested by the PR, feels competent and has the time to do the review can do it. 

Eric.

--
You received this message because you are subscribed to the Google Groups "sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email to sage-devel+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/sage-devel/3de741ca-1c8f-461c-9df8-0eaf95ca8444n%40googlegroups.com.

--
You received this message because you are subscribed to the Google Groups "sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email to sage-devel+...@googlegroups.com.

David Roe

unread,
Feb 7, 2023, 11:49:12 AM2/7/23
to sage-...@googlegroups.com
In response to Eric's suggestion of having the whole team set as the reviewer, my main concern is that having a diffuse responsibility will make it more likely for tickets to slip through the cracks. If you want to review a ticket and someone else is assigned by the bot, I think taking over as reviewer would be totally acceptable.

Sending notifications to the corresponding team when a component label is added is probably another thing that the bot could do (probably just by adding an @team comment to the PR).

I think the standard in the open source world is to allow PRs from outsiders, partly as a way to draw people in.  John, what's your motivation for restricting to only members?
David

John Cremona

unread,
Feb 7, 2023, 11:59:42 AM2/7/23
to sage-...@googlegroups.com
On Tue, 7 Feb 2023 at 16:49, David Roe <roed...@gmail.com> wrote:
In response to Eric's suggestion of having the whole team set as the reviewer, my main concern is that having a diffuse responsibility will make it more likely for tickets to slip through the cracks. If you want to review a ticket and someone else is assigned by the bot, I think taking over as reviewer would be totally acceptable.

Sending notifications to the corresponding team when a component label is added is probably another thing that the bot could do (probably just by adding an @team comment to the PR).

I think the standard in the open source world is to allow PRs from outsiders, partly as a way to draw people in.  John, what's your motivation for restricting to only members?

OK, forget that suggestion!
 
David

On Tue, Feb 7, 2023 at 5:39 PM John Cremona <john.c...@gmail.com> wrote:
Re David's #1:   Could we only allow PRs to be made by members?  (Or is that against the spirit of open source?)  Then, a new contributor would first ask to become a member, and then would be able to make a PR.

John

On Tue, 7 Feb 2023 at 16:29, Eric Gourgoulhon <egourg...@gmail.com> wrote:
Thanks for your reply. 

Le mardi 7 février 2023 à 14:33:04 UTC+1, David Roe a écrit :
  4. When a component tag is added to a PR (or a new PR created with a component set), if there is no reviewer already requested then the bot will request review from someone on that component team (eventually we may refine this process based on what lines are being modified in the PR).  Details on how a person is chosen are still to be worked out, but we think it's helpful to have a single person responsible rather than a large group.
  5. If a reviewer declines or if a review is not given within a week (this duration can be up for discussion), the bot will request review from another member of that component team.

I would rather favor a mode in which the bot sends a notification to the whole team at each tagged PR, instead of picking members one per one, so that any team member that is interested by the PR, feels competent and has the time to do the review can do it. 

Eric.

--
You received this message because you are subscribed to the Google Groups "sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email to sage-devel+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/sage-devel/3de741ca-1c8f-461c-9df8-0eaf95ca8444n%40googlegroups.com.

--
You received this message because you are subscribed to the Google Groups "sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email to sage-devel+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/sage-devel/CAD0p0K5%3D1qjnk%3DJM4auH6rmD9ZH1srQQMavGcMwztgMGYHSv%3DA%40mail.gmail.com.

--
You received this message because you are subscribed to the Google Groups "sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email to sage-devel+...@googlegroups.com.

Matthias Koeppe

unread,
Feb 7, 2023, 3:55:39 PM2/7/23
to sage-devel
On Tuesday, February 7, 2023 at 5:33:04 AM UTC-8 David Roe wrote:
On Tue, Feb 7, 2023 at 10:28 AM Eric Gourgoulhon <egourg...@gmail.com> wrote:
* Julian and I can work on creating a bot for managing component teams.  There will be a top level "Components" team, with a sub-team associated to each of our existing components.
* The bot will be contained in a new repo in the sagemath organization, and will run on a google cloud instance that Julian sets up (we could run it on Github Actions, but that would use up one of our runners that we use for linting and doctesting PRs).  Julian can give others access to the machine, and if Julian disappears for some reason and we want to shut the bot down years from now, an organization admin can just revoke the bot's permissions.

I would very strongly suggest to do this with GitHub actions instead of depending on new ad-hoc infrastructure that needs to be maintained by developers.

Dima Pasechnik

unread,
Feb 7, 2023, 3:58:04 PM2/7/23
to sage-devel
indeed - I think it was in part based on a misconception that Actions need a dedicated runner.

--
You received this message because you are subscribed to the Google Groups "sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email to sage-devel+...@googlegroups.com.

Matthias Koeppe

unread,
Feb 7, 2023, 4:00:14 PM2/7/23
to sage-devel
I think currently the only time when there is a shortage of GH Actions runners is after pushing a release tag because then we run the full portability suite, which spins up dozens of builds.

julian...@fsfe.org

unread,
Feb 7, 2023, 4:58:43 PM2/7/23
to sage-devel
Sure, we can try with actions first. It does not change the implementation of the bot much, just makes persisting the bot's state a bit more complicated. (But that problem has been solved before by others.)
Reply all
Reply to author
Forward
0 new messages