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