Next: Making Decisions, Previous: Tracking Bugs and Changes, Up: Contributing [Contents][Index]
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]