@@ -163,7 +163,7 @@ Let's be more positive, you manage to attract the attention of some developer
163
163
and he says, he does not like the approach of the patch(es). Better than
164
164
nothing, isn't it? Depending on the feedback, try to understand the objections
165
165
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
167
167
*why * the change is needed.
168
168
169
169
Repeated submissions
@@ -175,7 +175,7 @@ why they're wrong or not needed. (You can try to pinkie-swear to implement them
175
175
later, but do not try this too often.)
176
176
177
177
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
179
179
3):
180
180
181
181
.. code-block ::
@@ -195,7 +195,7 @@ can send an early version, use a *[RFC]* string somewhere in the subject. This
195
195
means *request for comments *. Be prepared to get comments.
196
196
197
197
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
199
199
feedback from other developers about the direction or implementation approach.
200
200
This may save you hours of coding.
201
201
@@ -222,7 +222,7 @@ moving development base.
222
222
**Do: ** make sure that each patch compiles and does not deliberately introduce
223
223
a bug, this is a good practice that makes *bisecting * go smooth
224
224
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
226
226
of the series, this is a place where feedback to the whole patchset will be
227
227
sent rather than comments to the individual patches. To generate the series
228
228
with cover letter use *git format-patch --cover-letter --thread *.
@@ -233,7 +233,7 @@ Good practices, contribution hints
233
233
- if you feel that you understand some area of code enough to stick your
234
234
*Reviewed-by * to submitted patches, please do. Even for small patches.
235
235
- 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
237
237
ping if there's a significant time without any action
238
238
- if you want to start contributing but are not sure about how to do that,
239
239
lurk in the mailingist or on the IRC channel
@@ -337,15 +337,15 @@ should meet/have:
337
337
- no coding style violations
338
338
- good quality of implementation, should not exhibit trivial mistakes, lack of
339
339
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
341
341
comments
342
342
343
343
- this knowledge can be demonstrated by doing reviews of other developers'
344
344
patches
345
345
- doing reviews of other developers' patches is strongly recommended
346
346
347
347
- 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
349
349
or last development point, that will not get rebased)
350
350
351
351
The third point is vague, mostly refers to preferred coding patterns that we
@@ -375,8 +375,8 @@ Patches for next development cycle:
375
375
376
376
- **base ** -- the last release candidate tag in Linus' tree, be sure
377
377
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
380
380
complicate testing too much, workarounds or known problems should be
381
381
documented (e.g. in the patchset cover letter)
382
382
- other names, for example a patchset for a given feature as a topic
@@ -413,7 +413,7 @@ Quoting https://spdx.dev/about/:
413
413
international open standard for security, license compliance, and
414
414
other software supply chain artifacts as ISO/IEC 5962:2021.
415
415
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
417
417
unify licensing information in all files using **SPDX ** tags, this is driven by
418
418
the Linux Foundation. Therefore it's not necessary to repeat the license header
419
419
(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
454
454
changed over time in smaller portions, slowly morphing into something that does
455
455
not resemble the original code anymore though it shares a lot of the core ideas
456
456
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.
458
458
459
459
When code is moved verbatim from a file to another file, in the new file it
460
460
appears to be contributed by a single author while it is in most cases code
@@ -495,7 +495,7 @@ Major release
495
495
position of the version, e.g. it's *4.6 *. This usually means distributions
496
496
start to adopt the sources, the stable kernels are going to be released.
497
497
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
499
499
have other significance regarding development of new features or bugfixes
500
500
501
501
Merge window
@@ -551,10 +551,18 @@ more release candidates.
551
551
tested, can be found in the *for-next * branch
552
552
553
553
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
555
555
nature of the changes. Patch count should not be an issue if the patches are
556
556
revieweable or do not do intrusive changes.
557
557
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
+
558
566
Major release
559
567
~~~~~~~~~~~~~
560
568
@@ -593,40 +601,30 @@ to newcomers.
593
601
How to get started - development
594
602
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
595
603
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.
599
605
- Create one or several btrfs filesystems with different configurations
600
606
and learn how they work in userspace -- what are the features, what
601
607
are the problems you see? Actually use at least one of the
602
608
filesystems you created for real data in daily use (with backups)
603
609
- 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
608
615
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.
610
617
- Get that patch accepted. This will probably involve a sequence of
611
618
revisions to it, multiple versions over a period of several weeks or
612
619
more, with a review process. You should also send your test to
613
- xfstests and get that accepted.
620
+ fstests and get that accepted.
614
621
- Do the above again, until you get used to the processes involved, and
615
622
have demonstrated that you can work well with the other people in the
616
623
subsystem, and are generally producing useful and sane code. It's all
617
624
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.
630
628
631
629
How not to start
632
630
~~~~~~~~~~~~~~~~
@@ -637,7 +635,7 @@ that. The following text reflects our stance:
637
635
638
636
If you want to contribute and do something useful for others and yourself, just
639
637
don't keep sending these patches to fix whitespace/style issues reported by
640
- checkpatch. Think about it:
638
+ checkpatch.pl. Think about it:
641
639
642
640
#. You don't learn anything by doing them. You don't learn nothing about btrfs
643
641
internals, filesystems in general, kernel programming in general, general
0 commit comments