[GRASS-dev] GRASS Teams on GitHub

Vaclav Petras wenzeslaus at gmail.com
Thu Feb 22 13:20:05 PST 2024


Huidae and Ondrej,

I recently restructured the teams to reflect GitHub workflows and resulting
needs for access (the original team structure was just used from Subversion
access). Another reason was getting a better control over who can change
the code directly (this is connected to the required PR reviews).

We have 11 teams to cover our 4 repos and different levels of access (plus
2+1 legacy teams). Less would not allow us to give people specific
properly-limited rights when needed, i.e., on a "need-to-have" basis. We
have the minimum number of teams to drive write access on repo-to-repo
basis to our 4 repos and make use of the 4 different relevant roles (4
Write teams, one for each repo, 1 Admin and 1 Maintain team for all repos,
1 Triage team, 1 special-purpose Triage team (discussion-moderators), 1
legacy Write (addons-subversion-committers), 1 legacy Triage
(subversion-committers), 1 legacy Read (docker-homebrew-users)). More would
be needed for specific task or organization reasons such as the current
grass-discussion-moderators. Another reason to add more (possibly nested
teams) would be when we would use it for reviews and/or notifications like
"someone from the Windows team needs to review this PR", but it seems we
are heading towards code owners rather than teams there (I don't pretend to
know what are the differences or overlaps here).

If we say we want to cut down the number of teams, we can remove one or
more of the following: 1 or 2 Subversion teams (legacy, but both are in use
now), homebrew-docker team (complete legacy), grass-addons-write (could be
merged with grass-write depending on how much it will be used, it has one
person who is not in grass-write), grass-promo-write (can be merged with
grass-website-write depending on in which way the grass-promo repo will be
used).

For comparison, GDAL has 2 teams for 3 repositories plus a top-level GDAL
team containing the two teams. gdal-admins has 9 members and the
gdal-committers team has 22 members (our grass-subversion-committers legacy
team has 33). gdal-admins has Admin for 2 repos and Write for 1 repo.
gdal-committers Write for 2 repos. The top-level GDAL team has 5 direct
members and 1 repo. The 3 repos are gdal, gdal-data, and shapelib (plus
there is 1 auto-updated repo and 2 legacy repos not managed using access
roles for teams). The two notable differences in the project structure
influencing the number and diversity of repos are that the GDAL website is
generated from the gdal repo and that GDAL drivers are either included in
gdal repo, (inactive) legacy repo or in separate repos (GDAL has 1 Write
team, we 3 extra teams). Additionally, we already had a need for a separate
Triage team and a GitHub Discussion-managing Triage team (2 extra teams).
We are not yet making use of the Maintain team (1 extra team).

More answers inline.

On Thu, 22 Feb 2024 at 14:51, Huidae Cho via grass-dev <
grass-dev at lists.osgeo.org> wrote:

> Ondrej,
>
> I agree with you that there are too many teams for GRASS [1] and they
> should be consolidated (or not, but at least moved) as child teams.
>
> Do we still need these subversion teams?
> * grass-subversion-committers
> <https://github.com/orgs/OSGeo/teams/grass-subversion-committers> GRASS
> GIS Subversion committers
> * grass-addons-subversion-committers
> <https://github.com/orgs/OSGeo/teams/grass-addons-subversion-committers> GRASS
> GIS Addons Subversion committers
>

These are people who had access in the Subversion times. We want these past
Subversion-time contributors to have Triage rights (whatever that means).
The grass-addons repo works differently, so the Subversion-time group has
Write access there, but that can be changed in the future easily as this
group from pre-GitHub times is separate from the active group in
grass-addons-write.


> How is this team different from the above
> grass-addons-subversion-committers?
> * grass-addons-write
> <https://github.com/orgs/OSGeo/teams/grass-addons-write> Maintainers of
> tools in GRASS GIS Addons with write access to the repository
>

This is the active team where new people would be added. The Subversion
team may move from Write to Triage in the future.


> How are these three teams different?
> * grass-admin <https://github.com/orgs/OSGeo/teams/grass-admin> GRASS GIS
> repo administration team
> * grass-maintain <https://github.com/orgs/OSGeo/teams/grass-maintain> GRASS
> GIS repo settings maintenance team
> * grass-write <https://github.com/orgs/OSGeo/teams/grass-write> Maintainers
> of GRASS GIS with write access to the main repository
>

