Skip to content

Commit 19e13b0

Browse files
author
Darrick J. Wong
committed
docs: add maintainer entry profile for XFS
Create a new document to list what I think are (within the scope of XFS) our shared goals and community roles. Since I will be stepping down shortly, I feel it's important to write down somewhere all the hats that I have been wearing for the past six years. Also, document important extra details about how to contribute to XFS. Cc: [email protected] Signed-off-by: Darrick J. Wong <[email protected]> Reviewed-by: Chandan Babu R <[email protected]>
1 parent 52a93d3 commit 19e13b0

File tree

4 files changed

+197
-0
lines changed

4 files changed

+197
-0
lines changed

Documentation/filesystems/index.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,7 @@ Documentation for filesystem implementations.
122122
virtiofs
123123
vfat
124124
xfs-delayed-logging-design
125+
xfs-maintainer-entry-profile
125126
xfs-self-describing-metadata
126127
xfs-online-fsck-design
127128
zonefs
Lines changed: 194 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,194 @@
1+
XFS Maintainer Entry Profile
2+
============================
3+
4+
Overview
5+
--------
6+
XFS is a well known high-performance filesystem in the Linux kernel.
7+
The aim of this project is to provide and maintain a robust and
8+
performant filesystem.
9+
10+
Patches are generally merged to the for-next branch of the appropriate
11+
git repository.
12+
After a testing period, the for-next branch is merged to the master
13+
branch.
14+
15+
Kernel code are merged to the xfs-linux tree[0].
16+
Userspace code are merged to the xfsprogs tree[1].
17+
Test cases are merged to the xfstests tree[2].
18+
Ondisk format documentation are merged to the xfs-documentation tree[3].
19+
20+
All patchsets involving XFS *must* be cc'd in their entirety to the mailing
21+
22+
23+
Roles
24+
-----
25+
There are eight key roles in the XFS project.
26+
A person can take on multiple roles, and a role can be filled by
27+
multiple people.
28+
Anyone taking on a role is advised to check in with themselves and
29+
others on a regular basis about burnout.
30+
31+
- **Outside Contributor**: Anyone who sends a patch but is not involved
32+
in the XFS project on a regular basis.
33+
These folks are usually people who work on other filesystems or
34+
elsewhere in the kernel community.
35+
36+
- **Developer**: Someone who is familiar with the XFS codebase enough to
37+
write new code, documentation, and tests.
38+
39+
Developers can often be found in the IRC channel mentioned by the ``C:``
40+
entry in the kernel MAINTAINERS file.
41+
42+
- **Senior Developer**: A developer who is very familiar with at least
43+
some part of the XFS codebase and/or other subsystems in the kernel.
44+
These people collectively decide the long term goals of the project
45+
and nudge the community in that direction.
46+
They should help prioritize development and review work for each release
47+
cycle.
48+
49+
Senior developers tend to be more active participants in the IRC channel.
50+
51+
- **Reviewer**: Someone (most likely also a developer) who reads code
52+
submissions to decide:
53+
54+
0. Is the idea behind the contribution sound?
55+
1. Does the idea fit the goals of the project?
56+
2. Is the contribution designed correctly?
57+
3. Is the contribution polished?
58+
4. Can the contribution be tested effectively?
59+
60+
Reviewers should identify themselves with an ``R:`` entry in the kernel
61+
and fstests MAINTAINERS files.
62+
63+
- **Testing Lead**: This person is responsible for setting the test
64+
coverage goals of the project, negotiating with developers to decide
65+
on new tests for new features, and making sure that developers and
66+
release managers execute on the testing.
67+
68+
The testing lead should identify themselves with an ``M:`` entry in
69+
the XFS section of the fstests MAINTAINERS file.
70+
71+
- **Bug Triager**: Someone who examines incoming bug reports in just
72+
enough detail to identify the person to whom the report should be
73+
forwarded.
74+
75+
The bug triagers should identify themselves with a ``B:`` entry in
76+
the kernel MAINTAINERS file.
77+
78+
- **Release Manager**: This person merges reviewed patchsets into an
79+
integration branch, tests the result locally, pushes the branch to a
80+
public git repository, and sends pull requests further upstream.
81+
The release manager is not expected to work on new feature patchsets.
82+
If a developer and a reviewer fail to reach a resolution on some point,
83+
the release manager must have the ability to intervene to try to drive a
84+
resolution.
85+
86+
The release manager should identify themselves with an ``M:`` entry in
87+
the kernel MAINTAINERS file.
88+
89+
- **Community Manager**: This person calls and moderates meetings of as many
90+
XFS participants as they can get when mailing list discussions prove
91+
insufficient for collective decisionmaking.
92+
They may also serve as liaison between managers of the organizations
93+
sponsoring work on any part of XFS.
94+
95+
- **LTS Maintainer**: Someone who backports and tests bug fixes from
96+
uptream to the LTS kernels.
97+
There tend to be six separate LTS trees at any given time.
98+
99+
The maintainer for a given LTS release should identify themselves with an
100+
``M:`` entry in the MAINTAINERS file for that LTS tree.
101+
Unmaintained LTS kernels should be marked with status ``S: Orphan`` in that
102+
same file.
103+
104+
Submission Checklist Addendum
105+
-----------------------------
106+
Please follow these additional rules when submitting to XFS:
107+
108+
- Patches affecting only the filesystem itself should be based against
109+
the latest -rc or the for-next branch.
110+
These patches will be merged back to the for-next branch.
111+
112+
- Authors of patches touching other subsystems need to coordinate with
113+
the maintainers of XFS and the relevant subsystems to decide how to
114+
proceed with a merge.
115+
116+
- Any patchset changing XFS should be cc'd in its entirety to linux-xfs.
117+
Do not send partial patchsets; that makes analysis of the broader
118+
context of the changes unnecessarily difficult.
119+
120+
- Anyone making kernel changes that have corresponding changes to the
121+
userspace utilities should send the userspace changes as separate
122+
patchsets immediately after the kernel patchsets.
123+
124+
- Authors of bug fix patches are expected to use fstests[2] to perform
125+
an A/B test of the patch to determine that there are no regressions.
126+
When possible, a new regression test case should be written for
127+
fstests.
128+
129+
- Authors of new feature patchsets must ensure that fstests will have
130+
appropriate functional and input corner-case test cases for the new
131+
feature.
132+
133+
- When implementing a new feature, it is strongly suggested that the
134+
developers write a design document to answer the following questions:
135+
136+
* **What** problem is this trying to solve?
137+
138+
* **Who** will benefit from this solution, and **where** will they
139+
access it?
140+
141+
* **How** will this new feature work? This should touch on major data
142+
structures and algorithms supporting the solution at a higher level
143+
than code comments.
144+
145+
* **What** userspace interfaces are necessary to build off of the new
146+
features?
147+
148+
* **How** will this work be tested to ensure that it solves the
149+
problems laid out in the design document without causing new
150+
problems?
151+
152+
The design document should be committed in the kernel documentation
153+
directory.
154+
It may be omitted if the feature is already well known to the
155+
community.
156+
157+
- Patchsets for the new tests should be submitted as separate patchsets
158+
immediately after the kernel and userspace code patchsets.
159+
160+
- Changes to the on-disk format of XFS must be described in the ondisk
161+
format document[3] and submitted as a patchset after the fstests
162+
patchsets.
163+
164+
- Patchsets implementing bug fixes and further code cleanups should put
165+
the bug fixes at the beginning of the series to ease backporting.
166+
167+
Key Release Cycle Dates
168+
-----------------------
169+
Bug fixes may be sent at any time, though the release manager may decide to
170+
defer a patch when the next merge window is close.
171+
172+
Code submissions targeting the next merge window should be sent between
173+
-rc1 and -rc6.
174+
This gives the community time to review the changes, to suggest other changes,
175+
and for the author to retest those changes.
176+
177+
Code submissions also requiring changes to fs/iomap and targeting the
178+
next merge window should be sent between -rc1 and -rc4.
179+
This allows the broader kernel community adequate time to test the
180+
infrastructure changes.
181+
182+
Review Cadence
183+
--------------
184+
In general, please wait at least one week before pinging for feedback.
185+
To find reviewers, either consult the MAINTAINERS file, or ask
186+
developers that have Reviewed-by tags for XFS changes to take a look and
187+
offer their opinion.
188+
189+
References
190+
----------
191+
| [0] https://git.kernel.org/pub/scm/fs/xfs/xfs-linux.git/
192+
| [1] https://git.kernel.org/pub/scm/fs/xfs/xfsprogs-dev.git/
193+
| [2] https://git.kernel.org/pub/scm/fs/xfs/xfstests-dev.git/
194+
| [3] https://git.kernel.org/pub/scm/fs/xfs/xfs-documentation.git/

Documentation/maintainer/maintainer-entry-profile.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,3 +105,4 @@ to do something different in the near future.
105105
../driver-api/media/maintainer-entry-profile
106106
../driver-api/vfio-pci-device-specific-driver-acceptance
107107
../nvme/feature-and-quirk-policy
108+
../filesystems/xfs-maintainer-entry-profile

MAINTAINERS

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23335,6 +23335,7 @@ S: Supported
2333523335
W: http://xfs.org/
2333623336
C: irc://irc.oftc.net/xfs
2333723337
T: git git://git.kernel.org/pub/scm/fs/xfs/xfs-linux.git
23338+
P: Documentation/filesystems/xfs-maintainer-entry-profile.rst
2333823339
F: Documentation/ABI/testing/sysfs-fs-xfs
2333923340
F: Documentation/admin-guide/xfs.rst
2334023341
F: Documentation/filesystems/xfs-delayed-logging-design.rst

0 commit comments

Comments
 (0)