diff --git a/CHANGELOG.md b/CHANGELOG.md
index 845ad6b512e08f8bd6d86afc8ea92af5851fde40..3449d7e7e58af0f934b63c63eee9ffd195ee3ffa 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,10 +2,11 @@
 
 The `newick` package adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
 
-## [Unreleased]
+## [v1.4.0] - 2022-12-06
 
 - Drop py3.6 compatibility
 - Run tests on py3.11
+- Added type hints.
 
 
 ## [v1.3.2] - 2021-12-14
diff --git a/setup.cfg b/setup.cfg
index b3535e2aac34a5423551e2b5b7298c0e4f1d1a79..158f169cdc376c1633c593e3c1cfe857c2e13fae 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -1,6 +1,6 @@
 [metadata]
 name = newick
-version = 1.3.3.dev0
+version = 1.4.0
 author = Robert Forkel
 author_email = robert_forkel@eva.mpg.de
 description = A python module to read and write the Newick format
diff --git a/src/newick.py b/src/newick.py
index 70417fd4cdf5b087c71a5e41a52fd56847fae9e3..f1e47c33d13a23e219e7df9ffb3c751ce0a71057 100644
--- a/src/newick.py
+++ b/src/newick.py
@@ -7,7 +7,7 @@ import re
 import typing
 import pathlib
 
-__version__ = "1.3.3.dev0"
+__version__ = "1.4.0"
 
 RESERVED_PUNCTUATION = ':;,()'
 COMMENT = re.compile(r'\[[^]]*]')