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