diff --git a/CHANGELOG.md b/CHANGELOG.md
index 71ac588..e5edd71 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,186 @@
+## Release 7.0.0-pre.20230710.5 (2023-07-28)
+
+```
+Baseline: 7845acae9769a72dc507dc2f57c4e032ebf429d3
+
+Cherry picks:
+
+   + d9e2f9181f8fa283e3986ee3b261e610c41cf61b:
+     Avoid overcounting in ActionLookupValueProgressReceiver.
+   + da23370dcdf6ea19545002fb86bd5d3e6519cdf6:
+     Fix crash for top level aspects on targets with non-idempotent
+     rule transitions.
+   + 4714cd70c83de43ba7ab10c29e63af716216770a:
+     Reuse the built set of tools in `SpawnAction.Builder`.
+   + 0a1d50533078283fab93024681c917303a91c46c:
+     Correctly handle symlinks when prefetching.
+```
+
+Initial release.
+
+## Release 6.3.0 (2023-07-24)
+
+```
+Baseline:  758b44dab552f31b378874b5bf4c0609bfef6f5d
+
+Release Notes:
+
++ Automatic code cleanup. (#18417)
++ Update CODEOWNERS for 6.3.0 (#18369)
++ Overrides specified by non-root modules no longer cause an error, and are silently ignored instead. They were originally treated as an error to allow for the future possibility of overrides in the transitive dependency graph working together; but we've deemed that infeasible (and even if it was, it'd be so complicated and confusing to users that it would not be a good addition). (#18388)
++ Add implementation deps support for Objective-C (#18372)
++ Update release notes scripts (#18400)
++ Prevent CredentialHelperEnvironment crash when invoking Bazel outside of a workspace. (#18430)
++ Use wall-time for credential helper invalidation (#18413)
++ blaze_util_posix: handle killpg failures (#18403)
++ Pass version to java_runtimes created by local_java_repository (#18415)
++ Add jsonproto option to query --output flag (#18438)
++ Don't eagerly flatten a `NestedSet` in `RepoMappingManifestAction` (#18419)
++ rules_go & rules_python are failing in Downstream CI with Bazel@HEAD (#18447)
++ Move credential helper setup into remote_helpers.sh so it can be reused by other shell tests. (#18453)
++ Wire credential helper to repository fetching. (#18429)
++ Updates/fixes to relnotes script (#18470)
++ Report percentual download progress in repository rules (#18471)
++ Support remote symlink outputs when building without the bytes. (#18476)
++ Enrich local BEP upload errors with file path and digest possible. (#18481)
++ Set `GTEST_SHARD_STATUS_FILE` in test setup (#18482)
++ Fix relnotes script (#18491)
++ Fix Xcode 14.3 compatibility (#18490)
++ Fix https://github.com/bazelbuild/bazel/issues/18493. (#18514)
++ Extend the credential helper default timeout to 10s. (#18527)
++ Fix formatting of release notes (#18534)
++ Use extension rather than local names in ModuleExtensionMetadata (#18536)
++ [credentialhelper] Ignore all errors when writing stdin (#18540)
++ Improve error on invalid `-//foo` and `-@repo//foo` options (#18516)
++ Implement failure circuit breaker (#18541)
++ Actually check `TEST_SHARD_STATUS_FILE` has been touched (#18418)
++ Ignore hash string casing (#18414)
++ Error if repository name isn't supplied (#18425)
++ Track repo rule label attributes after the first non-existent one (#18412)
++ Add ServerCapabilities into RemoteExecutionClient (#18442)
++ RemoteExecutionService: support output_symlinks in ActionResult (#18441)
++ RemoteExecutionService: Action.Command to set output_paths (#18440)
++ Use local_termination_grace_seconds when testing LinuxSandbox availability (#18568)
++ Fix dangling string literal in `extension_metadata` docs (#18598)
++ Include actual MODULE.bazel location in stack traces (#18612)
++ Make cpp file extensions case sensitive again (#18552)
++ Fix error when script is run after the final tag is created. (#18638)
++ Fix WORKSPACE toolchain resolution with `--enable_bzlmod` (#18649)
++ Add `ActionExecutionMetadata` as a parameter to `ActionInputPrefetcher#prefetchFiles`. (#18656)
++ Use failure_rate instead of failure count for circuit breaker  (#18559)
++ Update ignored_error logic for circuit_breaker (#18662)
++ Don't rewind the build if invocation id stays the same (#18670)
++ Fix potential memory leak in UI (#18659)
++ Test that a credential helper can supply credentials for bzlmod. (#18663)
++ Add flag --experimental_collect_code_coverage_for_generated_files. (#18664)
++ Options specified on the pseudo-command `common` in `.rc` files are now ignored by commands that do not support them as long as they are valid options for *any* Bazel command. Previously, commands that did not support all options given for `common` would fail to run. These previous semantics of `common` are now available via the new `always` pseudo-command. Closes #18130. (#18609)
++ Fix split post-processing of LLVM-based coverage (#18737)
++ Allow module extension usages to be isolated (#18727)
++ BEGIN_PUBLIC (#18729)
++ Declare credential helpers to be a stable feature. (#18752)
++ Add a new provider for injecting native libs in android_binary (#18753)
++ Properly handle invalid credential files (#18779)
++ The REPO.bazel and MODULE.bazel files are now also considered workspace boundary markers. (#18787)
++ Report remote execution messages as events (#18780)
++ Fail on isolated extension usages without imports (#18793)
++ Add changes to cc_shared_library from head to 6.3 (#18606)
++ Remove option to disable FJP. (#18791)
++ Update to latest turbine version (#18803)
++ None. None (#18808)
++ Wait for outputs downloads before emitting local BEP events that reference these outputs. (#18815)
++ Perform builtins injection for WORKSPACE-loaded bzl files. (#18819)
++ Fix non-declared symlink issue for local actions when BwoB. (#18817)
++ Make grep_includes optional inside cc_common.register_linkstamp_compile_action (#18823)
++ add feature on windows toolchain with right tag (#18654)
++ coverage_common.instrumented_files_info now has a metadata_files argument (#18838)
++ Download directory output for test actions (#18846)
++ Teach DexMapper to not separate synthetic classes from their context … (#18853)
++ **[Incompatible]** query --output=proto --order_output=deps now returns targets in topological order (previously there was no ordering). (#18870)
++ Revert "Don't eagerly flatten a `NestedSet` in `RepoMappingManifestAction` (#18419)" (#18886)
++ Additional source inputs can now be specified for compilation in cc_library targets using the additional_compiler_inputs attribute, and these inputs can be used in the $(location) function. Fixes #18766. (#18882)
++ Open-source Google test `ConvenienceSymlinkTest` (#18890)
++ Update Error Prone to 2.20.0 (#18885)
++ Check if json.gz files exist, not the gcov version. (#18889)
++ Lockfile updates (#18894)
++ handle exception instead of crashing (#18895)
++ Add a new provider for passing dex related artifacts in android_binary (#18899)
++ Prevent most side effects of yanked modules (#18908)
++ Restore the classic desugar tool in the Bazel 6.3.0 branch so that the Bazel Android tools can be built for 6.3.0 without breaking backwards compatibility (#18909)
++ Update java_tools to v12.5 (#18868)
++ Add ActionCacheStatistics to BEP (#18914)
++ Adjust --top_level_targets_for_symlinks (#18916)
++ Track dev/non-dev `use_extension` calls (#18918)
++ Overrides specified by non-root modules no longer cause an error, and are silently ignored instead. They were originally treated as an error to allow for the future possibility of overrides in the transitive dependency graph working together; but we've deemed that infeasible (and even if it was, it'd be so complicated and confusing to users that it would not be a good addition). (#18921)
++ Rollforward of https://github.com/bazelbuild/bazel/commit/482d2be27ab… (#18773)
++ Update Android tools to 0.27.2 for fixes to DexMapper for https://gith... (#18891)
++ Report dev/non-dev deps imported via non-dev/dev usages (#18922)
++ Add reverted 'isolate' changes (#18928)
++ Identify isolated extensions by exported name (#18923)
++ test-setup.sh: Attempt to raise the original signal once more (#18932)
++ Ignore broken classic desugar tests (#18933)
++ Disable UseCorrectAssertInTests by default (#18948)
++ Fix VS 2022 autodetection (#18960)
++ Fix absolute file paths showing up in lockfiles (#18993)
++ Add support for isolated extension usages to the lockfile (#19008)
+
+Acknowledgements:
+
+This release contains contributions from many people at Google, as well as amishra-u, Andreas Herrmann, Andy Hamon, andyrinne12, Benjamin Lee, Benjamin Peterson, Brentley Jones, Chirag Ramani, Christopher Rydell, Daniel Wagner-Hall, Ed Schouten, Fabian Brandstetter, Fabian Meumertzheim, Greg, Ivan Golub, Jon Landis, JY Lin, Kai Zhang, Keith Smiley, kotlaja, lripoche, oquenchil, Pavan Singh, Rasrack, Son Luong Ngoc, Takeo Sawada, Vertexwahn, Xùdōng Yáng, Yannic.
+```
+
+## Release 7.0.0-pre.20230628.2 (2023-07-12)
+
+```
+Baseline: 604a9ef6332d49110d14d427317bd726225fff1d
+
+Cherry picks:
+
+   + 15c412eb9aa38e1b81f7dd2047849bbb55417a83:
+     Automated rollback of commit
+     52dbdc7a92cedfa212ef681f88e0b733cb5280e0.
+   + 990d97e576d4ec7d0c45f3efa5732171492d50b1:
+     Automated rollback of commit
+     0bda661e589ded1caad9edd58c9bebc3f647e41d.
+   + 6c393ec5539b34e9708b43b0145488b9df1c0878:
+     Add temporary rules_go bazel_dep to restore CI
+```
+
+Incompatible changes:
+
+  - Loading `.bzl` files under `@bazel_tools//tools/jdk` in WORKSPACE
+    now requires `rules_java` to be defined in advance.
+  - cc_binary targets with dynamic_deps attributes no longer link
+    indirect dynamic_deps on Unix. This might be an incompatible
+    change if you are using RUNPATHs (instead of RPATHs) in your
+    cc_shared_libraries. Enable the feature
+    "exclude_bazel_rpaths_in_transitive_libs" or
+    "use_rpath_instead_of_runpath" for those cc_shared_libraries.
+
+Important changes:
+
+  - Add aquery --output=streamed_proto which writes a stream of
+    length delimited ActionGraphContainer containing a single
+    Artifact, Action, Target, DepSetOfFiles, Configuration,
+    AspectDescriptor, RuleClass, PathFragment proto. This breaks up
+    the ActionGraphContainer into multiple which will prevent large
+    protos from crashing blaze.
+  - (BEP) TargetConfigured events will be marked aborted instead
+    of published when there is an analysis error. This is motivated
+    by a
+    low level Blaze change aimed at improving scalability.
+  - Add flag --experimental_collect_code_coverage_for_generated_files.
+  - Added a new output format for cquery --output=streamed_proto that
+    writes multiple length-delimited CqueryResult protos, each
+    containing a single ConfiguredTarget or Configuration. This
+    allows us to "bypass" the hard limit of 2GB on the size of
+    protocol buffers by splitting it up into multiple.
+  - Enable starlark_doc_extract - a native rule for Starlark
+    documentation
+    extraction. This rule is intended mainly for internal use by
+    Stardoc.
+
+This release contains contributions from many people at Google, as well as Anshuman Mishra, Benjamin Peterson, Benjamin Peterson, Daniel Wagner-Hall, Fabian Meumertzheim, Jay Conrod, Maksim, Rasrack, Sam Shadwell, Son Luong Ngoc, Takeo Sawada, Tyler Williams, Xavier Bonaventura, Yannic, Yuval Kaplan.
+
 ## Release 7.0.0-pre.20230530.3 (2023-06-09)
 
 ```
