diff --git a/CHANGELOG.md b/CHANGELOG.md
index 5dac2f9..b598a4f 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -7,6 +7,17 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
 
 ## [Unreleased]
 
+## [0.15.0] - 2024-06-13
+
+### Added
+
+- Support for Python 3.12
+
+### Removed
+
+- `tests` from packages ([#60](https://github.com/dlint-py/dlint/issues/60))
+- Support for Python 3.7
+
 ## [0.14.1] - 2023-04-10
 
 ### Changed
diff --git a/README.md b/README.md
index a469c0d..9ee665a 100644
--- a/README.md
+++ b/README.md
@@ -35,10 +35,10 @@ Usage: flake8 [options] file file ...
 
 ...
 
-Installed plugins: dlint: 0.14.1, mccabe: 0.5.3, pycodestyle: 2.2.0, pyflakes: 1.3.0
+Installed plugins: dlint: 0.15.0, mccabe: 0.5.3, pycodestyle: 2.2.0, pyflakes: 1.3.0
 ```
 
-Note the `dlint: 0.14.1`.
+Note the `dlint: 0.15.0`.
 
 # Using
 
diff --git a/dlint/__init__.py b/dlint/__init__.py
index 3946d4f..4493d22 100644
--- a/dlint/__init__.py
+++ b/dlint/__init__.py
@@ -7,7 +7,7 @@
 from . import util  # noqa F401
 
 __name__ = 'dlint'
-__version__ = '0.14.1'
+__version__ = '0.15.0'
 __description__ = (
     "Dlint is a tool for encouraging best coding practices "
     "and helping ensure Python code is secure."