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