Next: , Previous: , Up: Contributing   [Contents][Index]


22.12 Teams

To organize work on Guix, including but not just development efforts, the project has a set of teams. Each team has its own focus and interests and is the primary contact point for questions and contributions in those areas. A team’s primary mission is to coordinate and review the work of individuals in its scope (see Reviewing the Work of Others); it can make decisions within its scope, in agreement with other teams whenever there is overlap or a close connection, and in accordance with other project rules such as seeking consensus (see Making Decisions).

As an example, the Python team is responsible for core Python packaging matters; it can decide to upgrade core Python packages in a dedicated python-team branch, in collaboration with any team whose scope is directly dependent on Python—e.g., the Science team—and following branching rules (see Managing Patches and Branches). The Documentation team helps review changes to the documentation and can initiate overarching documentation changes. The Translations team organizes translation of Guix and its manual and coordinates efforts in that area. The Core team is responsible for the development of core functionality and interfaces of Guix; because of its central nature, some of its work may require soliciting input from the community at large and seeking consensus before enacting decisions that would affect the entire community.

Teams are defined in the etc/teams.scm file in the Guix repository. The scope of each team is defined, when applicable, as a set of files or as a regular expression matching file names.

Anyone with interest in a team’s domain and willing to contribute to its work can apply to become a member by contacting current members by email; commit access is not a precondition. Membership is formalized by adding the person’s name and email address to etc/teams.scm. Members who have not been participating in the team’s work for one year or more may be removed; they are free to reapply for membership later.

One or more people may propose the creation of a new team by reaching out to the community by email at guix-devel@gnu.org, clarifying the intended scope and purpose. When consensus is reached on the creation of this team, someone with commit access formalizes its creation by adding it and its initial members to etc/teams.scm.

To list existing teams, run the following command from a Guix checkout:

$ ./etc/teams.scm list-teams
id: mentors
name: Mentors
description: A group of mentors who chaperone contributions by newcomers.
members:
+ Charlie Smith <charlie@example.org>
…

You can run the following command to have the Mentors team put in CC of a patch series:

$ git send-email --to=ISSUE_NUMBER@debbugs.gnu.org \
  --header-cmd='etc/teams.scm cc-mentors-header-cmd' *.patch

The appropriate team or teams can also be inferred from the modified files. For instance, if you want to send the two latest commits of the current Git repository to review, you can run:

$ guix shell -D guix
[env]$ git send-email --to=ISSUE_NUMBER@debbugs.gnu.org -2

Next: Making Decisions, Previous: Tracking Bugs and Changes, Up: Contributing   [Contents][Index]