diff --git a/DESCRIPTION b/DESCRIPTION
index c4fe7a6..469e489 100644
--- a/DESCRIPTION
+++ b/DESCRIPTION
@@ -1,7 +1,7 @@
Package: queryparser
Type: Package
Title: Translate 'SQL' Queries into 'R' Expressions
-Version: 0.3.0.9003
+Version: 0.3.1
Authors@R: c(
person("Ian", "Cook", email = "ianmcook@gmail.com", role = c("aut", "cre")),
person(family = "Cloudera", role = c("cph"))
diff --git a/NEWS.md b/NEWS.md
index 778851f..08753cc 100644
--- a/NEWS.md
+++ b/NEWS.md
@@ -1,10 +1,11 @@
-# queryparser (development version)
+# queryparser 0.3.1
* Queries can contain multibyte characters ([#21](https://github.com/ianmcook/queryparser/issues/21))
* Queries can have no whitespace around keywords ([#27](https://github.com/ianmcook/queryparser/issues/27))
* `substring_index()` translates when `tidyverse = TRUE` ([#29](https://github.com/ianmcook/queryparser/issues/29))
* `embedded nuls` warnings are silenced ([#30](https://github.com/ianmcook/queryparser/issues/30))
* Syntactically invalid column names are allowed in backticks ([#31](https://github.com/ianmcook/queryparser/issues/31))
+* Minor bugfixes and improvements
# queryparser 0.3.0
diff --git a/README.Rmd b/README.Rmd
index 7ad9d08..2b9eceb 100644
--- a/README.Rmd
+++ b/README.Rmd
@@ -14,13 +14,6 @@ knitr::opts_chunk$set(
```
# queryparser
-
-[![CRAN status](https://www.r-pkg.org/badges/version/queryparser)](https://cran.r-project.org/package=queryparser)
-[![Travis build status](https://travis-ci.org/ianmcook/queryparser.svg?branch=master)](https://travis-ci.org/ianmcook/queryparser)
-[![AppVeyor build status](https://ci.appveyor.com/api/projects/status/github/ianmcook/queryparser?branch=master&svg=true)](https://ci.appveyor.com/project/ianmcook/queryparser)
-[![Codecov test coverage](https://codecov.io/gh/ianmcook/queryparser/branch/master/graph/badge.svg)](https://codecov.io/gh/ianmcook/queryparser?branch=master)
-
-
**queryparser** translates SQL queries into lists of unevaluated R expressions.
| ⚠️ Most R users should not directly use queryparser. Instead, use it through [tidyquery](https://github.com/ianmcook/tidyquery).
diff --git a/README.md b/README.md
index 5fa0e70..76af127 100644
--- a/README.md
+++ b/README.md
@@ -3,18 +3,6 @@
# queryparser
-
-
-[![CRAN
-status](https://www.r-pkg.org/badges/version/queryparser)](https://cran.r-project.org/package=queryparser)
-[![Travis build
-status](https://travis-ci.org/ianmcook/queryparser.svg?branch=master)](https://travis-ci.org/ianmcook/queryparser)
-[![AppVeyor build
-status](https://ci.appveyor.com/api/projects/status/github/ianmcook/queryparser?branch=master&svg=true)](https://ci.appveyor.com/project/ianmcook/queryparser)
-[![Codecov test
-coverage](https://codecov.io/gh/ianmcook/queryparser/branch/master/graph/badge.svg)](https://codecov.io/gh/ianmcook/queryparser?branch=master)
-
-
**queryparser** translates SQL queries into lists of unevaluated R
expressions.