v4.0.0
diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index 93d9470..a819f5c 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -1,6 +1,6 @@
 repos:
 -   repo: https://github.com/pre-commit/pre-commit-hooks
-    rev: v3.4.0
+    rev: v4.0.0
     hooks:
     -   id: trailing-whitespace
     -   id: end-of-file-fixer
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 5de3576..4a88335 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,39 @@
+4.0.0 - 2021-05-14
+==================
+
+### Features
+- `check-json`: report duplicate keys.
+    - #558 PR by @AdityaKhursale.
+    - #554 issue by @adamchainz.
+- `no-commit-to-branch`: add `main` to default blocked branches.
+    - #565 PR by @ndevenish.
+- `check-case-conflict`: check conflicts in directory names as well.
+    - #575 PR by @slsyy.
+    - #70 issue by @andyjack.
+- `check-vcs-permalinks`: forbid other branch names.
+    - #582 PR by @jack1142.
+    - #581 issue by @jack1142.
+- `check-shebang-scripts-are-executable`: new hook which ensures shebang'd
+  scripts are executable.
+    - #545 PR by @scop.
+
+### Fixes
+- `check-executables-have-shebangs`: Short circuit shebang lookup on windows.
+    - #544 PR by @scop.
+- `requirements-txt-fixer`: Fix comments which have indentation
+    - #549 PR by @greshilov.
+    - #548 issue by @greshilov.
+- `pretty-format-json`: write to stdout using UTF-8 encoding.
+    - #571 PR by @jack1142.
+    - #570 issue by @jack1142.
+- Use more inclusive language.
+    - #599 PR by @asottile.
+
+### Breaking changes
+- Remove deprecated hooks: `flake8`, `pyflakes`, `autopep8-wrapper`.
+    - #597 PR by @asottile.
+
+
 3.4.0 - 2020-12-15
 ==================
 
diff --git a/README.md b/README.md
index 5a6ddfe..e7d9b23 100644
--- a/README.md
+++ b/README.md
@@ -16,7 +16,7 @@
 
 ```yaml
 -   repo: https://github.com/pre-commit/pre-commit-hooks
-    rev: v3.4.0  # Use the ref you want to point at
+    rev: v4.0.0  # Use the ref you want to point at
     hooks:
     -   id: trailing-whitespace
     # -   id: ...
diff --git a/setup.cfg b/setup.cfg
index dbe151b..7fdab7d 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -1,6 +1,6 @@
 [metadata]
 name = pre_commit_hooks
-version = 3.4.0
+version = 4.0.0
 description = Some out-of-the-box hooks for pre-commit.
 long_description = file: README.md
 long_description_content_type = text/markdown