Skip to content

Commit d64d62c

Browse files
committedMay 26, 2023
btrfs-progs: docs: fix links and update Developer's FAQ
Issue: #628 Signed-off-by: David Sterba <dsterba@suse.com>
1 parent 3acd745 commit d64d62c

File tree

1 file changed

+33
-35
lines changed

1 file changed

+33
-35
lines changed
 

‎Documentation/dev/Developer-s-FAQ.rst

+33-35
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,7 @@ Let's be more positive, you manage to attract the attention of some developer
163163
and he says, he does not like the approach of the patch(es). Better than
164164
nothing, isn't it? Depending on the feedback, try to understand the objections
165165
and try to find a solution or insist on your approach but possibly back it by
166-
good arguments (performance gain, expected usecase) or a better explanation
166+
good arguments (performance gain, expected use case) or a better explanation
167167
*why* the change is needed.
168168

169169
Repeated submissions
@@ -175,7 +175,7 @@ why they're wrong or not needed. (You can try to pinkie-swear to implement them
175175
later, but do not try this too often.)
176176

177177
For the next iteration, add a short description of the changes made, under the
178-
first **---** (tripple dash) marker in the patch. For example (see also Example
178+
first **---** (triple dash) marker in the patch. For example (see also Example
179179
3):
180180

181181
.. code-block::
@@ -195,7 +195,7 @@ can send an early version, use a *[RFC]* string somewhere in the subject. This
195195
means *request for comments*. Be prepared to get comments.
196196

197197
Please describe the level of completeness, e.g. what tests it does or does not
198-
pass or what type of usecases is not yet implemented. The purpose is to get
198+
pass or what type of use cases is not yet implemented. The purpose is to get
199199
feedback from other developers about the direction or implementation approach.
200200
This may save you hours of coding.
201201

@@ -222,7 +222,7 @@ moving development base.
222222
**Do:** make sure that each patch compiles and does not deliberately introduce
223223
a bug, this is a good practice that makes *bisecting* go smooth
224224

225-
**Do:** send the cover letter (ie. the non-patch mail) with brief description
225+
**Do:** send the cover letter (i.e. the non-patch mail) with brief description
226226
of the series, this is a place where feedback to the whole patchset will be
227227
sent rather than comments to the individual patches. To generate the series
228228
with cover letter use *git format-patch --cover-letter --thread*.
@@ -233,7 +233,7 @@ Good practices, contribution hints
233233
- if you feel that you understand some area of code enough to stick your
234234
*Reviewed-by* to submitted patches, please do. Even for small patches.
235235
- don't hesitate to be vocal if you see that a wrong patch has been committed
236-
- be patient if your patch is not accepted immediatelly, try to send a gentle
236+
- be patient if your patch is not accepted immediately, try to send a gentle
237237
ping if there's a significant time without any action
238238
- if you want to start contributing but are not sure about how to do that,
239239
lurk in the mailingist or on the IRC channel
@@ -337,15 +337,15 @@ should meet/have:
337337
- no coding style violations
338338
- good quality of implementation, should not exhibit trivial mistakes, lack of
339339
comments
340-
- unspecified number of other things that usually get poitned out in review
340+
- unspecified number of other things that usually get pointed out in review
341341
comments
342342

343343
- this knowledge can be demonstrated by doing reviews of other developers'
344344
patches
345345
- doing reviews of other developers' patches is strongly recommended
346346

347347
- good changelogs and subject lines
348-
- the base point of the git branch is well-defined (ie. a stable release point
348+
- the base point of the git branch is well-defined (i.e. a stable release point
349349
or last development point, that will not get rebased)
350350

351351
The third point is vague, mostly refers to preferred coding patterns that we
@@ -375,8 +375,8 @@ Patches for next development cycle:
375375

376376
- **base** -- the last release candidate tag in Linus' tree, be sure
377377
not to be ahead of the integration branches that will become the pull
378-
requests for the next dev cycle.
379-
- **for-next** -- patches should be in a good state, ie. don't
378+
requests for the next development cycle.
379+
- **for-next** -- patches should be in a good state, i.e. don't
380380
complicate testing too much, workarounds or known problems should be
381381
documented (e.g. in the patchset cover letter)
382382
- other names, for example a patchset for a given feature as a topic
@@ -413,7 +413,7 @@ Quoting https://spdx.dev/about/:
413413
international open standard for security, license compliance, and
414414
other software supply chain artifacts as ISO/IEC 5962:2021.
415415

416-
The initiative started in 2017 `1 <https://lwn.net/Articles/739183/>`__ aims to
416+
The initiative started in 2017 https://lwn.net/Articles/739183/ aims to
417417
unify licensing information in all files using **SPDX** tags, this is driven by
418418
the Linux Foundation. Therefore it's not necessary to repeat the license header
419419
(GPL) in each file, the licensing rules are documented in
@@ -454,7 +454,7 @@ copyright holders of changes in a given file. The code is usually heavily
454454
changed over time in smaller portions, slowly morphing into something that does
455455
not resemble the original code anymore though it shares a lot of the core ideas
456456
and implemented logic. A copyright notice by a company that does not exist
457-
anymore from 10 years ago is a clear example of uselessnes for the developers.
457+
anymore from 10 years ago is a clear example of uselesness for the developers.
458458

459459
When code is moved verbatim from a file to another file, in the new file it
460460
appears to be contributed by a single author while it is in most cases code
@@ -495,7 +495,7 @@ Major release
495495
position of the version, e.g. it's *4.6*. This usually means distributions
496496
start to adopt the sources, the stable kernels are going to be released.
497497

498-
*Developers:* expect bugreports based on this version, this usually does not
498+
*Developers:* expect bug reports based on this version, this usually does not
499499
have other significance regarding development of new features or bugfixes
500500

501501
Merge window
@@ -551,10 +551,18 @@ more release candidates.
551551
tested, can be found in the *for-next* branch
552552

553553
Sending intrusive changes at this point is not guaranteed to be reviewed or
554-
testd in time so it gets queued for the next kernel. This highly depends on the
554+
tested in time so it gets queued for the next kernel. This highly depends on the
555555
nature of the changes. Patch count should not be an issue if the patches are
556556
revieweable or do not do intrusive changes.
557557

558+
Last rcX before major release (rc7 or rc8)
559+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
560+
561+
The releases typically take 3 months, which means that rc7 or rc8 are the
562+
last ones, followed by a release and the merge window opens. Before that the
563+
development is effectively frozen or continues in parallel. Up to date list of
564+
release dates is at https://en.wikipedia.org/wiki/Linux_kernel_version_history .
565+
558566
Major release
559567
~~~~~~~~~~~~~
560568

@@ -593,40 +601,30 @@ to newcomers.
593601
How to get started - development
594602
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
595603

596-
- Build and install the latest kernel from Linus's git repo.
597-
- Read and understand the user documentation
598-
(`Main_Page#Guides_and_usage_information <Main_Page#Guides_and_usage_information>`__).
604+
- Build and install the latest kernel from Linus's git repository.
599605
- Create one or several btrfs filesystems with different configurations
600606
and learn how they work in userspace -- what are the features, what
601607
are the problems you see? Actually use at least one of the
602608
filesystems you created for real data in daily use (with backups)
603609
- Build the userspace tools from git
604-
- Pick up one of the userspace projects from
605-
`Project_ideas#Userspace_tools_projects <Project_ideas#Userspace_tools_projects>`__
606-
and implement that. If you pick the right one(s), you'll have to
607-
learn about some of the internal structures of the FS anyway. Compile
610+
- Project ideas used to be tracked on the wiki
611+
(https://archive.kernel.org/oldwiki/btrfs.wiki.kernel.org/index.php/Project_ideas.html)
612+
but this contains outdated information and will be moved elsewhere eventually.
613+
If you pick the right one(s), you'll have to
614+
learn about some of the internal structures of the filesystem anyway. Compile
608615
and test your patch. If you're adding a new feature, write an
609-
automated xfstest for it as well.
616+
automated fstests case for it as well.
610617
- Get that patch accepted. This will probably involve a sequence of
611618
revisions to it, multiple versions over a period of several weeks or
612619
more, with a review process. You should also send your test to
613-
xfstests and get that accepted.
620+
fstests and get that accepted.
614621
- Do the above again, until you get used to the processes involved, and
615622
have demonstrated that you can work well with the other people in the
616623
subsystem, and are generally producing useful and sane code. It's all
617624
about trust -- can you be trusted to mostly do the right thing?
618-
- Use the documentation at
619-
`Main_Page#Developer_documentation <Main_Page#Developer_documentation>`__,
620-
and the output of btrfs-debug-tree to understand the internal
621-
structure of the FS
622-
- Pick up one of the smaller, more self-contained ideas from the
623-
projects page `Project_ideas <Project_ideas>`__ (say,
624-
`Project_ideas#Cancellable_operations <Project_ideas#Cancellable_operations>`__
625-
or
626-
`Project_ideas#Implement_new_FALLOC_FL_.2A_modes <Project_ideas#Implement_new_FALLOC_FL_.2A_modes>`__)
627-
and try to implement it. Again: build, write test code, test
628-
thoroughly, submit patch for review, modify as suggested by
629-
reviewers, and repeat as often as necessary.
625+
- Developer documentation is listed in a section on the main documentation page.
626+
- Output of *btrfs inspect-internal dump-tree* can be helpful to understand
627+
the internal structure of the filesystem.
630628

631629
How not to start
632630
~~~~~~~~~~~~~~~~
@@ -637,7 +635,7 @@ that. The following text reflects our stance:
637635

638636
If you want to contribute and do something useful for others and yourself, just
639637
don't keep sending these patches to fix whitespace/style issues reported by
640-
checkpatch. Think about it:
638+
checkpatch.pl. Think about it:
641639

642640
#. You don't learn anything by doing them. You don't learn nothing about btrfs
643641
internals, filesystems in general, kernel programming in general, general

0 commit comments

Comments
 (0)
Please sign in to comment.