From 25df8fb42ffa62e4ad3855a8cd4660eeedc80e1f Mon Sep 17 00:00:00 2001 From: Graham Christensen Date: Mon, 27 Jan 2020 16:32:52 -0500 Subject: [PATCH] Add an .editorconfig; document git whitespace settings Most of the projects I work on don't use tabs, and while authoring my first patch I had to wrestle with my editor to not introduce whitespace editors. The `.editorconfig` file is supported by a large number of editors out of the box, and many more with plugins. As a first-time contributor, I can't say for certain these settings are totally correct, but thus far git and my editor are satisfied enough. I considered adding `git config --local format.signOff true` but wanted to respect the warning: format.signOff A boolean value which lets you enable the -s/--signoff option of format-patch by default. Note: Adding the Signed-off-by: line to a patch should be a conscious act and means that you certify you have the rights to submit this work under the same open source license. Please see the SubmittingPatches document for further discussion. Reviewed-by: George Melikov Reviewed-by: Brian Behlendorf Signed-off-by: Graham Christensen Closes #9892 --- .editorconfig | 10 ++++++++++ .github/CONTRIBUTING.md | 15 ++++++++++++--- 2 files changed, 22 insertions(+), 3 deletions(-) create mode 100644 .editorconfig diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 000000000..0f4b96a83 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,10 @@ +root = true + +[*] +end_of_line = lf +insert_final_newline = true +trim_trailing_whitespace = true + +[*.{c,h}] +tab_width = 8 +indent_style = tab diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index ee5a72c83..8648b22f7 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -137,8 +137,8 @@ changes easier to review and approve which speeds up the merging process. * Try to keep pull requests simple. Simple code with comments is much easier to review and approve. * All proposed changes must be approved by a ZFS on Linux organization member. -* If you have an idea you'd like to discuss or which requires additional testing, consider opening it as a draft pull request. -Once everything is in good shape and the details have been worked out you can remove its draft status. +* If you have an idea you'd like to discuss or which requires additional testing, consider opening it as a draft pull request. +Once everything is in good shape and the details have been worked out you can remove its draft status. Any required reviews can then be finalized and the pull request merged. #### Tests and Benchmarks @@ -177,6 +177,16 @@ We currently use [C Style and Coding Standards for SunOS](http://www.cis.upenn.edu/%7Elee/06cse480/data/cstyle.ms.pdf) as our coding convention. +This repository has an `.editorconfig` file. If your editor [supports +editorconfig](https://editorconfig.org/#download), it will +automatically respect most of this project's whitespace preferences. + +Additionally, Git can help warn on whitespace problems as well: + +``` +git config --local core.whitespace trailing-space,space-before-tab,indent-with-non-tab,-tab-in-indent +``` + ### Commit Message Formats #### New Changes Commit messages for new changes must meet the following guidelines: @@ -315,4 +325,3 @@ but may be used in any situation where there are co-authors. The email address used here should be the same as on the GitHub profile of said user. If said user does not have their email address public, please use the following instead: `Co-authored-by: Name <[username]@users.noreply.github.com>` -