diff --git a/CHANGELOG.md b/CHANGELOG.md
index fe156cc..afca8d7 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,200 @@
+## Release 0.23.2 (2019-03-11)
+
+```
+Baseline: 441fd75d0047f8a998d784c557736ab9075db893
+
+Cherry picks:
+
+   + 6ca7763669728253606578a56a205bca3ea883e9:
+     Fix a typo
+   + 2310b1c2c8b2f32db238f667747e7d5672480f4a:
+     Ignore SIGCHLD in test setup script
+   + f9eb1b56706f91063e9d080b850fa56964e77324:
+     Complete channel initialization in the event loop
+   + f0a1597cca2252754daf1d53ff76cf1a9b3dd9b9:
+     remote: properly reset state when using remote cache. Fixes #7555
+   + 56366ee3a73e2c92b2fa36a9840478202b9618ca:
+     Set non-empty values for msvc_env_* when VC not installed
+```
+
+Release 0.23.2
+
+## Release 0.23.1 (2019-03-04)
+
+```
+Baseline: 441fd75d0047f8a998d784c557736ab9075db893
+
+Cherry picks:
+
+   + 6ca7763669728253606578a56a205bca3ea883e9:
+     Fix a typo
+   + 2310b1c2c8b2f32db238f667747e7d5672480f4a:
+     Ignore SIGCHLD in test setup script
+   + f9eb1b56706f91063e9d080b850fa56964e77324:
+     Complete channel initialization in the event loop
+   + f0a1597cca2252754daf1d53ff76cf1a9b3dd9b9:
+     remote: properly reset state when using remote cache. Fixes #7555
+```
+
+Release 0.23.1rc1 (2019-02-28)
+
+## Release 0.23.0 (2019-02-26)
+
+```
+Baseline: 441fd75d0047f8a998d784c557736ab9075db893
+
+Cherry picks:
+
+   + 6ca7763669728253606578a56a205bca3ea883e9:
+     Fix a typo
+   + 2310b1c2c8b2f32db238f667747e7d5672480f4a:
+     Ignore SIGCHLD in test setup script
+   + f9eb1b56706f91063e9d080b850fa56964e77324:
+     Complete channel initialization in the event loop
+```
+
+Incompatible changes:
+
+  - //src:bazel uses the minimal embedded JDK, if you want to
+    avoid the extra steps of minimizing the JDK, use //src:bazel-dev
+    instead.
+  - //src:bazel uses the minimal embedded JDK, if you want to
+    avoid the extra steps of building bazel with the minimized JDK,
+    use //src:bazel-dev
+    instead.
+  - The default value of --host_platform and --platforms will be
+      changed to not be dependent on the configuration. This means
+    that setting
+      --cpu or --host_cpu will not affect the target or host platform.
+  - Toolchain resolution for cc rules is now enabled via an
+    incompatible flag, --incompatible_enable_cc_toolchain_resolution.
+    The previous
+    flag, --enabled_toolchain_types, is deprecated and will be
+    removed.
+  - java_(mutable_|)proto_library: removed strict_deps attribute.
+  - Python rules will soon reject the legacy "py" struct provider
+    (preview by enabling --incompatible_disallow_legacy_py_provider).
+    Upgrade rules to use PyInfo instead. See
+    [#7298](https://github.com/bazelbuild/bazel/issues/7298).
+  - java_(mutable_|)proto_library: removed strict_deps attribute.
+  - Two changes to native Python rules: 1) `default_python_version`
+    and `--force_python` are deprecated; use `python_version` and
+    `--python_version` respectively instead. You can preview the
+    removal of the deprecated names with
+    --incompatible_remove_old_python_version_api. See
+    [#7308](https://github.com/bazelbuild/bazel/issues/7308). 2) The
+    version flag will no longer override the declared version of a
+    `py_binary` or `py_test` target. You can preview this new
+    behavior with --incompatible_allow_python_version_transitions.
+    See [#7307](https://github.com/bazelbuild/bazel/issues/7307).
+
+Important changes:
+
+  - There is a new flag available
+    `--experimental_java_common_create_provider_enabled_packages`
+    that acts as a whitelist for usages of
+    `java_common.create_provider`. The constructor will be deprecated
+    in Bazel 0.23.
+  - [#7024] Allow chaining of the same function type in aquery.
+  - Introduces --local_{ram,cpu}_resources, which will take the place
+    of --local_resources.
+  - [#6930] Add documentation for the aquery command.
+  - Incompatible flag `--incompatible_dont_emit_static_libgcc` has
+    been flipped (https://github.com/bazelbuild/bazel/issues/6825)
+  - Incompatible flag `--incompatible_linkopts_in_user_link_flags`
+    has been flipped (https://github.com/bazelbuild/bazel/issues/6826)
+  - Flag --incompatible_range_type is removed.
+  - Flag --incompatible_disallow_slash_operator is removed.
+  - Flag --incompatible_disallow_conflicting_providers is removed.
+  - `--incompatible_disallow_data_transition` is now enabled by
+    default
+  - Allow inclusion of param files in aquery output
+  - [#6985] Add test to verify aquery's behavior for Cpp action
+    templates.
+  - --incompatible_require_feature_configuration_for_pic was flipped
+    (https://github.com/bazelbuild/bazel/issues/7007).
+  - Also ignore module-info.class in multi-version Jars
+  - objc_framework has been deleted. Please refer to
+    apple_dynamic_framework_import and apple_static_framework_import
+    rules available in
+    [rules_apple](https://github.com/bazelbuild/rules_apple/blob/maste
+    r/doc/rules-general.md)
+  - --test_sharding_strategy=experimental_heuristic is no more
+  - objc_bundle_library has been removed. Please migrate to
+    rules_apple's
+    [apple_resource_bundle](https://github.com/bazelbuild/rules_apple/
+    blob/master/doc/rules-resources.md#apple_resource_bundle).
+  - You can now use the attribute `aapt_version` or the flag
+    `--android_aapt` to pick the aapt version for android_local_test
+    tests
+  - In --keep_going mode, Bazel now correctly returns a non-zero exit
+    code when encountering a package loading error during target
+    pattern parsing of patterns like "//foo:all" and "//foo/...".
+  - The default value for --incompatible_strict_action_env has been
+    flipped to 'false' again, as we discovered breakages for local
+    execution users. We'll need some more time to figure out the best
+    way to make this work for local and remote execution. Follow
+    https://github.com/bazelbuild/bazel/issues/7026 for more details.
+  - Locally-executed spawns tagged "no-cache" no longer upload their
+    outputs to the remote cache.
+  - Introduces --host_compiler flag to allow setting a compiler for
+    host compilation when --host_crosstool_top is specified.
+  - --incompatible_expand_directories is enabled by default
+  - [aquery] Handle the case of aspect-on-aspect.
+  - Fixed a longstanding bug in the http remote cache where the value
+    passed to
+    --remote_timeout would be interpreted as milliseconds instead of
+    seconds.
+  - Enable --incompatible_use_jdk10_as_host_javabase by default, see
+    https://github.com/bazelbuild/bazel/issues/6661
+  - Add --incompatible_use_jdk11_as_host_javabase: makes JDK 11 the
+    default --host_javabase for remote jdk
+    (https://github.com/bazelbuild/bazel/issues/7219)
+  - Highlight TreeArtifact in aquery text output.
+  - Locally-executed spawns tagged "no-cache" no longer upload their
+    outputs to the remote cache.
+  - java_common APIs now accept JavaToolchainInfo and JavaRuntimeInfo
+    instead of configured targets for java_toolchain and java_runtime
+  - cc_common.create_cc_toolchain_config_info is stable and available
+    for production use
+  - incompatible_use_toolchain_providers_in_java_common: pass
+    JavaToolchainInfo and JavaRuntimeInfo providers to java_common
+    APIs instead of configured targets
+    (https://github.com/bazelbuild/bazel/issues/7186)
+  - --incompatible_strict_argument_ordering is enabled by default.
+  - Bazel now supports reading cache hits from a repository cache,
+    even if it doesn't have write access to the cache.
+  - Adding arm64e to OSX CROSSTOOL.
+  - Ignore package-level licenses on config_setting.
+  - Add an optional output_source_jar parameter to java_common.compile
+  - --incompatible_disable_objc_provider_resources is now enabled by
+    default. This disables ObjcProvider's fields related to resource
+    processing.
+  - Explicitly set https.protocols and exclude TLSv1.3.
+  - Bazel now validates that JAVA_HOME points to a valid JDK and
+    falls back to auto-detection by looking up the path of `javac`.
+  - Upgrade the embedded JDK version to 11.0.2.
+  - Added --incompatible_disable_crosstool_file
+    (https://github.com/bazelbuild/bazel/issues/7320)
+  - --incompatible_disable_objc_provider_resources is now enabled by
+    default. This disables ObjcProvider's fields related to resource
+    processing.
+  - --incompatible_disable_tools_defaults_package has been flipped.
+  - For tests that do not generate a test.xml, Bazel now uses a
+    separate action to generate one; this results in minor
+    differences in the generated test.xml, and makes the generation
+    more reliable overall.
+  - incompatible_generate_javacommon_source_jar: java_common.compile
+    now always generates a source jar, see
+    https://github.com/bazelbuild/bazel/issues/5824.
+  - New incompatible flag
+    --incompatible_disallow_struct_provider_syntax removes the
+    ability for rule implementation functions to return struct. Such
+    functions should return a list of providers instead. Migration
+    tracking: https://github.com/bazelbuild/bazel/issues/7347
+
+This release contains contributions from many people at Google, as well as Benjamin Peterson, Ed Schouten, erenon, George Gensure, Greg Estren, Igal Tabachnik, Ittai Zeidman, Jannis Andrija Schnitzer, John Millikin, Keith Smiley, Kelly Campbell, Max Vorobev, nicolov, Robin Nabel.
+
 ## Release 0.22.0 (2019-01-28)
 
 ```