They have what GitHub calls Admin, Maintain, and Write access rights to the
repo. Write is only for code. Maintain is for some of the settings. for
Admin for access and security. See more here:

https://docs.github.com/en/organizations/managing-user-access-to-your-organizations-repositories/managing-repository-roles/repository-roles-for-an-organization


> I think we need this team.
> * grass-docker-homebrew-users
> <https://github.com/orgs/OSGeo/teams/grass-docker-homebrew-users> Users
> for automated dockerhub and homebrew builds
>

I don't know why we have that. It works for notifications, but I haven't
seen that used.


>
> I believe we can consolidate these two teams.
> * grass-promo-write
> <https://github.com/orgs/OSGeo/teams/grass-promo-write> Contributors to
> GRASS GIS promo repo with write access
> * grass-website-write
> <https://github.com/orgs/OSGeo/teams/grass-website-write> Maintainers of
> GRASS GIS website
>

It is about access to potentially destructive actions. We may trust someone
to manage a collection of materials in grass-promo, but we may want higher
scrutiny for the grass-website repo which goes live after PR is merged.


>
> What about these two?
> * grass-discussion-moderators
> <https://github.com/orgs/OSGeo/teams/grass-discussion-moderators> Discussion
> moderators with general Triage access
> * grass-triage <https://github.com/orgs/OSGeo/teams/grass-triage> Contributors
> with PR and issue triage power
>

We created them in the past when the need arose. While they have the same
Triage access (unpaid GitHub does not allow anything finer than that), they
have different purposes. One is for moderating discussions and the other is
for general triage of issues and PRs. Maybe an important note here is that
to change an issue label, you need to have Triage access.


> Best,
> Huidae
>
> [1] https://github.com/orgs/OSGeo/teams
>
> On Thu, Feb 22, 2024 at 1:35 AM Ondřej Pešek via grass-dev <
> grass-dev at lists.osgeo.org> wrote:
>
>> Sweet devs,
>>
>> Looking at the GitHub teams within the OSGeo organisation [1], it is
>> impossible not to notice the fact that the GRASS people are very good
>> in making themselves visible through visual weed infestation. On one
>> side, it is nice to see GRASS all over the dance floor; on the other
>> one, I don't find it particularly polite to storm the org and see that
>> GRASS owns 11 OSGEO's teams out of 24 in the overview (11 out of 26 in
>> total).
>>
>
Is that a practical problem for anyone?


> Wouldn't it be better to follow the example of GDAL instead?
>
>
I did explore the GDAL teams and repos and after a closer look I didn't
find a specific model to follow nor anything particularly applicable to
grass-* repos. Some of the comparison to GRASS situation is above.


> Creating
>> only one master team (grass) and then 11 child teams (grass-write,
>> grass-addons-write, ...)? It would make the org team overview much
>> cleaner.
>
>
Seeing how GDAL handles that, I didn't find team nesting particularly
useful and we already had a couple of top-level teams.


> Also, you could see all grass child teams' members in one
>> place.
>>
>
That is still the only advantage I see, but then again, we already had
several teams and I created the new ones on the same level.


> In the name of New GitHub Order,
>> Ondrej
>>
>> PS: I also believe that we should reduce the number of GRASS teams and
>> consolidate some (grass-addons-subversion-committers ->
>> grass-addons-write) but I guess this is for another and much more
>> contentious discussion.
>>
>
The current number of teams is determined by the number of teams created in
the past, some of them legacy, and by the number of repositories and the
need to control write access to these repositories. I hope the above
hopefully clarifies most of the reasoning behind the current teams.

Best,
Vaclav


> _______________________________________________
>> grass-dev mailing list
>> grass-dev at lists.osgeo.org
>> https://lists.osgeo.org/mailman/listinfo/grass-dev
>>
>
>
> --
> Huidae Cho, Ph.D., GISP, /hidɛ <http://ipa-reader.xyz/?text=hid%C9%9B>
> t͡ɕo/, 조희대, 曺喜大
> GRASS GIS Developer
> https://idea.isnew.info/
> _______________________________________________
> grass-dev mailing list
> grass-dev at lists.osgeo.org
> https://lists.osgeo.org/mailman/listinfo/grass-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/grass-dev/attachments/20240222/b699cf61/attachment.htm>


More information about the grass-dev mailing list