From acb43115183b418122e45f022065f822dcbf46c8 Mon Sep 17 00:00:00 2001 From: Stefanni Date: Tue, 17 Jul 2018 07:56:57 -0700 Subject: [PATCH] Add CodeClimate documentation (#3068) * CodeClimate documentation * Changing image: doc/images/code_climate.png --- CODECLIMATE.md | 24 ++++++++++++++++++++ doc/images/code_climate.png | Bin 0 -> 88605 bytes doc/images/code_climate_1.png | Bin 0 -> 69099 bytes doc/images/codeclimate_read_up.png | Bin 0 -> 173897 bytes doc/images/cognitive_complexity_example.png | Bin 0 -> 64232 bytes 5 files changed, 24 insertions(+) create mode 100644 CODECLIMATE.md create mode 100644 doc/images/code_climate.png create mode 100644 doc/images/code_climate_1.png create mode 100644 doc/images/codeclimate_read_up.png create mode 100644 doc/images/cognitive_complexity_example.png diff --git a/CODECLIMATE.md b/CODECLIMATE.md new file mode 100644 index 00000000000..ce9a73ebd3c --- /dev/null +++ b/CODECLIMATE.md @@ -0,0 +1,24 @@ +# Code Climate + +We are implementing a [Code Climate](https://docs.codeclimate.com/docs) automation test to improve the quality of our code. + +# Issues + +CodeClimate is picky -- any time you think it's being too particular, you can ping @publiclab/reviewers and they can manually "approve" a PR and you can move forward -- not a problem! But if you click "details" next to CodeClimate, it'll offer some advice: + +![Issues from a Pull Request](doc/images/code_climate.png) + +The most common is to refactor your code to avoid duplication or methods with +too many lines. + +Below you can see CodeClimate complaining about "cognitive complexity" -- basically, +asking you to try to simplify how the code is written in order to make it more readable: + +![Cognitive Complexity example](doc/images/cognitive_complexity_example.png) + +If you hover over the right-side of each issue, it has a "read more" link which offers some tips on how to resolve it: + +![Cognitive Complexity example](doc/images/codeclimate_read_up.png) + +CodeClimate is picky so if you have more questions or need help, you can always +ask for help. diff --git a/doc/images/code_climate.png b/doc/images/code_climate.png new file mode 100644 index 0000000000000000000000000000000000000000..733fd8bfd6b9a34d77e05f46a5b8b0643fdd0aab GIT binary patch literal 88605 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