diff --git a/.clang-tidy b/.clang-tidy
index 5e486e6a0c..1202d12c27 100644
--- a/.clang-tidy
+++ b/.clang-tidy
@@ -4,14 +4,35 @@ Checks: >-
-abseil-*,
-android-*,
-boost-*,
+ -bugprone-branch-clone,
-bugprone-macro-parentheses,
+ -bugprone-narrowing-conversions,
+ -bugprone-reserved-identifier,
+ -bugprone-signed-char-misuse,
+ -bugprone-suspicious-include,
+ -bugprone-too-small-loop-variable,
+ -bugprone-unhandled-self-assignment,
+ -cert-dcl37-c,
-cert-dcl50-cpp,
+ -cert-dcl51-cpp,
-cert-err58-cpp,
+ -cert-oop54-cpp,
+ -cert-oop57-cpp,
+ -cert-str34-c,
-clang-analyzer-core.CallAndMessage,
+ -clang-analyzer-optin.*,
-clang-analyzer-osx.*,
-clang-analyzer-security.*,
+ -clang-diagnostic-shadow-field,
+ -cppcoreguidelines-avoid-c-arrays,
-cppcoreguidelines-avoid-goto,
+ -cppcoreguidelines-avoid-magic-numbers,
+ -cppcoreguidelines-avoid-non-const-global-variables,
-cppcoreguidelines-c-copy-assignment-signature,
+ -cppcoreguidelines-init-variables,
+ -cppcoreguidelines-macro-usage,
+ -cppcoreguidelines-narrowing-conversions,
+ -cppcoreguidelines-non-private-member-variables-in-classes,
-cppcoreguidelines-owning-memory,
-cppcoreguidelines-pro-bounds-array-to-pointer-decay,
-cppcoreguidelines-pro-bounds-constant-array-index,
@@ -37,10 +58,16 @@ Checks: >-
-google-runtime-int,
-google-runtime-references,
-hicpp-*,
+ -llvm-else-after-return,
-llvm-header-guard,
-llvm-include-order,
+ -llvm-qualified-auto,
+ -llvmlibc-*,
+ -misc-non-private-member-variables-in-classes,
+ -misc-no-recursion,
-misc-unconventional-assign-operator,
-misc-unused-parameters,
+ -modernize-avoid-c-arrays,
-modernize-deprecated-headers,
-modernize-pass-by-value,
-modernize-pass-by-value,
@@ -48,14 +75,25 @@ Checks: >-
-modernize-use-auto,
-modernize-use-default-member-init,
-modernize-use-equals-default,
+ -modernize-use-trailing-return-type,
-mpi-*,
-objc-*,
-performance-unnecessary-value-param,
-readability-braces-around-statements,
+ -readability-const-return-type,
+ -readability-convert-member-functions-to-static,
-readability-else-after-return,
-readability-implicit-bool-conversion,
+ -readability-isolate-declaration,
+ -readability-magic-numbers,
+ -readability-make-member-function-const,
-readability-named-parameter,
+ -readability-qualified-auto,
+ -readability-redundant-access-specifiers,
-readability-redundant-member-init,
+ -readability-redundant-string-init,
+ -readability-uppercase-literal-suffix,
+ -readability-use-anyofallof,
-warnings-as-errors,
-zircon-*
WarningsAsErrors: '*'
diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md
index 0d77eee7aa..aa90ef365f 100644
--- a/.github/PULL_REQUEST_TEMPLATE.md
+++ b/.github/PULL_REQUEST_TEMPLATE.md
@@ -1,25 +1,22 @@
# What does this implement/fix?
-Quick description
+Quick description and explanation of changes
## Types of changes
- [ ] Bugfix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
-- [ ] Configuration change (this will require users to update their yaml configuration files to keep working)
+- [ ] Other
**Related issue or feature (if applicable):** fixes
**Pull request in [esphome-docs](https://github.com/esphome/esphome-docs) with documentation (if applicable):** esphome/esphome-docs#
-
-# Test Environment
+
+## Test Environment
- [ ] ESP32
- [ ] ESP8266
-- [ ] Windows
-- [ ] Mac OS
-- [ ] Linux
## Example entry for `config.yaml`:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {% if begin and len(entries) == 1 %}
-
- {% end %}
-
-