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: corbet@lwn.net Signed-off-by: Darrick J. Wong <djwong@kernel.org> Reviewed-by: Chandan Babu R <chandan.babu@oracle.com>
This commit is contained in:
parent
52a93d39b1
commit
19e13b0a6d
|
@ -122,6 +122,7 @@ Documentation for filesystem implementations.
|
|||
virtiofs
|
||||
vfat
|
||||
xfs-delayed-logging-design
|
||||
xfs-maintainer-entry-profile
|
||||
xfs-self-describing-metadata
|
||||
xfs-online-fsck-design
|
||||
zonefs
|
||||
|
|
|
@ -0,0 +1,194 @@
|
|||
XFS Maintainer Entry Profile
|
||||
============================
|
||||
|
||||
Overview
|
||||
--------
|
||||
XFS is a well known high-performance filesystem in the Linux kernel.
|
||||
The aim of this project is to provide and maintain a robust and
|
||||
performant filesystem.
|
||||
|
||||
Patches are generally merged to the for-next branch of the appropriate
|
||||
git repository.
|
||||
After a testing period, the for-next branch is merged to the master
|
||||
branch.
|
||||
|
||||
Kernel code are merged to the xfs-linux tree[0].
|
||||
Userspace code are merged to the xfsprogs tree[1].
|
||||
Test cases are merged to the xfstests tree[2].
|
||||
Ondisk format documentation are merged to the xfs-documentation tree[3].
|
||||
|
||||
All patchsets involving XFS *must* be cc'd in their entirety to the mailing
|
||||
list linux-xfs@vger.kernel.org.
|
||||
|
||||
Roles
|
||||
-----
|
||||
There are eight key roles in the XFS project.
|
||||
A person can take on multiple roles, and a role can be filled by
|
||||
multiple people.
|
||||
Anyone taking on a role is advised to check in with themselves and
|
||||
others on a regular basis about burnout.
|
||||
|
||||
- **Outside Contributor**: Anyone who sends a patch but is not involved
|
||||
in the XFS project on a regular basis.
|
||||
These folks are usually people who work on other filesystems or
|
||||
elsewhere in the kernel community.
|
||||
|
||||
- **Developer**: Someone who is familiar with the XFS codebase enough to
|
||||
write new code, documentation, and tests.
|
||||
|
||||
Developers can often be found in the IRC channel mentioned by the ``C:``
|
||||
entry in the kernel MAINTAINERS file.
|
||||
|
||||
- **Senior Developer**: A developer who is very familiar with at least
|
||||
some part of the XFS codebase and/or other subsystems in the kernel.
|
||||
These people collectively decide the long term goals of the project
|
||||
and nudge the community in that direction.
|
||||
They should help prioritize development and review work for each release
|
||||
cycle.
|
||||
|
||||
Senior developers tend to be more active participants in the IRC channel.
|
||||
|
||||
- **Reviewer**: Someone (most likely also a developer) who reads code
|
||||
submissions to decide:
|
||||
|
||||
0. Is the idea behind the contribution sound?
|
||||
1. Does the idea fit the goals of the project?
|
||||
2. Is the contribution designed correctly?
|
||||
3. Is the contribution polished?
|
||||
4. Can the contribution be tested effectively?
|
||||
|
||||
Reviewers should identify themselves with an ``R:`` entry in the kernel
|
||||
and fstests MAINTAINERS files.
|
||||
|
||||
- **Testing Lead**: This person is responsible for setting the test
|
||||
coverage goals of the project, negotiating with developers to decide
|
||||
on new tests for new features, and making sure that developers and
|
||||
release managers execute on the testing.
|
||||
|
||||
The testing lead should identify themselves with an ``M:`` entry in
|
||||
the XFS section of the fstests MAINTAINERS file.
|
||||
|
||||
- **Bug Triager**: Someone who examines incoming bug reports in just
|
||||
enough detail to identify the person to whom the report should be
|
||||
forwarded.
|
||||
|
||||
The bug triagers should identify themselves with a ``B:`` entry in
|
||||
the kernel MAINTAINERS file.
|
||||
|
||||
- **Release Manager**: This person merges reviewed patchsets into an
|
||||
integration branch, tests the result locally, pushes the branch to a
|
||||
public git repository, and sends pull requests further upstream.
|
||||
The release manager is not expected to work on new feature patchsets.
|
||||
If a developer and a reviewer fail to reach a resolution on some point,
|
||||
the release manager must have the ability to intervene to try to drive a
|
||||
resolution.
|
||||
|
||||
The release manager should identify themselves with an ``M:`` entry in
|
||||
the kernel MAINTAINERS file.
|
||||
|
||||
- **Community Manager**: This person calls and moderates meetings of as many
|
||||
XFS participants as they can get when mailing list discussions prove
|
||||
insufficient for collective decisionmaking.
|
||||
They may also serve as liaison between managers of the organizations
|
||||
sponsoring work on any part of XFS.
|
||||
|
||||
- **LTS Maintainer**: Someone who backports and tests bug fixes from
|
||||
uptream to the LTS kernels.
|
||||
There tend to be six separate LTS trees at any given time.
|
||||
|
||||
The maintainer for a given LTS release should identify themselves with an
|
||||
``M:`` entry in the MAINTAINERS file for that LTS tree.
|
||||
Unmaintained LTS kernels should be marked with status ``S: Orphan`` in that
|
||||
same file.
|
||||
|
||||
Submission Checklist Addendum
|
||||
-----------------------------
|
||||
Please follow these additional rules when submitting to XFS:
|
||||
|
||||
- Patches affecting only the filesystem itself should be based against
|
||||
the latest -rc or the for-next branch.
|
||||
These patches will be merged back to the for-next branch.
|
||||
|
||||
- Authors of patches touching other subsystems need to coordinate with
|
||||
the maintainers of XFS and the relevant subsystems to decide how to
|
||||
proceed with a merge.
|
||||
|
||||
- Any patchset changing XFS should be cc'd in its entirety to linux-xfs.
|
||||
Do not send partial patchsets; that makes analysis of the broader
|
||||
context of the changes unnecessarily difficult.
|
||||
|
||||
- Anyone making kernel changes that have corresponding changes to the
|
||||
userspace utilities should send the userspace changes as separate
|
||||
patchsets immediately after the kernel patchsets.
|
||||
|
||||
- Authors of bug fix patches are expected to use fstests[2] to perform
|
||||
an A/B test of the patch to determine that there are no regressions.
|
||||
When possible, a new regression test case should be written for
|
||||
fstests.
|
||||
|
||||
- Authors of new feature patchsets must ensure that fstests will have
|
||||
appropriate functional and input corner-case test cases for the new
|
||||
feature.
|
||||
|
||||
- When implementing a new feature, it is strongly suggested that the
|
||||
developers write a design document to answer the following questions:
|
||||
|
||||
* **What** problem is this trying to solve?
|
||||
|
||||
* **Who** will benefit from this solution, and **where** will they
|
||||
access it?
|
||||
|
||||
* **How** will this new feature work? This should touch on major data
|
||||
structures and algorithms supporting the solution at a higher level
|
||||
than code comments.
|
||||
|
||||
* **What** userspace interfaces are necessary to build off of the new
|
||||
features?
|
||||
|
||||
* **How** will this work be tested to ensure that it solves the
|
||||
problems laid out in the design document without causing new
|
||||
problems?
|
||||
|
||||
The design document should be committed in the kernel documentation
|
||||
directory.
|
||||
It may be omitted if the feature is already well known to the
|
||||
community.
|
||||
|
||||
- Patchsets for the new tests should be submitted as separate patchsets
|
||||
immediately after the kernel and userspace code patchsets.
|
||||
|
||||
- Changes to the on-disk format of XFS must be described in the ondisk
|
||||
format document[3] and submitted as a patchset after the fstests
|
||||
patchsets.
|
||||
|
||||
- Patchsets implementing bug fixes and further code cleanups should put
|
||||
the bug fixes at the beginning of the series to ease backporting.
|
||||
|
||||
Key Release Cycle Dates
|
||||
-----------------------
|
||||
Bug fixes may be sent at any time, though the release manager may decide to
|
||||
defer a patch when the next merge window is close.
|
||||
|
||||
Code submissions targeting the next merge window should be sent between
|
||||
-rc1 and -rc6.
|
||||
This gives the community time to review the changes, to suggest other changes,
|
||||
and for the author to retest those changes.
|
||||
|
||||
Code submissions also requiring changes to fs/iomap and targeting the
|
||||
next merge window should be sent between -rc1 and -rc4.
|
||||
This allows the broader kernel community adequate time to test the
|
||||
infrastructure changes.
|
||||
|
||||
Review Cadence
|
||||
--------------
|
||||
In general, please wait at least one week before pinging for feedback.
|
||||
To find reviewers, either consult the MAINTAINERS file, or ask
|
||||
developers that have Reviewed-by tags for XFS changes to take a look and
|
||||
offer their opinion.
|
||||
|
||||
References
|
||||
----------
|
||||
| [0] https://git.kernel.org/pub/scm/fs/xfs/xfs-linux.git/
|
||||
| [1] https://git.kernel.org/pub/scm/fs/xfs/xfsprogs-dev.git/
|
||||
| [2] https://git.kernel.org/pub/scm/fs/xfs/xfstests-dev.git/
|
||||
| [3] https://git.kernel.org/pub/scm/fs/xfs/xfs-documentation.git/
|
|
@ -105,3 +105,4 @@ to do something different in the near future.
|
|||
../driver-api/media/maintainer-entry-profile
|
||||
../driver-api/vfio-pci-device-specific-driver-acceptance
|
||||
../nvme/feature-and-quirk-policy
|
||||
../filesystems/xfs-maintainer-entry-profile
|
||||
|
|
|
@ -23335,6 +23335,7 @@ S: Supported
|
|||
W: http://xfs.org/
|
||||
C: irc://irc.oftc.net/xfs
|
||||
T: git git://git.kernel.org/pub/scm/fs/xfs/xfs-linux.git
|
||||
P: Documentation/filesystems/xfs-maintainer-entry-profile.rst
|
||||
F: Documentation/ABI/testing/sysfs-fs-xfs
|
||||
F: Documentation/admin-guide/xfs.rst
|
||||
F: Documentation/filesystems/xfs-delayed-logging-design.rst
|
||||
|
|
Loading…
Reference in New Issue