diff --git a/AUTHORS b/AUTHORS
index 07b8fbd09e0500fce7c21b3b54a8ffe6785ba75f..280dea2f5f48ec39b940d6638ac75128cee6797c 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -127,6 +127,7 @@ Chris Houseknecht
 Chris Lohfink
 Chris Morgan
 Chris Smith
+Christian Gruen
 Christian Oyarzun
 Christian Petrov
 Christopher Brown
@@ -136,6 +137,7 @@ Christopher Pfohl
 Chunliang Lyu
 ciaranj
 CodeAnimal
+CodeBitt
 coderaiser
 Cole R Lawrence
 ComFreek
@@ -293,6 +295,7 @@ Jason Siefken
 Jaydeep Solanki
 Jean Boussier
 Jeff Blaisdell
+Jeff Hanke
 Jeff Jenkins
 jeffkenton
 Jeff Pickhardt
@@ -314,6 +317,7 @@ John Snelson
 John Van Der Loo
 Jon Ander Peñalba
 Jonas Döbertin
+Jonas Helfer
 Jonathan Malmaud
 Jon Gacnik
 jongalloway
@@ -438,6 +442,7 @@ Michael Goderbauer
 Michael Grey
 Michael Kaminsky
 Michael Lehenbauer
+Michael Walker
 Michael Zhou
 Michal ÄŒihaÅ™
 Michal Dorner
@@ -456,6 +461,7 @@ misfo
 mkaminsky11
 mloginov
 Moritz Schwörer
+Moshe Wajnberg
 mps
 ms
 mtaran-google
@@ -518,6 +524,7 @@ Philipp A
 Philip Stadermann
 Pierre Gerold
 Piët Delport
+Pieter Ouwerkerk
 Pontus Melke
 prasanthj
 Prasanth J
@@ -558,6 +565,7 @@ sandeepshetty
 Sander AKA Redsandro
 Sander Verweij
 santec
+Sarah McAlear and Wenlin Zhang
 Sascha Peilicke
 satamas
 satchmorun
@@ -567,6 +575,7 @@ S. Chris Colbert
 SCLINIC\jdecker
 Scott Aikin
 Scott Goodhew
+Sebastian Wilzbach
 Sebastian Zaha
 Sergey Goder
 Sergey Tselovalnikov
@@ -594,6 +603,7 @@ Stas Kobzar
 Stefan Borsje
 Steffen Beyer
 Steffen Bruchmann
+Steffen Kowalski
 Stephen Lavelle
 Steve Champagne
 Steve Hoover
@@ -662,6 +672,7 @@ Yassin N. Hassan
 YNH Webdev
 Yunchi Luo
 Yuvi Panda
