A canonical commit message consists of three parts:
* A short summary line describing the change. This line starts with one or
- more keywords separated by commas followed by a colon and a description of
- the change. This line should be no more than 65 characters long since
- version control systems usually add a prefix that causes line-wrapping for
- longer lines.
+ more keywords (found in the MAINTAINERS file) separated by commas followed
+ by a colon and a description of the change. This line should be no more than
+ 65 characters long since version control systems usually add a prefix that
+ causes line-wrapping for longer lines.
* (Optional, but highly recommended) A detailed description. This describes
what you have done and why. If the change isn't obvious, you might want to
motivate why it is needed. Lines need to be wrapped to 75 characters or
tags to acknowledge reviewers for their work. Gerrit will automatically add
most tags.
-The keyword should be one or more of the following separated by commas:
- * Architecture name in lower case (e.g., arm or x86): Anything that is
- target-architecture specific.
- * base
- * ext
- * stats
- * sim
- * syscall_emul
- * config:
- * mem: Classic memory system. Ruby uses its own keyword.
- * ruby: Ruby memory models.
- * cpu: CPU-model specific (except for kvm)
- * kvm: KVM-specific. Changes to host architecture specific components should
- include an architecture keyword (e.g., arm or x86) as well.
- * gpu-compute
- * energy
- * dev
- * arch: General architecture support (src/arch/)
- * scons: Build-system related. Trivial changes as a side effect of doing
- something unrelated (e.g., adding a source file to a SConscript) don't
- require this.
- * tests
- * style: Changes to the style checkers of style fixes.
- * misc
-
Tags are an optional mechanism to store additional metadata about a patch and
acknowledge people who reported a bug or reviewed that patch. Tags are
generally appended to the end of the commit message in the order they happen.
--- /dev/null
+See CONTRIBUTING.md for details of gem5's contribution process.
+
+This file contains the keywords used in commit messages. Each keyword has one
+or more maintainers. At least one (not all) of these maintainers must review
+the patch before it can be pushed. These people will automatically be emailed
+when you upload the patch to Gerrit (https://gem5-review.googlesource.com).
+These keywords mostly follow the directory structure.
+
+Individuals on the project management committee are maintainers for all of the
+gem5 components (i.e., they can review any patch as the maintainer). These
+individuals are required to review any patches to components without explicit
+maintainers.
+
+PMC Members (general maintainers):
+ Ali Saidi <asaidi@gmail.com>
+ Andreas Hansson <andreas.hansson@arm.com>
+ Andreas Sandberg <andreas.sandberg@arm.com>
+ Tony Gutierrez <anthony.gutierrez@amd.com>
+ Brad Beckmann <brad.beckmann@amd.com>
+ Jason Lowe-Power <jason@lowepower.com>
+ Nathan Binkert <nate@binkert.org>
+ Steve Reinhardt <stever@gmail.com>
+
+arch: General architecture-specific components
+ Gabe Black <gabeblack@google.com>
+arch-alpha:
+arch-arm:
+ Andreas Sandberg <andreas.sandberg@arm.com>
+arch-hsail:
+ Tony Gutierrez <anthony.gutierrez@amd.com>
+arch-mips:
+arch-power:
+arch-riscv:
+ Alec Roelke <ar4jc@virginia.edu>
+arch-sparc:
+ Gabe Black <gabeblack@google.com>
+arch-x86:
+ Gabe Black <gabeblack@google.com>
+
+base:
+
+configs:
+ Jason Lowe-Power <jason@lowepower.com>
+
+cpu: General changes to all CPU models (e.g., BaseCPU)
+cpu-kvm:
+ Andreas Sandberg <andreas.sandberg@arm.com>
+cpu-minor:
+cpu-o3:
+cpu-simple:
+
+dev:
+dev-virtio:
+ Andreas Sandberg <andreas.sandberg@arm.com>
+
+ext: Components external to gem5
+
+gpu-compute:
+ Tony Gutierrez <anthony.gutierrez@amd.com>
+
+mem: General memory system (e.g., XBar, Packet)
+ Nikos Nikoleris <nikos.nikoleris@arm.com>
+mem-cache: Classic caches and coherence
+ Nikos Nikoleris <nikos.nikoleris@arm.com>
+mem-garnet: Garnet subcomponent of Ruby
+ Tushar Krishna <tushar@ece.gatech.edu>
+mem-ruby: Ruby structures and protocols
+ Brad Beckmann <brad.beckmann@amd.com>
+ Jason Lowe-Power <jason@lowepower.com>
+
+misc: Anything outside of the other categories
+
+python: Python SimObject wrapping and infrastructure
+ Andreas Sandberg <andreas.sandberg@arm.com>
+
+scons: Build system
+
+sim: General simulation components
+ Jason Lowe-Power <jason@lowepower.com>
+sim-se: Syscall emulation
+ Brandon Potter <brandon.potter@amd.com>
+sim-power: Power modeling
+ Andreas Sandberg <andreas.sandberg@arm.com>
+
+stats: Updates to statistics for regressions
+
+tests: testing changes (not stats updates for tests. See stats:)
+ Andreas Sandberg <andreas.sandberg@arm.com>
+
+util: