Skip to content
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

Standardize and document steps wrt to GitHub teams and PR review procedure #2073

Open
tlylt opened this issue Jan 15, 2023 · 5 comments
Open
Labels
a-Documentation 📝 s.UnderDiscussion The team will evaluate this issue to decide whether it is worth adding

Comments

@tlylt
Copy link
Contributor

tlylt commented Jan 15, 2023

Please confirm that you have searched existing issues in the repo

Yes, I have searched the existing issues

Any related issues?

No response

What is the area that this feature belongs to?

No response

Is your feature request related to a problem? Please describe.

We probably don't need an extensive/stage-wise PR review pipeline, but I do think that it could be useful if we have up-to-date GitHub teams to allow for requesting mass PR reviews (more than 1 person)
So

  • a cs3281-2023 team containing all latest students in cs3281 (including people of similar capacity)
  • a cs3282-2023 team containing all latest students in cs3282 (including people of similar capacity)
  • an active team (which is what we have in active-devs, though may not be entirely up-to-date)

Describe the solution you'd like

Probably simple documentation on the steps to achieve the above in our project management docs, including a ~ once-a-year maintenance process to review the team settings/make updates every year.

Describe alternatives you've considered

Best if we can automate the above via GitHub Actions or other tools.

Additional context

Suggestions/feedback on the plan.

@tlylt tlylt added a-Documentation 📝 s.UnderDiscussion The team will evaluate this issue to decide whether it is worth adding labels Jan 15, 2023
@kaixin-hc
Copy link
Contributor

I agree this is super useful. Though part of the difficulty is that even the 3282 team members (like myself) do not have access to update github teams with members... Good protection to have that kind of role-based access, but we would also need to amend role permissions since this is not something handled by most.

(And if it's only handled by whoever is the maintainer at the time + @damithc , I am not sure if it should be on the developer docs)

@kaixin-hc
Copy link
Contributor

After looking at the way this is set up, I have the following suggestion for the next batch of mantainers like @lhw-1 -

The current organisation is 6 teams:
Screenshot 2024-05-08 at 12 40 50 PM
Admins have the admin role, contributors have the triage role, and developers have the write role (push access); the others have admin access. CS3282 is an old team (not current). CS32821 is a new team (I made it). Child teams seem to inherit the permissions of the parent but do not have to inherit the members of the parent; the members seem totally independent. I am not sure if pinging the parent group pings the child group but I would think not.

CS3281 students gradually gain more access to the repository as they become more familiar with it, so it is easier to make them part of a team and adjust the permissions for the whole group as the timeline dictates. I would keep this team and something to create fresh every year when there are multiple students to manage in this way.

Admin probably shouldn't be touched aside from adding at least one person who is more active to the group (and perhaps if @damithc wants to remove those who are not active and move them to a different group)

Active devs is useful and I think all 3282 members should be made mantainers of that team so they can make sure it is updated with new active devs. I have made this change to permissions. But since this is a child of contributors, you don't get push access from being in this group, and 3282 students need that.

I suggest that developer is given maintainer access and CS3282 students are placed under developer; contributor can be used for new contributors, driveby contributors, and non-active alumni.

@damithc
Copy link
Contributor

damithc commented May 8, 2024

(and perhaps if @damithc wants to remove those who are not active and move them to a different group)

Removed.

@tlylt
Copy link
Contributor Author

tlylt commented May 18, 2024

@kaixin-hc I have summarized and adjusted the plan according to your comment, perhaps can help verify/let me know what you think?

I plan to remove the dedicated team for cs3281/cs3282 to reduce the number of teams. Though creating a new team for each batch might be easier to upgrade the permissions, I think keeping the number of teams small and remove/add members to the teams with correct permission might be easier to follow. As for pinging purposes, I think we can just use 'active-dev' whenever we need everyone's attention, as long as we keep that team up-to-date

Teams

  • admin: admin access, for members who have admin access to the markbind repo/org -> for Mentor/Team Lead
    • release managers: admin access, for 3282 students who will be making new releases
  • senior developers: push access, renamed from developers -> for cs3282 students (past and present)
  • contributors: triage access, for cs3281 students (past and present) and non-cs3281 active devs
    • active devs: triage access, for everyone active

Workflows:

  • new contributors (non-cs3281): for more than a few contributions -> add to contributors's active dev team
  • new cs3281 students: add to contributor and contributors' active dev team
  • new cs3282 students: add to senior developer team and contributors' active dev team
  • new release manager (from cs3282) -> add to admin's release managers team
  • new team lead -> add to admin team

@kaixin-hc
Copy link
Contributor

This makes sense to me as well!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
a-Documentation 📝 s.UnderDiscussion The team will evaluate this issue to decide whether it is worth adding
Projects
None yet
Development

No branches or pull requests

3 participants