diff --git a/ChangeLog b/ChangeLog
index 0ae3b4b295..44b89ff6e0 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,4 +1,13 @@
+Version 7.9.0
+-------------
+
+    * Rewrite of proto_library and grpc_library rules. It's now possible to configure new
+      languages externally for plugins such as grpc-gateway.
     * Add <root>/third_party/ to the default GOPATH
+    * Added --shell flag to plz build, which is like --prepare but opens a shell in the
+      work directory with an appropriate environment set.
+    * Added --update flag to plz hash to rewrite hashes in a BUILD file.
+
 
 Version 7.8.2
 -------------
diff --git a/VERSION b/VERSION
index 194172b2db..4bc5d61816 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-7.8.2
+7.9.0
diff --git a/tools/javac_worker/src/build/please/compile/JavaCompiler.java b/tools/javac_worker/src/build/please/compile/JavaCompiler.java
index 3899c5a97c..87d984c155 100644
--- a/tools/javac_worker/src/build/please/compile/JavaCompiler.java
+++ b/tools/javac_worker/src/build/please/compile/JavaCompiler.java
@@ -81,6 +81,14 @@ public BuildResponse build(BuildRequest request) throws IOException {
         }
     }
 
+    /**
+     * newCompiler creates a new compiler instance.
+     * This is added to allow subclasses to define their own compiler supplier (e.g. ErrorProne).
+     */
+    public javax.tools.JavaCompiler newCompiler() {
+        return ToolProvider.getSystemJavaCompiler();
+    }
+
     private BuildResponse reallyBuild(BuildRequest request) throws IOException {
         BuildResponse.Builder builder = BuildResponse.newBuilder();
         // Try to create the output directory
@@ -95,7 +103,7 @@ private BuildResponse reallyBuild(BuildRequest request) throws IOException {
         String tmpDir = request.getTempDir() + "/_tmp";
         DiagnosticReporter reporter = new DiagnosticReporter(builder);
         StringWriter writer = new StringWriter();
-        javax.tools.JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
+        javax.tools.JavaCompiler compiler = newCompiler();
         StandardJavaFileManager fileManager = compiler.getStandardFileManager(reporter, null, null);
         ArrayList<String> srcs = new ArrayList<String>();
         for (String src : request.getSrcsList()) {