From e6c7658e97fc16465806c6030ac8e3adb08f4f75 Mon Sep 17 00:00:00 2001 From: Jon Areas Date: Thu, 22 Dec 2022 16:14:52 -0600 Subject: [PATCH] Add Docs --- docs/StaticCodeAnalysis.md | 39 ++++++++++++++++++++++++++++++++++++++ docs/VersionsPlugin.md | 14 ++++++++++++++ 2 files changed, 53 insertions(+) create mode 100644 docs/StaticCodeAnalysis.md create mode 100644 docs/VersionsPlugin.md diff --git a/docs/StaticCodeAnalysis.md b/docs/StaticCodeAnalysis.md new file mode 100644 index 0000000..2aec43d --- /dev/null +++ b/docs/StaticCodeAnalysis.md @@ -0,0 +1,39 @@ +# Static Code Analysis + +This project uses static code analysis in order to ensure that the codebase meets certain standards +that can be verified through automation. Two of these libraries used throughout this project are +Detekt and Ktlint. + +## Detekt + +[Detekt](https://github.com/detekt/detekt) is a static analysis tool that checks for code smells. +Examples include magic numbers, complicated conditionals, long methods, long parameter lists, and so +much more. It is highly configurable, and if you choose to turn off any checks or customize +thresholds you can do so in the [config file](/config/detekt/detekt.yml). + +To run a detekt validation, use the following Gradle command: + +``` +./gradlew detekt +``` + +## Ktlint + +[Ktlint](https://github.com/pinterest/ktlint) is a static analysis tool from Pinterest that prevents +bike shedding when it comes to code formatting. It also comes with a Gradle task to automatically +format your entire codebase, if it can. The benefit of a tool like this is to ensure everyone on the +team will have code formatted the same way, and there's no debating around white spaces, +indentation, imports, etc. + +We use the [JLLeitschuh](https://github.com/jlleitschuh/ktlint-gradle) Ktlint Gradle plugin in this +project. You can find the setup in [this Gradle file](/buildscripts/ktlint.gradle). + +The following Gradle commands can be helpful: + +``` +// Format the Codebase +./gradlew ktlintFormat + +// Check if everything is formatted correctly +./gradlew ktlintCheck +``` \ No newline at end of file diff --git a/docs/VersionsPlugin.md b/docs/VersionsPlugin.md new file mode 100644 index 0000000..25cc06f --- /dev/null +++ b/docs/VersionsPlugin.md @@ -0,0 +1,14 @@ +# Versions Plugin + +This project uses the [Gradle Versions Plugin](https://github.com/ben-manes/gradle-versions-plugin) +from Ben Manes. Ths is an extremely helpful plugin that will check all of the dependencies in the +project, and see if they have any new versions. Currently, it is configured to only check for stable +versions, but you can customize that inside [this Gradle file](/buildscripts/versions.gradle). + +To run this check of dependency updates, use the following Gradle command: + +``` +./gradlew dependencyUpdates +``` + +This will print the updates to the console, as well as in a text file. \ No newline at end of file