+Yvonnick Esnault
 Zac Anger
 Zachary Dremann
 Zeno Rocha
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 49290390fd5bd33c5774951da6b4800a62ffa877..6cc7ed75fdbe8c09c18b7f25169d1d72414b17d4 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,25 @@
+## 5.29.0 (2017-08-24)
+
+### Bug fixes
+
+Fix crash in contentEditable input style when editing near a bookmark.
+
+Make sure change origins are preserved when splitting changes on [read-only marks](http://codemirror.net/doc/manual.html#mark_readOnly).
+
+[javascript mode](http://codemirror.net/mode/javascript/): More support for TypeScript syntax.
+
+[d mode](http://codemirror.net/mode/d/): Support nested comments.
+
+[python mode](http://codemirror.net/mode/python/): Improve tokenizing of operators.
+
+[markdown mode](http://codemirror.net/mode/markdown/): Further improve CommonMark conformance.
+
+[css mode](http://codemirror.net/mode/css/): Don't run comment tokens through the mode's state machine.
+
+[shell mode](http://codemirror.net/mode/shell/): Allow strings to span lines.
+
+[search addon](http://codemirror.net/demo/search/): Fix crash in persistent search when `extraKeys` is null.
+
 ## 5.28.0 (2017-07-21)
 
 ### Bug fixes
diff --git a/doc/manual.html b/doc/manual.html
index da4423f960ceb24126df853cd47671927a5b79f2..866367a6bfc388b4a988709bf89ac644e4936aef 100644
--- a/doc/manual.html
+++ b/doc/manual.html
@@ -69,7 +69,7 @@
 <section class=first id=overview>
     <h2 style="position: relative">
       User manual and reference guide
-      <span style="color: #888; font-size: 1rem; position: absolute; right: 0; bottom: 0">version 5.28.1</span>
+      <span style="color: #888; font-size: 1rem; position: absolute; right: 0; bottom: 0">version 5.29.0</span>
     </h2>
 
     <p>CodeMirror is a code-editor component that can be embedded in
diff --git a/doc/releases.html b/doc/releases.html
index 1c882dc310723dd16d48a33f5e89f452de2669dc..586e2117f40e24ffbb54e18e03437c0639de15f4 100644
--- a/doc/releases.html
+++ b/doc/releases.html
@@ -30,6 +30,20 @@
 
   <h2>Version 5.x</h2>
 
+  <p class="rel">24-08-2017: <a href="http://codemirror.net/codemirror-5.29.0.zip">Version 5.29.0</a>:</p>
+
+  <ul class="rel-note">
+    <li>Fix crash in contentEditable input style when editing near a bookmark.</li>
+    <li>Make sure change origins are preserved when splitting changes on <a href="http://codemirror.net/doc/manual.html#mark_readOnly">read-only marks</a>.</li>
+    <li><a href="http://codemirror.net/mode/javascript/">javascript mode</a>: More support for TypeScript syntax.</li>
+    <li><a href="http://codemirror.net/mode/d/">d mode</a>: Support nested comments.</li>
+    <li><a href="http://codemirror.net/mode/python/">python mode</a>: Improve tokenizing of operators.</li>
+    <li><a href="http://codemirror.net/mode/markdown/">markdown mode</a>: Further improve CommonMark conformance.</li>
+    <li><a href="http://codemirror.net/mode/css/">css mode</a>: Don't run comment tokens through the mode's state machine.</li>
+    <li><a href="http://codemirror.net/mode/shell/">shell mode</a>: Allow strings to span lines.</li>
+    <li><a href="http://codemirror.net/demo/search/">search addon</a>: Fix crash in persistent search when <code>extraKeys</code> is null.</li>
+  </ul>
+
   <p class="rel">21-07-2017: <a href="http://codemirror.net/codemirror-5.28.0.zip">Version 5.28.0</a>:</p>
 
   <ul class="rel-note">
diff --git a/index.html b/index.html
index 0ce8fa6038cd555940b61eb7a42244e14d0706ad..68b9e507a492a2772d5773660f8077d37c3743e4 100644
--- a/index.html
+++ b/index.html
@@ -96,7 +96,7 @@
       </div>
     </div>
     <div class=actionsleft>
-      Get the current version: <a href="http://codemirror.net/codemirror.zip">5.28.0</a>.<br>
+      Get the current version: <a href="http://codemirror.net/codemirror.zip">5.29.0</a>.<br>
       You can see the <a href="https://github.com/codemirror/codemirror" title="Github repository">code</a>,<br>
       read the <a href="doc/releases.html">release notes</a>,<br>
       or study the <a href="doc/manual.html">user manual</a>.
diff --git a/package.json b/package.json
index ff6971cd8e986c33e5903d77bbc6a397d7c96e97..3f108eb38785da9349d91887ac51052f24992e38 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
 {
   "name": "codemirror",
-  "version": "5.28.1",
+  "version": "5.29.0",
   "main": "lib/codemirror.js",
   "style": "lib/codemirror.css",
   "description": "Full-featured in-browser code editor",
diff --git a/src/edit/main.js b/src/edit/main.js
index e7a2122d6ed73c91a6567c0a118cc90e3af13da3..44779dc05a05234371cb81dcad16672ff7d2189d 100644
--- a/src/edit/main.js
+++ b/src/edit/main.js
@@ -66,4 +66,4 @@ import { addLegacyProps } from "./legacy"
 
 addLegacyProps(CodeMirror)
 
-CodeMirror.version = "5.28.1"
+CodeMirror.version = "5.29.0"