<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">

<channel>
  <title>Bazel Blog</title>
  <link>http://blog.bazel.build</link>
  <description>Fast, correct builds.</description>
  
    <item>
      <title>Bazel Q1 2026 Community Update</title>
      <link>/2026/04/08/bazel-q1-2026-community-update.html</link>
      <description>&lt;h2&gt;Announcements&lt;/h2&gt;

&lt;p&gt;&lt;img src=&quot;/assets/BazelCon 2026 banner.png&quot;/&gt;&lt;/p&gt;

&lt;h3&gt;Mark Your Calendars: BazelCon 2026 is Heading to Amsterdam!&lt;/h3&gt;

&lt;p&gt;Get ready to build at scale in the heart of Europe. We are thrilled to announce that &lt;strong&gt;BazelCon 2026&lt;/strong&gt; will be taking place in the vibrant city of &lt;strong&gt;Amsterdam from October 13th–15th&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Whether you’re a seasoned build engineer or just starting your journey with monorepos and hermeticity, this is the place to be. Expect three days of deep-dive technical sessions, hands-on workshops, and the chance to connect with the global community of maintainers and power users.&lt;/p&gt;

&lt;p&gt;The Details at a Glance:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;em&gt;What:&lt;/em&gt; BazelCon 2026&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;em&gt;Where:&lt;/em&gt; Postillion Hotel &amp;amp; Convention Centre Amsterdam, Netherlands&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;em&gt;When:&lt;/em&gt; October 13–15, 2026 &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;October 13th - Training Day&lt;/li&gt;
&lt;li&gt;October 14th &amp;amp; 15th - 2 Conference days filled with technical sessions, Birds of a Feather and networking with the best in the field.&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Registration opens April 22nd - register via the &lt;a href=&quot;https://events.linuxfoundation.org/bazelcon/&quot;&gt;BazelCon website&lt;/a&gt;!&lt;/p&gt;

&lt;p&gt;For the most up to date BazelCon news and updates, follow the &lt;a href=&quot;https://x.com/bazelbuild&quot;&gt;Bazel X account&lt;/a&gt; and the &lt;a href=&quot;https://bazelbuild.slack.com/archives/CDAGD8TGR&quot;&gt;#bazelcon&lt;/a&gt; Bazel Slack channel. &lt;/p&gt;

&lt;h3&gt;Call for Proposals&lt;/h3&gt;

&lt;p&gt;Do you have a Bazel story to tell? We want to hear how you&amp;#39;re using Bazel to solve complex problems, whether you’re optimizing massive monorepos or building custom rules for your team. Sharing your real-world wins and lessons learned helps the entire community grow, so don&amp;#39;t hesitate to submit a proposal regardless of your experience level.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;CFP Opens: April 22&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;CFP Closes: June 21&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Review Period: June 22 – July 8&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Speaker Notifications: July 20&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Schedule Announcement: July 22&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The CfP submission form will be available via the &lt;a href=&quot;https://events.linuxfoundation.org/bazelcon/&quot;&gt;BazelCon website&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;Want to become a Sponsor of BazelCon 2026?&lt;/h3&gt;

&lt;p&gt;Hosted by the Bazel Community in partnership with The Linux Foundation, BazelCon is the premier annual event for build enthusiasts, maintainers, and contributors to connect in an inclusive environment.&lt;/p&gt;

&lt;p&gt;Sponsoring BazelCon 2026 puts your company right in front of the best build and platform engineers in the business. It is a great way to show your support for the community, meet key decision-makers, and find top talent to join your team. By becoming a partner, you help make the event possible while making sure the smartest people in tech know exactly who you are.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://events.linuxfoundation.org/bazelcon/sponsor/&quot;&gt;Download the 2026 Sponsorship Prospectus Here.&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Email us at bazelcon-planning@bazel.build to reserve your sponsorship, ask questions, or talk about different options.&lt;/p&gt;

&lt;h2&gt;Product Updates&lt;/h2&gt;

&lt;h3&gt;Upcoming Bazel releases&lt;/h3&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/bazelbuild/bazel/issues/28365&quot;&gt;Bazel 9.1.0&lt;/a&gt; is expected to release on on 2026-04-16. Please send cherry-pick PRs against the &lt;a href=&quot;https://github.com/bazelbuild/bazel/tree/release-9.1.0&quot;&gt;release-9.1.0&lt;/a&gt; branch before the RC1 cutoff on 2026-04-09.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/bazelbuild/bazel/issues/28821&quot;&gt;Bazel 8.7.0&lt;/a&gt; is expected to release on 2026-05-04. Please send cherry-pick PRs against the &lt;a href=&quot;https://github.com/bazelbuild/bazel/tree/release-8.7.0&quot;&gt;release-8.7.0&lt;/a&gt; branch before the RC1 cutoff on 2026-04-27.&lt;/p&gt;

&lt;h3&gt;Q4 &amp;amp; Q1 releases&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/bazelbuild/bazel/releases/tag/9.0.0&quot;&gt;9.0.0&lt;/a&gt; has been released in January ‘26, followed by patch &lt;a href=&quot;https://github.com/bazelbuild/bazel/releases/tag/9.0.1&quot;&gt;9.0.1&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/bazelbuild/bazel/releases/tag/8.6.0&quot;&gt;8.6.0&lt;/a&gt; has been released in February ‘26.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/bazelbuild/bazel/releases/tag/8.5.0&quot;&gt;8.5.0&lt;/a&gt; has been released in December ‘25, followed by patch &lt;a href=&quot;https://github.com/bazelbuild/bazel/releases/tag/8.5.1&quot;&gt;8.5.1&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/bazelbuild/bazel/releases/tag/7.7.0&quot;&gt;7.7.0&lt;/a&gt; has been released in October ‘25, followed by patch &lt;a href=&quot;https://github.com/bazelbuild/bazel/releases/tag/7.7.1&quot;&gt;7.7.1&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/bazelbuild/bazel/releases/tag/6.6.0&quot;&gt;6.6.0&lt;/a&gt; has been released in January ‘26. This release has also marked the end of support for Bazel 6.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;Community Corner&lt;/h2&gt;

&lt;h3&gt;Bazel for CLion plugin updates&lt;/h3&gt;

&lt;p&gt;A few updates from the JetBrains* team:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Plugin supports Bazel 9 and comes now with Starlark REPL.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;C++ code insight under transitions is being rolled out. CLion Classic lets the user select resolve configuration for such files if more than one configuration is available, CLion Nova support for configuration switching is on the way.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;GoogleTest TEST_P macro is supported for individual test runs.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Code insight takes into account conlyopts and cxxopts attributes.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;New PTY capable view is enabled by default for all outputs.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;BUILD Foundation&lt;/h3&gt;

&lt;p&gt;Announced at BazelCon 2025, the BUILD Foundation has been established as a Linux Foundation Directed Fund to accelerate the community roadmap for Bazel and related build technologies. While Google maintains governance of the core Bazel &amp;quot;kernel,&amp;quot; the new fiscal entity provides a formal structure to fund improved documentation, rulesets, and open-source infrastructure.&lt;/p&gt;

&lt;p&gt;The BUILD Foundation is now enrolling founding members.&lt;/p&gt;

&lt;p&gt;Read the &lt;a href=&quot;https://docs.google.com/presentation/d/14Yjm4gghabys0WrHgTNPlsaUmEWrgrSS_IEe2FJTzQ4/preview&quot;&gt;Prospectus and Membership Entitlements&lt;/a&gt; to learn more about the values of becoming a member.&lt;/p&gt;

&lt;h3&gt;Web Updates: Previews for the BCR and Bazel.build&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;A New Look for the BCR:&lt;/strong&gt; The community is working together on a more modern way to explore the Registry. Head over to &lt;a href=&quot;https://bcr.stack.build/&quot;&gt;bcr.stack.build&lt;/a&gt; to see the new UI in action and see how the ecosystem is evolving.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Evolving Bazel.build:&lt;/strong&gt; Thanks to a collaborative effort, the next version of our homepage is taking shape. Visit &lt;a href=&quot;https://preview.bazel.build/&quot;&gt;preview.bazel.build&lt;/a&gt; to see how we’re making documentation and resources easier for everyone to navigate.&lt;/p&gt;

&lt;h3&gt;Upcoming Meetup.build events&lt;/h3&gt;

&lt;p&gt;&lt;a href=&quot;https://meetup.build/munich-2026&quot;&gt;Build Meetup Munich&lt;/a&gt; - May 11, 2026&lt;/p&gt;

&lt;h3&gt;Community created content&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Articles&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://plaid.com/blog/hello-bazel/&quot;&gt;Goodbye Dockerfile, Hello Bazel: Doubling Our CI Speed &lt;/a&gt; - by Nikita Chepanov and Oleg Dashevskii at Plaid&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://plaid.com/blog/merge-queue/&quot;&gt;Build less, merge faster: avoiding diamond merges with a merge queue &lt;/a&gt; - by Nikita Chepanov and Oleg Dashevskii at Plaid&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://pratikmahalle.medium.com/bazel-9-migration-how-to-get-faster-builds-before-the-bzlmod-refactor-d9591cd4f0fb&quot;&gt;Bazel 9 Migration: How to Get Faster Builds Before the Bzlmod Refactor&lt;/a&gt; - by Pratik Mahalle&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://blog.aspect.build/bazel-for-sonic&quot;&gt;Bazel for SONiC: What We&amp;#39;ve Learned and Contributed&lt;/a&gt; - by Şahin Yort&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://adincebic.com/2026/03/08/managing-bazel-flags-in-monorepos.html&quot;&gt;Managing Bazel Flags in Monorepos with Flagsets (PROJECT.scl) &lt;/a&gt; - by Adin Ćebić&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://adincebic.com/2026/03/01/composing-bazel-rules-with-subrules.html&quot;&gt;Composing Bazel rules with subrules&lt;/a&gt; - by Adin Ćebić&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://blog.engflow.com/2025/11/25/lightning-fast-build-file-generation-with-gazelle-lazy-indexing/&quot;&gt;Lightning-fast BUILD file generation with Gazelle lazy indexing&lt;/a&gt; - by Jay Conrod @EngFlow&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.smileykeith.com/2025/10/31/bazel-rule-extensions/&quot;&gt;Bazel rule extensions&lt;/a&gt; - by Keith Smiley&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://deepinthebuild.github.io/changed-targets-tricks&quot;&gt;Build Snippets #1 - Affected Target Analysis with Bazel&lt;/a&gt; - by Chris McDonald&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.tweag.io/blog/2025-11-20-migrating-bazel-symbolic-macros/&quot;&gt;Migrating to Bazel symbolic macros &lt;/a&gt; - by Alexey Tereshenkov @Tweag&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Videos&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=QJUTeD43QlE&quot;&gt;Bazel 9 is here! &lt;/a&gt; - by Aspect Build&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=NaeXpna0avo&quot;&gt;Tutorial: Set up Gazelle to automatically create your Bazel BUILD files &lt;/a&gt; - &amp;amp; other beginner friendly videos by Jon Block &lt;a href=&quot;https://www.youtube.com/playlist?list=PLIb3cp7HaQiRqGI4P85X9Oko5uQNfNkVS&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=glJek6y-iQg&quot;&gt;Bazel and Rust at OpenAI with David Zbarsky&lt;/a&gt; - by Aspect Build&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://fosdem.org/2026/schedule/event/F8SDAA-zero-sysroot_hermetic_llvm_cross-compilation_using_bazel/&quot;&gt;Zero-sysroot hermetic LLVM cross-compilation using Bazel&lt;/a&gt; - FOSDEM talk by David Zbarsky and Corentin Kerisit&lt;/p&gt;

&lt;h2&gt;Resources&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;GitHub repository: &lt;a href=&quot;https://github.com/bazelbuild/bazel&quot;&gt;https://github.com/bazelbuild/bazel&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Releases: &lt;a href=&quot;https://github.com/bazelbuild/bazel/releases&quot;&gt;https://github.com/bazelbuild/bazel/releases&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Slack chat: &lt;a href=&quot;https://slack.bazel.build&quot;&gt;https://slack.bazel.build&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Google group: bazel-discuss@googlegroups.com&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Special Interest Groups (SIG):&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Reach out the email(s) listed below if you’d like to be added to the SIG calendar invites.&lt;/p&gt;

&lt;table&gt;&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;strong&gt;SIG&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Meeting frequency&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Point of contact&lt;/strong&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://github.com/bazelbuild/community/tree/main/sigs/rules-authors&quot;&gt;Rules authors&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Every two weeks&lt;/td&gt;
&lt;td&gt;bazel-contrib@googlegroups.com&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://docs.google.com/document/d/1Sv227BguEekx5Q3lwSdPEQqpkHAng6J6gNCNZqJLbtw/edit?resourcekey=0-GK_iaQRAEAu3aYslzlrEfQ&amp;tab=t.0#heading=h.dzj8kjjzgp3s&quot;&gt;Android app development&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Monthly&lt;/td&gt;
&lt;td&gt;ahumesky@google.com&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://github.com/bazelbuild/community/tree/main/sigs/bazel-intellij&quot;&gt;Bazel plugin for IntelliJ&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Monthly&lt;/td&gt;
&lt;td&gt;en@jetbrains.com&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://docs.google.com/document/d/1EtQMTn-7sKFMTxIMlb0oDGpvGCMAuzphVcfx58GWuEM/edit?tab=t.0#heading=h.ol6wthckmbcw&quot;&gt;Remote execution API working group&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Monthly&lt;/td&gt;
&lt;td&gt;chiwang@google.com&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://docs.google.com/document/d/1WhScaOLERet4Fxi4fa2Lpke2MgJZGvEE4EXeq6yb0LU/edit?usp=sharing&quot;&gt;Supply chain security / SBOM&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Weekly&lt;/td&gt;
&lt;td&gt;fwe@google.com&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;

&lt;p&gt;Interested in learning about SIGs or starting a new one? Find more information on our &lt;a href=&quot;https://bazel.build/community/sig&quot;&gt;website&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Want to get your SIG listed? Please add it to the &lt;a href=&quot;https://github.com/bazelbuild/community/tree/main/sigs&quot;&gt;Community repository&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;Ideas, feedback, and submissions are welcome!&lt;/h2&gt;

&lt;p&gt;Thank you for reading this edition! Let us know if you’d like to see any new information or changes in future community updates by reaching out to product@bazel.build. We look forward to hearing from you.&lt;/p&gt;

&lt;p&gt;Thanks,&lt;/p&gt;

&lt;p&gt;Google Bazel team&lt;/p&gt;

&lt;p&gt;*&lt;em&gt;Copyright © 2026 JetBrains s.r.o. JetBrains and IntelliJ are registered trademarks of JetBrains s.r.o.&lt;/em&gt;&lt;/p&gt;
</description>
      <pubDate>Wed, 08 Apr 2026 00:00:00 +0000</pubDate>
    </item>
  
    <item>
      <title>Dependabot Now Supports Bazel Version Updates</title>
      <link>/2026/02/20/dependabot.html</link>
      <description>&lt;p&gt;We&amp;#39;re thrilled to announce Bazel support in Dependabot Version Updates! 🎉 Through a collaboration between the Bazel and Dependabot teams, along with feedback from both communities, Dependabot now handles both Bzlmod and WORKSPACE dependencies with proper lockfile generation.&lt;/p&gt;

&lt;h2&gt;The Journey to Bazel Support&lt;/h2&gt;

&lt;p&gt;Since 2019, the community has been asking for Bazel support in Dependabot (&lt;a href=&quot;https://github.com/dependabot/dependabot-core/issues/2196&quot;&gt;issue #2196&lt;/a&gt;). When the Dependabot team began building this, they reached out to the Bazel community in &lt;a href=&quot;https://github.com/bazelbuild/bazel/discussions/27142&quot;&gt;discussion #27142&lt;/a&gt; to understand what mattered most. The feedback was clear: proper lockfile generation is critical, &lt;code&gt;*.MODULE.bazel&lt;/code&gt; support is needed, and many teams are still on WORKSPACE. Even though WORKSPACE is approaching end-of-life, supporting it was the right call because that&amp;#39;s where many users still are today.&lt;/p&gt;

&lt;h2&gt;Why Bazel Support Is Challenging&lt;/h2&gt;

&lt;p&gt;Bazel presents unique challenges that make dependency management more complex than other ecosystems:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Two Dependency Systems:&lt;/strong&gt; Bazel has both the modern Bzlmod system (using MODULE.bazel files) and the legacy WORKSPACE system. Each works differently, and teams are at various stages of migration between them. Even though WORKSPACE is being phased out, community feedback showed many teams still rely on it. Support for both systems was essential.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Non-Trivial Lockfile Generation:&lt;/strong&gt; Bazel&amp;#39;s MODULE.bazel.lock files capture complex transitive dependency graphs including module extensions and repository rules, which goes beyond typical package manager lockfiles. Getting lockfile generation wrong breaks reproducible builds, so Dependabot worked closely with the Bazel community to ensure we got this right.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Community Migration in Progress:&lt;/strong&gt; While Bzlmod is the future (enabled by default in Bazel 8), a significant number of users still rely on WORKSPACE. Supporting both ensures users are met where they are.&lt;/p&gt;

&lt;h2&gt;Built in Partnership with Bazel&lt;/h2&gt;

&lt;p&gt;This feature came together through close collaboration between the Dependabot and Bazel teams and community:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Lockfile semantics:&lt;/strong&gt; Fabian Meumertzheim worked closely with the Dependabot team to ensure their lockfile generation matches Bazel&amp;#39;s behavior exactly&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Registry integration:&lt;/strong&gt; Understanding how to properly query and use the Bazel Central Registry&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Migration patterns:&lt;/strong&gt; The Bazel team shared insights into how real teams are moving from WORKSPACE to Bzlmod&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Testing and validation:&lt;/strong&gt; Yun Peng provided invaluable support and data to validate Dependabot&amp;#39;s implementation&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;File naming conventions:&lt;/strong&gt; Alex Eagle helped clarify the &lt;code&gt;*.MODULE.bazel&lt;/code&gt; pattern and other edge cases&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A big thank you to everyone in both communities who tested this and provided feedback. This wasn&amp;#39;t just us building a feature; it was a true partnership from start to finish.&lt;/p&gt;

&lt;h2&gt;How It Works&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Dependency Detection:&lt;/strong&gt; Dependabot scans your &lt;code&gt;MODULE.bazel&lt;/code&gt; and &lt;code&gt;*.MODULE.bazel&lt;/code&gt; files (or WORKSPACE) for dependencies and checks the Bazel Central Registry for updates.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Lock File Management:&lt;/strong&gt; When updating dependencies, Dependabot properly regenerates lock files to maintain reproducible builds, the most critical piece to get right.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pull Requests:&lt;/strong&gt; Dependabot opens PRs with updated dependency declarations, regenerated lock files, release notes, and compatibility information.&lt;/p&gt;

&lt;h2&gt;Getting Started&lt;/h2&gt;

&lt;p&gt;To enable Dependabot for your Bazel project, you&amp;#39;ll need:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Bazel Version:&lt;/strong&gt; Your project must be using Bazel 7, 8, or 9, as these are the supported versions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Project Configuration:&lt;/strong&gt; A MODULE.bazel or WORKSPACE file is required at the root of your repository.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Dependabot Integration:&lt;/strong&gt; Add the Dependabot configuration by creating a &lt;code&gt;.github/dependabot.yml&lt;/code&gt; file and including the necessary YAML configuration.&lt;/p&gt;
&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-yaml&quot; data-lang=&quot;yaml&quot;&gt;&lt;span class=&quot;l-Scalar-Plain&quot;&gt;updates&lt;/span&gt;&lt;span class=&quot;p-Indicator&quot;&gt;:&lt;/span&gt;
  &lt;span class=&quot;p-Indicator&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;l-Scalar-Plain&quot;&gt;package-ecosystem&lt;/span&gt;&lt;span class=&quot;p-Indicator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&amp;quot;bazel&amp;quot;&lt;/span&gt;
    &lt;span class=&quot;l-Scalar-Plain&quot;&gt;directory&lt;/span&gt;&lt;span class=&quot;p-Indicator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&amp;quot;/&amp;quot;&lt;/span&gt;
    &lt;span class=&quot;l-Scalar-Plain&quot;&gt;schedule&lt;/span&gt;&lt;span class=&quot;p-Indicator&quot;&gt;:&lt;/span&gt;
      &lt;span class=&quot;l-Scalar-Plain&quot;&gt;interval&lt;/span&gt;&lt;span class=&quot;p-Indicator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;s&quot;&gt;&amp;quot;weekly&amp;quot;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Customization (Optional):&lt;/strong&gt; All standard Dependabot configuration options are available, including custom schedules, grouped updates, and dependency ignores. See the &lt;a href=&quot;https://docs.github.com/en/code-security/dependabot/working-with-dependabot/dependabot-options-reference&quot;&gt;Dependabot options reference&lt;/a&gt; for details.&lt;/p&gt;

&lt;p&gt;Once configured, Dependabot will start watching your Bazel dependencies and opening PRs when updates are available.&lt;/p&gt;

&lt;h2&gt;Try It Out&lt;/h2&gt;

&lt;p&gt;Bazel support is now generally available to all Dependabot and Bazel users. Check out the &lt;a href=&quot;https://github.blog/changelog/2025-12-16-dependabot-version-updates-now-support-bazel/&quot;&gt;changelog&lt;/a&gt; on Github and &lt;a href=&quot;https://docs.github.com/en/code-security/tutorials/secure-your-dependencies/dependabot-quickstart-guide&quot;&gt;Dependabot&amp;#39;s documentation for getting started&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;We&amp;#39;re excited to see how this helps the Bazel community keep their dependencies secure and up-to-date. Open source is a team sport, and this feature is proof of what&amp;#39;s possible when teams work together across projects.&lt;/p&gt;
</description>
      <pubDate>Fri, 20 Feb 2026 00:00:00 +0000</pubDate>
    </item>
  
    <item>
      <title>Bazel 9 LTS</title>
      <link>/2026/01/20/bazel-9.html</link>
      <description>&lt;p&gt;We&amp;#39;re pleased to announce the release of Bazel 9.0! This LTS release is the culmination of some multi-year efforts to lay the groundwork for a healthier Bazel ecosystem, and we&amp;#39;re excited to see these efforts finally land. Read the &lt;a href=&quot;https://github.com/bazelbuild/bazel/releases/tag/9.0.0&quot;&gt;full release notes for Bazel 9.0&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;Highlights&lt;/h2&gt;

&lt;h3&gt;Bzlmod fully replaces WORKSPACE&lt;/h3&gt;

&lt;p&gt;Back in 2021, we introduced Bzlmod, a package manager for Bazel intended to replace the WORKSPACE system. In the past few years, Bzlmod has gained a lot of traction in the community, and has become the default external dependency management system in Bazel.&lt;/p&gt;

&lt;p&gt;In Bazel 8.0, we disabled the legacy WORKSPACE system by default; and in 9.0, we&amp;#39;ve completely removed the code supporting WORKSPACE. This enabled us to clear out age-old tech debt and implement some shiny new features with much greater ease, including a &lt;a href=&quot;https://bazel.build/versions/9.0.0/reference/command-line-reference#common_options-flag--repo_contents_cache&quot;&gt;local repo contents cache&lt;/a&gt; and an experimental &lt;a href=&quot;https://bazel.build/versions/9.0.0/reference/command-line-reference#startup_options-flag--experimental_remote_repo_contents_cache&quot;&gt;remote repo contents cache&lt;/a&gt; (thanks to Fabian Meumertzheim!).&lt;/p&gt;

&lt;p&gt;But we know the work isn&amp;#39;t over; migration is hard, and many users are still on the old WORKSPACE system. To help with migration, we&amp;#39;ve developed a &lt;a href=&quot;https://bazel.build/external/migration_tool&quot;&gt;Bzlmod migration tool&lt;/a&gt; and an &lt;a href=&quot;https://github.com/bazelbuild/bazel-central-registry/tree/main/tools/code-agent&quot;&gt;agent-driven migration setup&lt;/a&gt;. They won&amp;#39;t magically complete the migration for you, but will hopefully help you get started and continue to iterate.&lt;/p&gt;

&lt;h3&gt;Starlarkification has landed&lt;/h3&gt;

&lt;p&gt;Bazel started out with many language rulesets built in. These rules were written in Java and used private APIs, whereas custom rulesets were written in Starlark and used a more limited set of public APIs. To remove this inconsistency, further enable custom rulesets with more powerful APIs, and ease maintenance of the various rulesets, we started the Starlarkification effort, with the goal of moving built-in rulesets out of Bazel into their own modules written in Starlark.&lt;/p&gt;

&lt;p&gt;In Bazel 8.0, we moved most built-in rules into their own modules; and in 9.0, we&amp;#39;ve completed the migration with the removal of built-in C++ rules into &lt;code&gt;rules_cc&lt;/code&gt;. Bazel now ships with a lean core with rich APIs, and all previously built-in language-specific rulesets are now shipped separately and can be updated independently from a Bazel release. (A small number of language-specific flags, actions, and toolchain types remain in Bazel for now.)&lt;/p&gt;

&lt;p&gt;In 8.0, we introduced the &lt;code&gt;--incompatible_autoload_externally&lt;/code&gt; flag to ease migration. With this flag, previously built-in rulesets that are now external modules could still be used as if they were built-in. In 9.0, this flag is empty by default, which means that all rulesets have to be explicitly loaded from external modules. We will remove this flag in 10.0.&lt;/p&gt;

&lt;h3&gt;Prebuilt protobuf compiler&lt;/h3&gt;

&lt;p&gt;A long-standing &lt;a href=&quot;https://github.com/bazelbuild/bazel/issues/7095&quot;&gt;complaint&lt;/a&gt; among Bazel users is the need to frequently rebuild the protobuf compiler for seemingly no reason. In Bazel 9, the version of &lt;code&gt;protobuf&lt;/code&gt; used by all Bazel builds will be upgraded to at least version 33.4, which includes support for a prebuilt protobuf compiler. In most cases, users can simply set the &lt;code&gt;--@protobuf//bazel/toolchains:prefer_prebuilt_protoc&lt;/code&gt; flag to avoid having to build &lt;code&gt;protoc&lt;/code&gt; themselves.&lt;/p&gt;

&lt;p&gt;For more information, see the &lt;a href=&quot;https://protobuf.dev/news/2026-01-16/&quot;&gt;announcement&lt;/a&gt; on Protobuf News.&lt;/p&gt;

&lt;h2&gt;Adopting Bazel 9&lt;/h2&gt;

&lt;p&gt;As with every major release, Bazel 9 introduces incompatible changes. Most of these have been included in our &lt;a href=&quot;https://github.com/bazelbuild/bazel/releases/tag/9.0.0&quot;&gt;release notes&lt;/a&gt;. However, if you run into any difficulties while upgrading, we encourage you to visit the &lt;a href=&quot;https://github.com/bazelbuild/bazel/discussions/28344&quot;&gt;Bazel 9 migration&lt;/a&gt; GitHub discussion to ask for help or contribute your own fixes.&lt;/p&gt;

&lt;h2&gt;Bazel 6 deprecation&lt;/h2&gt;

&lt;p&gt;With the launch of Bazel 9, we&amp;#39;ll deprecate Bazel 6 according to our &lt;a href=&quot;https://bazel.build/release&quot;&gt;release model&lt;/a&gt;. We&amp;#39;ll no longer be backporting fixes for security and OS compatibility issues to 6.x.&lt;/p&gt;

&lt;p&gt;Thanks to community member Mike Bland, however, we were able to publish one last minor release (&lt;a href=&quot;https://github.com/bazelbuild/bazel/releases/tag/6.6.0&quot;&gt;6.6.0&lt;/a&gt;) to fix incompatibilities with macOS Tahoe. Thank you, Mike!&lt;/p&gt;

&lt;h2&gt;What&amp;#39;s next?&lt;/h2&gt;

&lt;p&gt;There&amp;#39;s plenty to look out for on the horizon:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;A new Bazel documentation site&lt;/strong&gt;: Community members Alan Mond and Alex Eagle have been working with the Bazel team to set up a new documentation site powered by Mintlify, following Alan&amp;#39;s amazing essay, &lt;em&gt;&lt;a href=&quot;https://alanmond.com/posts/bazel-documentation-improvements/&quot;&gt;Bazel Docs: Why It Might Be Time For A Refresh&lt;/a&gt;&lt;/em&gt;. The site is currently in preview mode at &lt;a href=&quot;https://preview.bazel.build/&quot;&gt;preview.bazel.build&lt;/a&gt;; we plan to eventually switch &lt;a href=&quot;https://bazel.build/&quot;&gt;bazel.build&lt;/a&gt; to this new website.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;A new web UI for Bazel Central Registry&lt;/strong&gt;: Community member Paul Johnston has developed a new web UI for the Bazel Central Registry, with a more powerful search, views of modules filtered by language and maintainers, and more. The site is currently in preview mode at &lt;a href=&quot;https://bcr.stack.build&quot;&gt;bcr.stack.build&lt;/a&gt;; we plan to eventually switch &lt;a href=&quot;https://registry.bazel.build&quot;&gt;registry.bazel.build&lt;/a&gt; to this new website. A special shoutout to community member Max Goisser, who created the original web UI for the BCR!&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Starlark typing&lt;/strong&gt;: Following feedback from the community, we have been designing and implementing a typing system for Starlark, aiming to help ruleset developers manage the growing complexity of Starlark code. We plan to ship this in Bazel 10.0. Follow the progress at &lt;a href=&quot;https://github.com/bazelbuild/bazel/issues/27370&quot;&gt;#27370&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And finally, a big thank-you to the entire Bazel community for your support. Whether it was filing issues, contributing code, or discussing ideas, every little bit helped to make Bazel 9 possible. We hope you&amp;#39;ll continue to participate and follow along through the usual channels: &lt;a href=&quot;https://github.com/bazelbuild/bazel/discussions&quot;&gt;GitHub Discussions&lt;/a&gt;, the &lt;a href=&quot;https://slack.bazel.build/&quot;&gt;Bazel Slack channel&lt;/a&gt;, &lt;a href=&quot;https://x.com/bazelbuild&quot;&gt;@bazelbuild on X (Twitter)&lt;/a&gt;, the &lt;a href=&quot;https://blog.bazel.build&quot;&gt;Bazel blog&lt;/a&gt;, and the &lt;a href=&quot;https://groups.google.com/g/bazel-discuss&quot;&gt;bazel-discuss&lt;/a&gt; mailing list. See you next time!&lt;/p&gt;
</description>
      <pubDate>Tue, 20 Jan 2026 00:00:00 +0000</pubDate>
    </item>
  
    <item>
      <title>Postmortem for *.bazel.build SSL certificate expiry</title>
      <link>/2026/01/16/ssl-cert-expiry.html</link>
      <description>&lt;p&gt;On 2025-12-26, at 07:35 UTC, the SSL certificates for many &lt;code&gt;*.bazel.build&lt;/code&gt; domains expired. This resulted in widespread build breakages for many Bazel users, as several crucial domains serve essential functionality used by nearly all Bazel builds. It was reported by users on &lt;a href=&quot;https://github.com/bazelbuild/bazel/issues/28101&quot;&gt;GitHub&lt;/a&gt;, &lt;a href=&quot;https://bazelbuild.slack.com/archives/CA31HN1T3/p1766739655375159&quot;&gt;Slack&lt;/a&gt;, and the &lt;a href=&quot;https://groups.google.com/g/bazel-discuss/c/pnxWzgE_UbU&quot;&gt;bazel-discuss&lt;/a&gt; mailing list. The outage lasted for approximately 13 hours before being resolved.&lt;/p&gt;

&lt;h2&gt;Impact&lt;/h2&gt;

&lt;p&gt;The majority of the impact was Bazel builds in CI environments breaking due to the following domains being inaccessible:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;releases.bazel.build&lt;/code&gt;: This domain hosts Bazel release binaries and serves as the primary source for Bazelisk to fetch specific versions of Bazel. The majority of builds failed immediately at this stage, as CI environments often don&amp;#39;t have a Bazel binary cached locally.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;bcr.bazel.build&lt;/code&gt;: This is the Bazel Central Registry (BCR), which serves metadata Bazel uses to resolve external dependencies. Access to the BCR is required unless the lockfile is up to date and the download cache is primed, the latter of which is often not set up for CI environments.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;mirror.bazel.build&lt;/code&gt;: This is a mirror that hosts copies of source archives for certain popular Bazel projects. Users who managed to work around the unavailability of the previous two domains could nevertheless be unable to build because of this mirror being down.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;Background&lt;/h2&gt;

&lt;p&gt;The Bazel team at Google operates a number of websites under the &lt;code&gt;bazel.build&lt;/code&gt; domain. These domains are backed by various underlying systems; for example, &lt;code&gt;bazel.build&lt;/code&gt; itself is currently hosted on the same backend that powers the &lt;a href=&quot;https://developers.google.com/&quot;&gt;Google Developers&lt;/a&gt; site, and &lt;code&gt;registry.bazel.build&lt;/code&gt; is currently hosted on GitHub Pages.&lt;/p&gt;

&lt;p&gt;Most other subdomains (including &lt;code&gt;releases&lt;/code&gt;, &lt;code&gt;bcr&lt;/code&gt;, and &lt;code&gt;mirror&lt;/code&gt;) are hosted on Google Cloud Platform (GCP). They each statically serve files from a Google Cloud Storage (GCS) bucket, and share a &lt;a href=&quot;https://docs.cloud.google.com/load-balancing/docs/ssl-certificates/google-managed-certs&quot;&gt;Compute Engine Google-managed SSL certificate&lt;/a&gt;. These are the subdomains impacted by the outage.&lt;/p&gt;

&lt;p&gt;A Google-managed SSL certificate is set up to cover a list of domains, and is valid for 90 days. About one month before expiry, an auto-renewal process triggers, which checks the validity of each of the domains it covers and provisions a renewed certificate. Crucially, &lt;em&gt;every&lt;/em&gt; domain needs to be reachable before the renewed certificate is provisioned.&lt;/p&gt;

&lt;h2&gt;Timeline of outage&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;All times are UTC unless otherwise noted.&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;On 2023-02-23, a new Google-managed SSL certificate was set up to cover all GCP-hosted &lt;code&gt;*.bazel.build&lt;/code&gt; domains, including &lt;code&gt;releases&lt;/code&gt;, &lt;code&gt;bcr&lt;/code&gt;, &lt;code&gt;mirror&lt;/code&gt;, and &lt;code&gt;docs-staging.bazel.build&lt;/code&gt;. The certificate then went on to auto-renew successfully for the next 2+ years.&lt;/li&gt;
&lt;li&gt;On 2025-10-30, a change was submitted to our DNS records to remove the &lt;code&gt;docs-staging.bazel.build&lt;/code&gt; subdomain, which was no longer used.&lt;/li&gt;
&lt;li&gt;Around 2025-11-26, the auto-renewal process for the Google-managed SSL certificate kicked off. This process went on to fail repeatedly due to &lt;code&gt;docs-staging.bazel.build&lt;/code&gt; no longer being accessible. However, these failures never triggered any notifications.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;[Outage start]&lt;/strong&gt; On 2025-12-26, at 07:35:39, the certificate expired. Affected Bazel builds immediately started failing.&lt;/li&gt;
&lt;li&gt;At 09:00, a user reported build breakages to the &lt;a href=&quot;https://bazelbuild.slack.com/archives/CA31HN1T3/p1766739655375159&quot;&gt;Bazel Slack server&lt;/a&gt;. At 09:01, a user filed an issue on &lt;a href=&quot;https://github.com/bazelbuild/bazel/issues/28101&quot;&gt;Bazel&amp;#39;s GitHub repo&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;At 12:15, a Bazel team member based in Munich noticed the GitHub issue and posted a message in the team chat group. The team member was out of office and could not help investigate.&lt;/li&gt;
&lt;li&gt;At 15:08 (10:08 Eastern Time), a Bazel team member based in New York started investigating.&lt;/li&gt;
&lt;li&gt;In the next few hours, two more team members based in New York joined the investigation and attempted various mitigation approaches, initially without success.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;[Outage end]&lt;/strong&gt; At 20:31, a new SSL certificate was finally set up and propagated to all necessary frontends. Access to all affected domains was restored.&lt;/li&gt;
&lt;li&gt;At 20:32, the resolution was communicated to users on GitHub, Slack, and the bazel-discuss mailing list.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;What went wrong&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;No alerting&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;The Google-managed SSL certificate renewal failures did not trigger any notifications.&lt;/li&gt;
&lt;li&gt;Moreover, the Bazel team didn&amp;#39;t have alerting set up for SSL certificate expiry, despite a &lt;a href=&quot;https://github.com/bazelbuild/bazel/issues/15515&quot;&gt;previous similar outage&lt;/a&gt; having left an action item to set up alerts. The action item remained unprioritized and unaddressed until this outage.&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Unfortunate timing and lack of expertise&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;The outage happened during the winter holidays, when many Bazel team members (including the entire team based in Munich, where Dec 26th is a public holiday) were on vacation. The outage also happened at 2am in New York, way before any team members started working.&lt;/li&gt;
&lt;li&gt;Only a small fraction of team members were familiar with the infrastructure used to manage the bazel.build domain, and the team member with the most expertise was completely unavailable. Other teams whose expertise might have been helpful were also mostly OOO, so we had to investigate on our own.&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Outdated or insufficient documentation&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;The Bazel team&amp;#39;s internal documentation for managing SSL certificates included instructions to set up a manual certificate in case of emergency, but this turned out to be a red herring as this manual certificate system had already been deprecated. The instructions also involved requesting a specific permission that only some team members on vacation could grant, which led to more wasted time.&lt;/li&gt;
&lt;li&gt;The documentation did not mention that deleting a subdomain&amp;#39;s DNS records required creating a new Google-managed certificate, nor were there any automated checks in place to keep these in sync.&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Poor error messaging and GCP complexity&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;When a new Google-managed certificate is set up but fails to provision, it provides no error message to suggest &lt;em&gt;why&lt;/em&gt; the provision failed. The GCP documentation offers a &lt;a href=&quot;https://docs.cloud.google.com/load-balancing/docs/ssl-certificates/troubleshooting&quot;&gt;troubleshooting page&lt;/a&gt; that lists a number of potential failure modes, which meant that the incident responders had to investigate every single one.&lt;/li&gt;
&lt;li&gt;In the end, it turned out that the new SSL certificate had to be associated with both IPv4 and IPv6 &amp;quot;target proxies&amp;quot;.&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Slow provisioning process&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;SSL certificates naturally take a long time (up to 45 minutes) to provision and propagate. Coupled with the trial-and-error nature of the investigation, this time cost had to be paid repeatedly, lengthening the duration of the outage.&lt;/li&gt;
&lt;li&gt;What made this more confusing was that the provisioning had transient states of failure: the provisioning process could report a state of &lt;code&gt;FAILED_NOT_VISIBLE&lt;/code&gt; but still return to &lt;code&gt;ACTIVE&lt;/code&gt; after as many as 30 minutes. This made it very difficult to tell how long we had to wait.&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;Where we got lucky&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Despite not being perfect, the documentation from the previous similar outage was immensely helpful for the resolution of the new outage.&lt;/li&gt;
&lt;li&gt;Many community members stepped up to offer mitigation strategies, including &lt;a href=&quot;https://github.com/DataDog/datadog-agent/pull/44621&quot;&gt;@AliDatadog&lt;/a&gt;, &lt;a href=&quot;https://github.com/bazelbuild/bazel/issues/28101#issuecomment-3692747741&quot;&gt;@lshirui&lt;/a&gt;, and &lt;a href=&quot;https://github.com/bazelbuild/bazel/issues/28101#issuecomment-3693126654&quot;&gt;@blackliner&lt;/a&gt;. (See also &amp;quot;Recommendations for Bazel users&amp;quot; below.)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;Next steps&lt;/h2&gt;

&lt;p&gt;To prevent similar outages from happening in the future, we&amp;#39;re taking the following steps:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Set up alerting&lt;/strong&gt;: We have set up a GitHub Actions &lt;a href=&quot;https://github.com/bazelbuild/bazel/blob/master/.github/workflows/ssl-monitor.yml&quot;&gt;workflow&lt;/a&gt; to detect when SSL certificates are nearing expiry and file issues (&lt;a href=&quot;https://github.com/bazelbuild/bazel/issues/28201&quot;&gt;example&lt;/a&gt;) to notify Bazel team members. We&amp;#39;re also looking into setting up a prober to report general access issues with resources.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Improve internal documentation and automation&lt;/strong&gt;: We&amp;#39;ve removed the outdated instructions from our internal documentation. Changes to add or remove DNS records will now require creating a new Google-managed SSL certificate with a matching domain list.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Recommendations for Bazel users&lt;/strong&gt;: We&amp;#39;ve &lt;a href=&quot;https://bazel.build/external/faq#how-do-i-insulate-my-builds-from-the-internet&quot;&gt;updated our recommendations&lt;/a&gt; for Bazel users to insulate themselves from potential outages of this kind. This includes properly populating the download cache and ensuring the lockfile is up to date in CI environments, and hosting internal mirrors for Bazel release binaries, BCR metadata, and source archives.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;See also&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://surfingcomplexity.blog/2025/12/27/the-dangers-of-ssl-certificates/&quot;&gt;The dangers of SSL certificates&lt;/a&gt; by Lorin Hochstein&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.engflow.com/2026/01/05/december-2025-bazel-central-registry-outage/&quot;&gt;December 2025 Bazel Central Registry Outage&lt;/a&gt; by John Cater&lt;/li&gt;
&lt;/ul&gt;
</description>
      <pubDate>Fri, 16 Jan 2026 00:00:00 +0000</pubDate>
    </item>
  
    <item>
      <title>BazelCon 2025 Recap: Recordings and Birds of a Feather Session Notes</title>
      <link>/2025/12/08/bazelcon-recap.html</link>
      <description>&lt;p&gt;Autumn is BazelCon season, and this year was no different: Last month we hosted &lt;a href=&quot;https://bazelcon2025.sched.com/&quot;&gt;BazelCon 2025&lt;/a&gt; together with the Linux Foundation and our sponsors.&lt;/p&gt;

&lt;p&gt;We were able to welcome &lt;strong&gt;331 attendees&lt;/strong&gt; from 214 organizations to Atlanta, Georgia.
The conference kicked off with a day of sponsored sessions on Sunday, followed by two days filled with conference talks, birds-of-a-feather sessions and multiple unconferences.&lt;/p&gt;

&lt;p&gt;If you want to learn more, you can take a look at the &lt;a href=&quot;https://events.linuxfoundation.org/wp-content/uploads/2025/12/BazelCon25_PostEventReport.pdf&quot;&gt;post-event report&lt;/a&gt;, browse through some &lt;a href=&quot;https://flic.kr/s/aHBqjCAQoA&quot;&gt;photos&lt;/a&gt;, watch the recordings of the main stage talks or read through the birds-of-a-feather notes linked below.&lt;/p&gt;

&lt;p&gt;A heartfelt &amp;quot;thank you&amp;quot; goes out to everyone who made this BazelCon another great success: the Linux Foundation, our sponsors, our amazing presenters and all the attendees.
We&amp;#39;re looking forward to seeing all of you again in 2026!&lt;/p&gt;

&lt;h2&gt;Recordings&lt;/h2&gt;

&lt;p&gt;You can find the recordings on our new &lt;a href=&quot;https://www.youtube.com/@BazelCon&quot;&gt;@BazelCon&lt;/a&gt; channel (&lt;a href=&quot;https://www.youtube.com/playlist?list=PLak8-7eFSpowmNiR2lhvJEomLA140yban&quot;&gt;full playlist&lt;/a&gt;):&lt;/p&gt;

&lt;h3&gt;Sunday, November 9, 2025&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=1CX6x2siC28&amp;list=PLak8-7eFSpowmNiR2lhvJEomLA140yban&amp;index=1&quot;&gt;Sponsored Session: Enough Bazel to Be Dangerous: A Debugging Cookbook&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=MB6Txen7rUk&amp;list=PLak8-7eFSpowmNiR2lhvJEomLA140yban&amp;index=2&quot;&gt;Sponsored Session: Bazel102: Python&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=gpkzkv1ifkc&amp;list=PLak8-7eFSpowmNiR2lhvJEomLA140yban&amp;index=3&quot;&gt;Sponsored Session: Bazel Management for Developer Productivity Experts&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=yhRW_Fugm9c&amp;list=PLak8-7eFSpowmNiR2lhvJEomLA140yban&amp;index=4&quot;&gt;Sponsored Session: Bzlmod Migration Bootcamp&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=AeL9XeMh97U&amp;list=PLak8-7eFSpowmNiR2lhvJEomLA140yban&amp;index=5&quot;&gt;Sponsored Session: Integrate Dev Workflows&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=owg6h-eGb5g&amp;list=PLak8-7eFSpowmNiR2lhvJEomLA140yban&amp;index=6&quot;&gt;Sponsored Session: Writing Bazel Rules&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;Monday, November 10, 2025&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=N4e5TsiFqzQ&amp;list=PLak8-7eFSpowmNiR2lhvJEomLA140yban&amp;index=7&quot;&gt;Opening Remarks&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=Zpfl82MU4U0&amp;list=PLak8-7eFSpowmNiR2lhvJEomLA140yban&amp;index=8&quot;&gt;Community Update&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=FwruvTfClwk&amp;list=PLak8-7eFSpowmNiR2lhvJEomLA140yban&amp;index=9&quot;&gt;State of the Union&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=iQqLtuBzkKE&amp;list=PLak8-7eFSpowmNiR2lhvJEomLA140yban&amp;index=10&quot;&gt;Lessons From Routing Remote Actions at Scale &lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=l8XmaodF_Vg&amp;list=PLak8-7eFSpowmNiR2lhvJEomLA140yban&amp;index=11&quot;&gt;Deploying High-Performance Remote Execution Setup in Multi-Region Topology&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=NdZIeAbS32Q&amp;list=PLak8-7eFSpowmNiR2lhvJEomLA140yban&amp;index=12&quot;&gt;Bazel Build Data: Avoiding Pitfalls in Debugging and Optimizing Builds at Scale&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=Otjbpn2rB3w&amp;list=PLak8-7eFSpowmNiR2lhvJEomLA140yban&amp;index=13&quot;&gt;CI on Spot: Bazel at 30% the Cost With Zero Downtime&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=vzTqkmeXDGA&amp;list=PLak8-7eFSpowmNiR2lhvJEomLA140yban&amp;index=14&quot;&gt;What to Remote Expect When You&amp;#39;re Executing&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=g_5jyXsCELk&amp;list=PLak8-7eFSpowmNiR2lhvJEomLA140yban&amp;index=15&quot;&gt;Review of State of the Art Solutions for IDE support and Developer Tooling in Monorepos using Bazel&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=952Rr7wgfWo&amp;list=PLak8-7eFSpowmNiR2lhvJEomLA140yban&amp;index=16&quot;&gt;CMake To Bazel, Migrating Spotify&amp;#39;s Desktop Apps&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=cfM7lo7_bJo&amp;list=PLak8-7eFSpowmNiR2lhvJEomLA140yban&amp;index=17&quot;&gt;Gazelle Across the Stack: Same Tool, Different Problems&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=1A8LMZ21t6Y&amp;list=PLak8-7eFSpowmNiR2lhvJEomLA140yban&amp;index=18&quot;&gt;Skycache: Slashing the Cold Build Tax in Bazel&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=eA-3Gfr4epU&amp;list=PLak8-7eFSpowmNiR2lhvJEomLA140yban&amp;index=19&quot;&gt;Haskell Builds at Scale: Comparing Bazel and Buck2&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=NO028kW_VDc&amp;list=PLak8-7eFSpowmNiR2lhvJEomLA140yban&amp;index=20&quot;&gt;Sponsored Lightning Talk: Building at Scale: How EngFlow and Databricks Use Build Data to Manage 1 Billion Actions a Day&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=j7-IMZ2q5W4&amp;list=PLak8-7eFSpowmNiR2lhvJEomLA140yban&amp;index=21&quot;&gt;Sponsored Lightning Talk: Beyond Make Serve: Starlarkification for Tasks&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=i07kTWg38q8&amp;list=PLak8-7eFSpowmNiR2lhvJEomLA140yban&amp;index=22&quot;&gt;asset-fuse: Bringing Large Files to Buck2 and Bazel&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=Tt7Zpt4BsoY&amp;list=PLak8-7eFSpowmNiR2lhvJEomLA140yban&amp;index=23&quot;&gt;Lightning-Fast Build File Generation with Gazelle Lazy Indexing&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=uiZ6_2nenJQ&amp;list=PLak8-7eFSpowmNiR2lhvJEomLA140yban&amp;index=24&quot;&gt;Multi-platform &amp;amp; Sanitizer Builds With One Command&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=26CoMExb6FE&amp;list=PLak8-7eFSpowmNiR2lhvJEomLA140yban&amp;index=25&quot;&gt;Improving Bazel TypeScript Type-Checks With IsolatedDeclarations&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=Ats32wOtjrY&amp;list=PLak8-7eFSpowmNiR2lhvJEomLA140yban&amp;index=26&quot;&gt;Optimizing for Scale: Lessons From Building Robinhood Legend&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=YrcsDu63OWA&amp;list=PLak8-7eFSpowmNiR2lhvJEomLA140yban&amp;index=27&quot;&gt;Lights, Camera, Build! Reproducible Media Editing With Bazel, Ffmpeg, and Sox&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;Tuesday, November 11, 2025&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=kqMOwABJguc&amp;list=PLak8-7eFSpowmNiR2lhvJEomLA140yban&amp;index=28&quot;&gt;Flagsets&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=rCFc3tFcVVE&amp;list=PLak8-7eFSpowmNiR2lhvJEomLA140yban&amp;index=29&quot;&gt;Precision CI at Scale: Target-Aware Workflows with Bazel Diff&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=Q4p-I9TsUnA&amp;list=PLak8-7eFSpowmNiR2lhvJEomLA140yban&amp;index=30&quot;&gt;Automating Software Supply Chain Security With Bazel&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=ZBYWI4vdeco&amp;list=PLak8-7eFSpowmNiR2lhvJEomLA140yban&amp;index=31&quot;&gt;A Product-First Approach to Growing BCR&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=HI7LwgyOQO4&amp;list=PLak8-7eFSpowmNiR2lhvJEomLA140yban&amp;index=32&quot;&gt;Nix and Bazel: A New Hope&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=oN7uUQBLLDw&amp;list=PLak8-7eFSpowmNiR2lhvJEomLA140yban&amp;index=33&quot;&gt;How We Automated 3rd-Party Dependency Management in a Bazel Monorepo&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=IvJD0kSJcoI&amp;list=PLak8-7eFSpowmNiR2lhvJEomLA140yban&amp;index=34&quot;&gt;A Bazel Story: Cargo Splicing and the Three Lockfiles&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=u8oNVX2sgms&amp;list=PLak8-7eFSpowmNiR2lhvJEomLA140yban&amp;index=35&quot;&gt;Gradle-Backed Dependency Resolution in Rules_jvm_external&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=9L32zheIr-A&amp;list=PLak8-7eFSpowmNiR2lhvJEomLA140yban&amp;index=36&quot;&gt;Immutable Infrastructure for Clinical AI: Bazel for Dependency Governance in Healthcare ML&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=xIWge1XEZew&amp;list=PLak8-7eFSpowmNiR2lhvJEomLA140yban&amp;index=37&quot;&gt;Managing Flaky Tests With Bazel and rules_go&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=biYXmAv4Ppk&amp;list=PLak8-7eFSpowmNiR2lhvJEomLA140yban&amp;index=38&quot;&gt;rules_img: A Ground-Up Redesign of Container Image Building for Bazel&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=jsIzSkaUcx8&amp;list=PLak8-7eFSpowmNiR2lhvJEomLA140yban&amp;index=39&quot;&gt;Sponsored Lightning Talk: Rootcausing Rebuilds with &amp;quot;bb explain&amp;quot;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=xa-4_hdk_C4&amp;list=PLak8-7eFSpowmNiR2lhvJEomLA140yban&amp;index=40&quot;&gt;Bazel Beyond Code: Scalable AI Data Pipelines for Autonomous Systems&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=-1qrpqFsqQ0&amp;list=PLak8-7eFSpowmNiR2lhvJEomLA140yban&amp;index=41&quot;&gt;The Curious Case of Slow Java Tests After Moving to Bazel&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=8k9ZKBKyjuA&amp;list=PLak8-7eFSpowmNiR2lhvJEomLA140yban&amp;index=42&quot;&gt;Scaling Java Dependency Hygiene: Bazel deps_filter &amp;amp; the Dependencyset Macro&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=5j2bb44CV1g&amp;list=PLak8-7eFSpowmNiR2lhvJEomLA140yban&amp;index=43&quot;&gt;Using Fawltydeps: or When Gazelle Does Not Tame Your Python&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=OnaWiq07V2Q&amp;list=PLak8-7eFSpowmNiR2lhvJEomLA140yban&amp;index=44&quot;&gt;Determinism in a Non-Hermetic World&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=RCcE5sxOn2o&amp;list=PLak8-7eFSpowmNiR2lhvJEomLA140yban&amp;index=45&quot;&gt;Hermeticity the Bazel Way: Relative Paths Everywhere&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=CiHJctRxI78&amp;list=PLak8-7eFSpowmNiR2lhvJEomLA140yban&amp;index=46&quot;&gt;Bazel &amp;quot;At the Edge&amp;quot;: Building for the World&amp;#39;s Toughest Environments&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=lh-NaENSEBU&amp;list=PLak8-7eFSpowmNiR2lhvJEomLA140yban&amp;index=47&quot;&gt;Go, Wasm, &amp;amp; Bazel: A Blueprint for Hermetic, High-Performance Web Applications&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you are interested in presentation slides, you can find them attached to the &lt;a href=&quot;https://bazelcon2025.sched.com/area/Yes&quot;&gt;schedule&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;Birds of a Feather notes&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://docs.google.com/document/d/1HgNSpCslH2FJiF2KiaNrQUJ05nk7hYZV_IdXB2zHIlM/edit?usp=sharing&quot;&gt;Bazel in the IDE 2025&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://docs.google.com/document/d/1GcN0Bi-qrokHT_kE4dt6vFPMvAaIeEVtj3jsSSROB6w/edit?usp=sharing&quot;&gt;AI Breaks Everything: Is Your Build Infrastructure Ready?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://docs.google.com/document/d/1R-02--2NQuu2TR7covDTqNMExMhjHfPS-YHoqOweaqk/edit?usp=sharing&quot;&gt;Let&amp;#39;s Build the Future of Bazel Documentation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://docs.google.com/document/d/1aqn9aZl3JA4AbTkkNj7UmGEGAegrhn5VHy5m50joUGY/edit?usp=sharing&quot;&gt;Bzlmod&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://docs.google.com/document/d/1T7VxMDdjVD5pWghylOBGQf0KfVMX0dbwYQDJv_oky1U/edit?usp=sharing&quot;&gt;Android&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://docs.google.com/document/d/10AgoOcCbt3q4SzoVsHiKkQzVLxUNug2BOsmZ9RThAtE/edit?usp=sharing&quot;&gt;Supply Chain Security&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;Unconference notes&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://docs.google.com/document/d/1v3nG9Vg-56VACel9pKwiDhL9LZgcTUWOFw4fk1Zr6vM/edit?usp=sharing&quot;&gt;Types on Starlark&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
      <pubDate>Mon, 08 Dec 2025 00:00:00 +0000</pubDate>
    </item>
  
    <item>
      <title>Bazel Q3 2025 Community Update</title>
      <link>/2025/10/07/bazel-q3-2025-community-update.html</link>
      <description>&lt;h2&gt;Announcements&lt;/h2&gt;

&lt;h3&gt;BazelCon 2025&lt;/h3&gt;

&lt;p&gt;We&amp;#39;re just a few weeks away from BazelCon 2025, and we can&amp;#39;t wait to see you in Atlanta! Before the big event, we want to share a few important updates and reminders.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A Special Thanks to Our Sponsors&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://events.linuxfoundation.org/bazelcon/&quot;&gt;BazelCon 2025&lt;/a&gt; is free to attend, and that&amp;#39;s all thanks to the incredible support from our sponsors. Their generosity makes it possible to bring the community together for two days of learning, networking, and collaboration.&lt;/p&gt;

&lt;p&gt;Seven sponsors are supporting the event this year. We&amp;#39;d like to extend a huge thank you to &lt;strong&gt;BuildBuddy, EngFlow, Google, Aspect Build, Buildkite, JetBrains, Tweag and VirtusLab&lt;/strong&gt; for their continued support.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Monday After-Hours Socializing&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Join us for more networking and fun after the final sessions of Day 1! BuildBuddy is sponsoring an evening &lt;strong&gt;Happy Hour&lt;/strong&gt;, while EngFlow and JetBrains bring the fun with a &lt;strong&gt;Game Night&lt;/strong&gt;. Make sure to save the date for good drinks, great conversation, and some friendly competition. &lt;/p&gt;

&lt;p&gt;Exact times and locations are coming soon! Find all the final details by keeping up with the &lt;strong&gt;#bazelcon&lt;/strong&gt; channel on Bazel Slack, our Bazel X account &lt;a href=&quot;https://x.com/bazelbuild&quot;&gt;@bazelbuild&lt;/a&gt;, and &lt;a href=&quot;https://meetup.build&quot;&gt;meetup.build&lt;/a&gt; for specific Game Night information.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Hackathon Alert&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Extend your BazelCon experience by joining Aspect Build for a special hackathon on &lt;strong&gt;Wednesday, November 12th!&lt;/strong&gt; This post-conference event will be held at the Omni Hotel, the same venue as the conference. It&amp;#39;s a great opportunity to roll up your sleeves, collaborate with fellow Bazel enthusiasts, and build something cool!&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://luma.com/jpc6qwaz&quot;&gt;Register here&lt;/a&gt; for the hackathon - there will be pizza.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A Note on Registration&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;As BazelCon is a free event with limited capacity, we kindly ask the attendees that if your plans have changed and you&amp;#39;re no longer able to attend in person, please consider &lt;strong&gt;canceling your registration through &lt;a href=&quot;https://events.linuxfoundation.org/bazelcon/&quot;&gt;the event website&lt;/a&gt;.&lt;/strong&gt; This will free up a spot for someone else who is eager to join us. Your cooperation is greatly appreciated and helps us accommodate as many people as possible!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Thank You to Our Speakers&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A massive thank you to everyone who submitted a proposal for BazelCon 2025! We were truly impressed by the quality and quantity of submissions. Your willingness to share your knowledge and passion for Bazel is what makes this event so special.&lt;/p&gt;

&lt;p&gt;Congratulations to all the speakers whose talks have been accepted! The &lt;a href=&quot;https://events.linuxfoundation.org/bazelcon/program/schedule/?ajs_aid=609585d1-0775-40bb-87f0-4a210baab403&quot;&gt;final schedule&lt;/a&gt; has already been announced and we can&amp;#39;t wait for you to share your insights with the community. &lt;/p&gt;

&lt;p&gt;Get ready for some fantastic talks and Birds of a Feather sessions - we look forward to seeing you all in November!&lt;/p&gt;

&lt;h3&gt;Attestation Support in BCR&lt;/h3&gt;

&lt;p&gt;The Bazel Central Registry (BCR) now has enhanced security metadata with &lt;strong&gt;attestation support&lt;/strong&gt;. This significant update, a collaborative effort between Aspect Build, the BCR team, and the Google Open Source Security Team, improves the software supply chain by enabling module maintainers to publish signed provenance with their releases. For those using Bazel modules, this means you&amp;#39;ll have more security information to help you make informed decisions about your dependencies. To learn more about this new feature and how it can benefit you, &lt;a href=&quot;https://blog.bazel.build/2025/08/01/enhancing-security-metadata-in-bcr.html&quot;&gt;check out the full article&lt;/a&gt; by Appu Goundan and Florian Weikert on the Bazel blog.&lt;/p&gt;

&lt;h2&gt;Product Updates&lt;/h2&gt;

&lt;h3&gt;Upcoming Bazel releases&lt;/h3&gt;

&lt;p&gt;The first release candidate of &lt;a href=&quot;https://github.com/bazelbuild/bazel/issues/26992&quot;&gt;Bazel 9.0&lt;/a&gt; will be cut on 2025-10-27. If you want to make sure your feature lands in 9.0, please add it to the &lt;a href=&quot;https://github.com/bazelbuild/bazel/milestone/94&quot;&gt;release blocker milestone&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/bazelbuild/bazel/issues/26904&quot;&gt;Bazel 8.5.0&lt;/a&gt; is expected to release on 2025-11-10. Please send cherry-pick PRs against the &lt;a href=&quot;https://github.com/bazelbuild/bazel/tree/release-8.5.0&quot;&gt;release-8.5.0&lt;/a&gt; branch before the RC1 cutoff on 2025-11-03.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/bazelbuild/bazel/issues/26534&quot;&gt;Bazel 7.7.0&lt;/a&gt; is expected to release on 2025-10-20. Please send cherry-pick PRs against the &lt;a href=&quot;https://github.com/bazelbuild/bazel/tree/release-7.7.0&quot;&gt;release-7.7.0&lt;/a&gt; branch before the RC1 cutoff on 2025-10-13.&lt;/p&gt;

&lt;h3&gt;Q3 releases&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/bazelbuild/bazel/releases/tag/8.4.0&quot;&gt;8.4.0&lt;/a&gt; was released in September ‘25, followed by patches &lt;a href=&quot;https://github.com/bazelbuild/bazel/releases/tag/8.4.1&quot;&gt;8.4.1&lt;/a&gt; and &lt;a href=&quot;https://github.com/bazelbuild/bazel/releases/tag/8.4.2&quot;&gt;8.4.2&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;Community Corner&lt;/h2&gt;

&lt;h3&gt;Get Involved: Community Updates &amp;amp; Participation Opportunities&lt;/h3&gt;

&lt;p&gt;We&amp;#39;re bringing you a few updates from the Bazel community, courtesy of Alex Eagle, highlighting new initiatives that are making Bazel easier to use and contribute to.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A new foundation in the works&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A new foundation is being created at the Linux Foundation to fund work on OSS Bazel rules. If your company relies on community-driven projects—like bazel-contrib—consider asking your manager to contact your company&amp;#39;s OSPO about joining as a founding member. Investment here translates directly into better, more reliable Bazel rules for everyone.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A new home for Bazel Documentation&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Rules Authors SIG is funding a new hosting solution for Bazel&amp;#39;s documentation site. The prototype is at a placeholder domain: &lt;a href=&quot;https://bazel.online&quot;&gt;bazel.online&lt;/a&gt;. The SIG is currently determining it has parity and meets Google&amp;#39;s requirements. If launched, this will give the community the ability to preview changes to the docs, and should enable better ongoing maintenance. 
You can participate and keep an eye on the development in the &lt;strong&gt;#documentation&lt;/strong&gt; channel on Bazel Slack.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;More features in the Bazel Central Registry (BCR)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://registry.bazel.build&quot;&gt;registry.bazel.build&lt;/a&gt; just got two key feature additions that improve discoverability and transparency:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Starlark API Docs: The registry can now show Starlark API documentation for modules that publish docs with their releases. For an example, check out &lt;a href=&quot;https://registry.bazel.build/modules/jq.bzl&quot;&gt;https://registry.bazel.build/modules/jq.bzl&lt;/a&gt;. You can learn how to publish your own docs by reading the guide on the Aspect blog.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Deprecation Flags: Modules that are deprecated or come from an archived GitHub repository will now be clearly indicated with a warning sign. &lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;JetBrains’* new Bazel plugin&lt;/h3&gt;

&lt;p&gt;JetBrains announced the general availability of their their &lt;a href=&quot;https://plugins.jetbrains.com/plugin/22977-bazel-eap-/&quot;&gt;new Bazel plugin&lt;/a&gt; for IntelliJ IDEA, PyCharm and Goland in July on the IntelliJ IDEA blog: &lt;a href=&quot;https://blog.jetbrains.com/idea/2025/07/bazel-ga-release/&quot;&gt;https://blog.jetbrains.com/idea/2025/07/bazel-ga-release/&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Key features now include Go and Python support, and options to enable faster indexing. JVM language support has been reworked from the ground up to offer more accurate highlighting, completions and refactoring. Additionally, Windows compatibility has been improved and full editing features are now available for Starlark, .bazelproject, .bazelrc, and .bazelversion files.&lt;/p&gt;

&lt;p&gt;JetBrains is continuously updating the Bazel plugin &lt;a href=&quot;https://www.jetbrains.com/help/idea/bazel.html&quot;&gt;documentation pages&lt;/a&gt;, which now feature a &lt;a href=&quot;https://www.jetbrains.com/help/idea/tutorial-get-started-with-bazel.html&quot;&gt;&amp;quot;Get started with Bazel&amp;quot;&lt;/a&gt; tutorial.&lt;/p&gt;

&lt;h3&gt;Meetup.build&lt;/h3&gt;

&lt;p&gt;If you enjoy meeting fellow build enthusiasts in person, we encourage you to keep an eye on &lt;a href=&quot;http://meetup.build&quot;&gt;meetup.build&lt;/a&gt; - the right place to find build community meetups and opportunities to learn and share knowledge. &lt;/p&gt;

&lt;p&gt;Upcoming meetups:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://4mksw.share.hsforms.com/21ZG5vZFgQRSvnAzXRe_olQ&quot;&gt;Munich Build Meetup&lt;/a&gt;: October 13th&lt;/li&gt;
&lt;li&gt;London Build Meetup: February 2026&lt;/li&gt;
&lt;li&gt;New York Build Meetup: March 2026&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;Articles&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://blogsystem5.substack.com/p/bazel-remote-caching&quot;&gt;Understanding Bazel remote caching&lt;/a&gt; - by Julio Merino&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blogsystem5.substack.com/p/bazel-action-determinism&quot;&gt;Bazel and action (non-) determinism&lt;/a&gt; - by Julio Merino&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://medium.com/@pikotutorial/separating-builds-for-different-configs-with-bazel-a03b40855e2a&quot;&gt;Separating builds for different configs with Bazel&lt;/a&gt; - by pikoTutorial&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://medium.com/@erfan.mohebi/solving-monorepo-hell-with-bazel-a-deep-dive-into-modern-build-systems-f70c831bb227&quot;&gt;Solving Monorepo Hell with Bazel: A Deep Dive into Modern Build Systems&lt;/a&gt; - by Erfan Mohebi&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://medium.com/airbnb-engineering/migrating-airbnbs-jvm-monorepo-to-bazel-33f90eda51ec&quot;&gt;Migrating Airbnb’s JVM Monorepo to Bazel&lt;/a&gt; - by Thomas Bao&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.aspect.build/outside-of-bazel-pattern&quot;&gt;The &amp;#39;outside of Bazel&amp;#39; pattern&lt;/a&gt; - by Alex Eagle @Aspect Build&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://fzakaria.com/2025/07/08/bazel-knowledge-transition-with-style&quot;&gt;Bazel Knowledge: transition with style&lt;/a&gt; - by Farid Zakaria&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://fzakaria.com/2025/09/02/bazel-knowledge-testing-for-clean-jvm-shutdown&quot;&gt;Bazel Knowledge: Testing for clean JVM shutdown&lt;/a&gt; - by Farid Zakaria and more at &lt;a href=&quot;http://fzakaria.com&quot;&gt;fzakaria.com&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://popovicu.com/posts/embedded-c-bazel-avr/&quot;&gt;Embedded bare-metal C with Bazel and AVR&lt;/a&gt; - by Uros Popovic&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://popovicu.com/posts/simple-lua-integration-in-go/&quot;&gt;Simple Lua integration in Go&lt;/a&gt; - by Uros Popovic and more at &lt;a href=&quot;http://popovicu.com&quot;&gt;popovicu.com&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.jetbrains.com/help/idea/tutorial-get-started-with-bazel.html&quot;&gt;Tutorial: Get started with Bazel&lt;/a&gt; - by JetBrains&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.smileykeith.com/2025/09/21/understanding-apple-debug-info/&quot;&gt;Understanding Apple Debug Info&lt;/a&gt; - by Keith Smiley&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://ohadravid.github.io/posts/2025-09-hello-bazel/?utm_source=www.pythonweekly.com&amp;utm_medium=newsletter&amp;utm_campaign=python-weekly-issue-713-september-11-2025&quot;&gt;How to Build Python Code with Bazel (and Why)&lt;/a&gt; - by Ohad Ravid&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;Videos&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://youtu.be/JLvnnJCBUxE?si=nI1kDdI7OZQK9mf8&quot;&gt;What is Bazel? A Beginner’s Guide for 2025&lt;/a&gt; - by Vitaly Bragilevsky&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=B5Ei5sQwmBs&quot;&gt;Bazel - Marcus Boerger - ACCU 2025&lt;/a&gt; - talk given by Marcus Boerger at the ACCU Conference &lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=oh_b19EtDHs&quot;&gt;Bazel for Everyone? Hard Questions with Confluent Engineers&lt;/a&gt; - by Alex Eagle @Aspect Build &lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=-iLgTR1J47g&quot;&gt;Better Bazel Flag Defaults with Markus Hofbauer&lt;/a&gt; - by Alex Eagle @Aspect Build&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.youtube.com/playlist?list=PLLU28e_DRwdswrrZaNqnFFm9OawpxN4CB&quot;&gt;Bazel Training 101&lt;/a&gt; - playlist by Alex Eagle @Aspect Build&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=PzPH3MgoBMw&quot;&gt;IDE Support for Bazel: JetBrains’ New Plugin with Justin Kaeser&lt;/a&gt; - by Alex Eagle @Aspect Build&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=WlQahiQ8kLM&quot;&gt;How Tinder built and open-sourced Bazel-diff to transform their CI/CD at scale&lt;/a&gt; - by BuildKite&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=gn3Of-0JNIA&quot;&gt;State of Swift and iOS in Bazel with Luis Padron and Brentley Jones&lt;/a&gt; - by Alex Eagle @Aspect Build&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=3gIqshGJJtE&quot;&gt;How Snowflake Transformed its C++ and Java Build Systems with Julio Merino&lt;/a&gt; - by Alex Eagle @Aspect Build&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;Resources&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;GitHub repository: &lt;a href=&quot;https://github.com/bazelbuild/bazel&quot;&gt;https://github.com/bazelbuild/bazel&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Releases: &lt;a href=&quot;https://github.com/bazelbuild/bazel/releases&quot;&gt;https://github.com/bazelbuild/bazel/releases&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Slack chat: &lt;a href=&quot;https://slack.bazel.build&quot;&gt;https://slack.bazel.build&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Google group: bazel-discuss@googlegroups.com&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Special Interest Groups (SIG):&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Reach out the email(s) listed below if you’d like to be added to the SIG calendar invites.&lt;/p&gt;

&lt;table&gt;&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;strong&gt;SIG&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Meeting frequency&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Point of contact&lt;/strong&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://github.com/bazelbuild/community/tree/main/sigs/rules-authors&quot;&gt;Rules authors&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Every two weeks&lt;/td&gt;
&lt;td&gt;bazel-contrib@googlegroups.com&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://docs.google.com/document/d/1Sv227BguEekx5Q3lwSdPEQqpkHAng6J6gNCNZqJLbtw/edit?resourcekey=0-GK_iaQRAEAu3aYslzlrEfQ&amp;tab=t.0#heading=h.dzj8kjjzgp3s&quot;&gt;Android app development&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Monthly&lt;/td&gt;
&lt;td&gt;ahumesky@google.com&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://github.com/bazelbuild/community/tree/main/sigs/bazel-intellij&quot;&gt;Bazel plugin for IntelliJ&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Monthly&lt;/td&gt;
&lt;td&gt;messa@google.com&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://docs.google.com/document/d/1EtQMTn-7sKFMTxIMlb0oDGpvGCMAuzphVcfx58GWuEM/edit?tab=t.0#heading=h.ol6wthckmbcw&quot;&gt;Remote execution API working group&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Monthly&lt;/td&gt;
&lt;td&gt;chiwang@google.com&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://docs.google.com/document/d/1WhScaOLERet4Fxi4fa2Lpke2MgJZGvEE4EXeq6yb0LU/edit?usp=sharing&quot;&gt;Supply chain security / SBOM&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Weekly&lt;/td&gt;
&lt;td&gt;fwe@google.com&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;

&lt;p&gt;Interested in learning about SIGs or starting a new one? Find more information on our &lt;a href=&quot;https://bazel.build/community/sig&quot;&gt;website&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Want to get your SIG listed? Please add it to the &lt;a href=&quot;https://github.com/bazelbuild/community/tree/main/sigs&quot;&gt;Community repository&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;Ideas, feedback, and submissions are welcome!&lt;/h2&gt;

&lt;p&gt;Thank you for reading this edition! Let us know if you’d like to see any new information or changes in future community updates by reaching out to product@bazel.build. We look forward to hearing from you.&lt;/p&gt;

&lt;p&gt;Thanks,&lt;/p&gt;

&lt;p&gt;Google Bazel team&lt;/p&gt;

&lt;p&gt;&lt;em&gt;*Copyright © 2025 JetBrains s.r.o. JetBrains and IntelliJ are registered trademarks of JetBrains s.r.o.&lt;/em&gt;&lt;/p&gt;
</description>
      <pubDate>Tue, 07 Oct 2025 00:00:00 +0000</pubDate>
    </item>
  
    <item>
      <title>Enhancing Security Metadata in BCR with Attestation Support</title>
      <link>/2025/08/01/enhancing-security-metadata-in-bcr.html</link>
      <description>&lt;p&gt;Bazel Central Registry is the go-to source for discovering and managing Bazel modules. Over the last few months Aspect Build, Bazel Central Registry and the Google Open Source Security Team have been working together on enhancing the security of the software supply chain. We are happy to announce that attestation support in BCR is now available. This includes updated GitHub Actions for packaging and releasing rulesets. It also enables pre-submit verification of this new security metadata on the registry.&lt;/p&gt;

&lt;p&gt;For module maintainers this allows easy publishing of signed provenance with module releases. For consumers, this means a greater availability of security metadata to make informed decisions when including or updating dependencies.&lt;/p&gt;

&lt;h2&gt;Get Started Today&lt;/h2&gt;

&lt;h3&gt;Publishing Attestations&lt;/h3&gt;

&lt;p&gt;If you are using &lt;a href=&quot;https://github.com/bazel-contrib/.github/blob/master/.github/workflows/release_ruleset.yaml&quot;&gt;release_ruleset&lt;/a&gt; with the &lt;a href=&quot;https://github.com/bazel-contrib/publish-to-bcr?tab=readme-ov-file#legacy-github-app&quot;&gt;publish-to-bcr legacy app&lt;/a&gt; to publish your modules to BCR, you should:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;upgrade your release_ruleset to use the new attestation generating workflow&lt;/li&gt;
&lt;li&gt;follow the instructions to &lt;a href=&quot;https://github.com/bazel-contrib/publish-to-bcr?tab=readme-ov-file#setup&quot;&gt;setup the new publish-to-bcr workflow&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;To see how this affects a release, let&amp;#39;s use the example of &lt;a href=&quot;https://registry.bazel.build/modules/aspect_rules_lint&quot;&gt;aspect_rules_lint&lt;/a&gt; which has been publishing modules with attestations since v1.3.4. You will see a new publishing artifact `&lt;a href=&quot;https://github.com/bazelbuild/bazel-central-registry/blob/main/modules/aspect_rules_lint/1.3.4/attestations.json&quot;&gt;attestations.json&lt;/a&gt;&amp;#39; that contains information about your attestations. On successful publication, BCR will preserve and mirror attestations for publishing artifacts. Please note that since BCR does not mirror the source archive, it also does not mirror the source archive&amp;#39;s attestation. The BCR UI will attach a blue indicator to a release version informing users that attestations are available for consumption.
&lt;img width=&quot;572&quot; height=&quot;166&quot; alt=&quot;image&quot; src=&quot;https://github.com/user-attachments/assets/c1d961f1-904a-4769-a9f1-b8aeeb3d3582&quot; /&gt;&lt;/p&gt;

&lt;h3&gt;Verifying Attestations&lt;/h3&gt;

&lt;p&gt;Once you&amp;#39;ve generated and published your attestations, you can validate them. For the purposes of this example, we will once again use &lt;a href=&quot;https://registry.bazel.build/modules/aspect_rules_lint&quot;&gt;aspect_rules_lint&lt;/a&gt;. There are three critical files to attest to cover a module version:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;code&gt;MODULE.bazel&lt;/code&gt; (published to BCR)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;source.json&lt;/code&gt; (published to BCR)&lt;/li&gt;
&lt;li&gt;the packaged module source (not hosted on BCR): &lt;a href=&quot;https://github.com/aspect-build/rules_lint/releases/download/v1.3.4/rules_lint-v1.3.4.tar.gz&quot;&gt;rules_lint-v1.3.4.tar.gz&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Keep in mind that attestations for &lt;code&gt;MODULE.bazel&lt;/code&gt; and &lt;code&gt;source.json&lt;/code&gt; are generated by the publishing workflow &lt;code&gt;github.com/bazel-contrib/publish-to-bcr/.github/workflows/publish.yaml&lt;/code&gt; and attestations for the source archive are generated by the release workflow &lt;code&gt;github.com/bazel-contrib/publish-to-bcr/.github/workflows/publish.yaml&lt;/code&gt;. We need these workflow references when verifying the attestations.&lt;/p&gt;

&lt;h4&gt;Verify MODULE.bazel&lt;/h4&gt;

&lt;p&gt;Let&amp;#39;s try to validate &lt;code&gt;MODULE.bazel&lt;/code&gt;. To illustrate this, we&amp;#39;ll do it by hand, though your build infrastructure should automate it. On the command line you can do this using the &lt;a href=&quot;https://cli.github.com/&quot;&gt;GitHub CLI&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The GitHub CLI uses attestations that were uploaded to the attestations store during publication. The &lt;a href=&quot;https://github.com/aspect-build/rules_lint/attestations/6280303&quot;&gt;attestation&lt;/a&gt; can be seen in the attestations tab for a project.&lt;/p&gt;

&lt;h6&gt;Download the file from BCR&lt;/h6&gt;
&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-text&quot; data-lang=&quot;text&quot;&gt;$ curl -sSO https://bcr.bazel.build/modules/aspect_rules_lint/1.3.4/MODULE.bazel
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h6&gt;Run the GitHub CLI attestation verification workflow&lt;/h6&gt;
&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-text&quot; data-lang=&quot;text&quot;&gt;$ gh attestation verify MODULE.bazel \
    --repo aspect-build/rules_lint \
    --source-ref refs/tags/v1.3.4 \
    --signer-workflow github.com/bazel-contrib/publish-to-bcr/.github/workflows/publish.yaml@refs/tags/v0.0.1

Loaded digest sha256:e0758f32323887cfe0b9d6e9f01f803f50a3f5efb6a229fc6791e99bd91ea038 for file://MODULE.bazel
Loaded 1 attestation from GitHub API

The following policy criteria will be enforced:
- Predicate type must match:................ https://slsa.dev/provenance/v1
- Source Repository Owner URI must match:... https://github.com/aspect-build
- Source Repository URI must match:......... https://github.com/aspect-build/rules_lint
- Source repo ref must match:............... refs/tags/v1.3.4
- Subject Alternative Name must match regex: ^https://github.com/bazel-contrib/publish-to-bcr/.github/workflows/publish.yaml@refs/tags/v\*
- OIDC Issuer must match:................... https://token.actions.githubusercontent.com

✓ Verification succeeded\!

The following 1 attestation matched the policy criteria

- Attestation \#1
  - Build repo:..... aspect-build/rules_lint
  - Build workflow:. .github/workflows/release.yml@refs/tags/v1.3.4
  - Signer repo:.... bazel-contrib/publish-to-bcr
  - Signer workflow: .github/workflows/publish.yaml@refs/tags/v0.0.1
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;The &lt;code&gt;--source-ref refs/tags/v1.3.4&lt;/code&gt; flag ensures the build came from an officially tagged commit.&lt;/p&gt;

&lt;p&gt;The &lt;code&gt;--signer-workflow github.com/bazel-contrib/publish-to-bcr/.github/workflows/publish.yaml@refs/tags/v0.0.1&lt;/code&gt; flag corresponds to the approved builder workflow and version. While it is optional for verification, it&amp;#39;s recommended to ensure the official publishing workflow was used. For a builder with many versions this can be a regex like &lt;code&gt;...@refs/tags/v\\d+\\.\\d+\\.\\d+$&lt;/code&gt;, but your build&amp;#39;s policy file can map the correct version to the artifact in question.&lt;/p&gt;

&lt;h4&gt;Verifying source.json&lt;/h4&gt;

&lt;p&gt;Repeat the process used for &lt;code&gt;MODULE.bazel&lt;/code&gt; with source.json&lt;/p&gt;
&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-text&quot; data-lang=&quot;text&quot;&gt;$ curl -sSO https://bcr.bazel.build/modules/aspect_rules_lint/1.3.4/source.json
$ gh attestation verify source.json \
    --repo aspect-build/rules_lint \
    --source-ref refs/tags/v1.3.4 \
    --signer-workflow github.com/bazel-contrib/publish-to-bcr/.github/workflows/publish.yaml@refs/tags/v0.0.1
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h4&gt;Verifying source archive attestations&lt;/h4&gt;

&lt;p&gt;Verification of source archives needs a minor tweak to &lt;code&gt;--signer-workflow&lt;/code&gt; since they are generated by a different builder: &lt;code&gt;github.com/bazel-contrib/.github/blob/master/.github/workflows/release_ruleset.yaml&lt;/code&gt;. The source archive is also not mirrored or hosted by BCR, so it must be downloaded from the project&amp;#39;s &lt;a href=&quot;https://github.com/bazelbuild/bazel-central-registry/blob/main/modules/aspect_rules_lint/1.3.4/source.json#L4&quot;&gt;release archives&lt;/a&gt;.&lt;/p&gt;
&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-text&quot; data-lang=&quot;text&quot;&gt;$ curl -sSLO https://github.com/aspect-build/rules_lint/releases/download/v1.3.4/rules_lint-v1.3.4.tar.gz
$ gh attestation verify rules_lint-v1.3.4.tar.gz \
    --repo aspect-build/rules_lint \
    --source-ref refs/tags/v1.3.4 \
    --signer-workflow github.com/bazel-contrib/.github/.github/workflows/release_ruleset.yaml@refs/tags/v7.1.0
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h3&gt;Verifying with a downloaded attestation&lt;/h3&gt;

&lt;p&gt;You can skip the github attestation store lookup and use a downloaded attestation instead. For example, with MODULE.bazel:&lt;/p&gt;

&lt;p&gt;Download the file from BCR and its attestation&lt;/p&gt;
&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-text&quot; data-lang=&quot;text&quot;&gt;$ curl -sSO https://bcr.bazel.build/modules/aspect_rules_lint/1.3.4/MODULE.bazel
$ curl -sSO https://bcr.bazel.build/modules/aspect_rules_lint/1.3.4/MODULE.bazel.intoto.jsonl
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Use the &lt;code&gt;--bundle&lt;/code&gt; flag to run the verification workflow with the downloaded attestation&lt;/p&gt;
&lt;div class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-text&quot; data-lang=&quot;text&quot;&gt;$ gh attestation verify MODULE.bazel \
    --repo aspect-build/rules_lint \
    --source-ref refs/tags/v1.3.4 \
    --signer-workflow github.com/bazel-contrib/publish-to-bcr/.github/workflows/publish.yaml@refs/tags/v0.0.1 \
    --bundle MODULE.bazel.intoto.jsonl
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;Limitations&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;If you want to publish your module to BCR, you must use attestations generated by the community Github Actions Workflows defined in &lt;a href=&quot;https://github.com/bazel-contrib/.github/blob/master/.github/workflows/release_ruleset.yaml&quot;&gt;release_ruleset&lt;/a&gt; and &lt;a href=&quot;https://github.com/bazel-contrib/publish-to-bcr/blob/main/.github/workflows/publish.yaml&quot;&gt;publish&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;If you are using your own actions and attestations generators, BCR may reject your release. You can still generate attestations for them, but your release may not include them via the publish action (set &lt;code&gt;attest:false&lt;/code&gt; on publishing)&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;What&amp;#39;s Next?&lt;/h2&gt;

&lt;p&gt;The work on Bazel attestation support in the BCR is ongoing and as this capability matures, we can expect to see:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Broader support for different attestations types and sources which is currently limited as we work out any issues with the build and publishing flows.&lt;/li&gt;
&lt;li&gt;Increased adoption leading to strong policy decisions as more of a developers dependency tree is accompanied by attestations.&lt;/li&gt;
&lt;li&gt;Further improvements to the tools for generating and verifying attestations making it easier for maintainers and users to benefit from this feature.&lt;/li&gt;
&lt;li&gt;Deeper integration into Bazel to allow first class support for attestations.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We encourage module maintainers to explore integrating attestation generation into their release workflows and for Bazel users to start leveraging the available tools to verify the attestations of their dependencies. This collaborative effort is key to building a more resilient and trustworthy software supply chain with Bazel.&lt;/p&gt;

&lt;h2&gt;Acknowledgements&lt;/h2&gt;

&lt;p&gt;The Aspect Build team (&lt;a href=&quot;https://github.com/kormide&quot;&gt;@kormide&lt;/a&gt;, &lt;a href=&quot;https://github.com/alexeagle&quot;&gt;@alexeagle&lt;/a&gt;) for their work on improving release processes for Bazel developers and specifically on the reusable actions for producing the secure SLSA attestations with these reusable workflows.&lt;/p&gt;

&lt;p&gt;The extended BCR team (&lt;a href=&quot;https://github.com/meteorcloudy&quot;&gt;@meteorcloudy&lt;/a&gt;, &lt;a href=&quot;https://github.com/adincebic&quot;&gt;@adincebic&lt;/a&gt;) for their work validating and mirroring attestations on BCR making them easily available for consumption.&lt;/p&gt;

&lt;p&gt;The SLSA team (&lt;a href=&quot;https://github.com/ramonpetgrave64&quot;&gt;@ramonpetgrave64&lt;/a&gt;) for their work ensuring we were producing our SLSA attestations that allowed higher level audits on build processes.&lt;/p&gt;
</description>
      <pubDate>Fri, 01 Aug 2025 00:00:00 +0000</pubDate>
    </item>
  
    <item>
      <title>Bazel Q2 2025 Community Update</title>
      <link>/2025/07/04/bazel-q2-2025-community-update.html</link>
      <description>&lt;h2&gt;Announcements&lt;/h2&gt;

&lt;h3&gt;BazelCon 2025&lt;/h3&gt;

&lt;p&gt;We’re excited to invite you to BazelCon 2025 in Atlanta, Georgia! Join the amazing Bazel Community for two days of talks, Birds of a Feather sessions, and networking, all focused on the Bazel build system. Thanks to our generous sponsors, the event is completely free to attend. &lt;/p&gt;

&lt;p&gt;This year, we’re also offering a special Community Training Day on November 9th to help you deepen your expertise. Check the &lt;a href=&quot;https://events.linuxfoundation.org/bazelcon/features/training-day/#writing-bazel-rules&quot;&gt;schedule&lt;/a&gt; and see what Aspect Build, EngFlow and Tweag have in store for you!&lt;/p&gt;

&lt;p&gt;Don’t miss this chance to learn, share, and connect—register through the BazelCon website*.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Venue:&lt;/strong&gt; Omni Hotel, Atlanta, Georgia&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;9th November:&lt;/strong&gt; Community Training Day&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;10-11th November:&lt;/strong&gt; BazelCon&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Accomodation:&lt;/strong&gt; 
This year, BazelCon is hosted alongside KubeCon + CloudNativeCon. Our attendees can book chosen hotels at these events &lt;a href=&quot;https://events.linuxfoundation.org/kubecon-cloudnativecon-north-america/attend/venue-travel/#hotel-information&quot;&gt;Venue+Travel tab&lt;/a&gt;, benefiting from the room block and fixed prices. Please note, rooms will most likely sell out in advance of the room block close dates listed on the website. We advise you to book early to secure a room at the conference rate.&lt;/p&gt;

&lt;p&gt;*As BazelCon is a free event with a limited capacity, we encourage everyone to be thoughtful about their registrations. If it becomes apparent you will not be able to join us, please cancel your attendance to give others an opportunity to attend. &lt;/p&gt;

&lt;h3&gt;Call For Proposals&lt;/h3&gt;

&lt;p&gt;If you have insights, projects, or practical experiences with Bazel that could benefit the community, we invite you to submit a proposal for BazelCon 2025. Talks and Birds of a Feather sessions are all welcome. Your contributions can help spark meaningful discussions and knowledge sharing among peers. If you’re interested in presenting, please fill out our &lt;a href=&quot;https://events.linuxfoundation.org/bazelcon/program/cfp/&quot;&gt;Call for Proposals form&lt;/a&gt;. We look forward to your submissions - CFP closes August 10th!&lt;/p&gt;

&lt;h3&gt;BazelCon talk recordings 2017-2024 now available on Linux Foundation Channel&lt;/h3&gt;

&lt;p&gt;Per popular request, we have moved all past BazelCon recordings to the Linux Foundation YouTube channel. The previous channel that hosted these has been hidden, which resulted in the videos not showing up in search.
This has now been fixed and you can access all playlists &lt;a href=&quot;https://www.youtube.com/@LinuxfoundationOrg/playlists&quot;&gt;through the LF channel&lt;/a&gt;, as well as searching for them by name in the search bar.&lt;/p&gt;

&lt;h2&gt;Product updates&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://github.com/bazelbuild/bazel/tree/release-8.4.0&quot;&gt;Bazel 8.4.0&lt;/a&gt; release branch is now open. Please send cherry-pick PRs against this branch if you&amp;#39;d like your change to be implemented, and follow the &lt;a href=&quot;https://github.com/bazelbuild/bazel/issues/26362&quot;&gt;release tracking issue&lt;/a&gt; for updates.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Q2 releases&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/bazelbuild/bazel/releases/tag/8.2.0&quot;&gt;Bazel 8.2.0&lt;/a&gt; was released in April ‘25, followed by patch &lt;a href=&quot;https://github.com/bazelbuild/bazel/releases/tag/8.2.1&quot;&gt;8.2.1&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/bazelbuild/bazel/releases/tag/8.3.0&quot;&gt;Bazel 8.3.0&lt;/a&gt; was released in June ‘25, followed by a patch &lt;a href=&quot;https://github.com/bazelbuild/bazel/releases/tag/8.3.1&quot;&gt;8.3.1&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;Community Corner&lt;/h2&gt;

&lt;h3&gt;JetBrains’* new Bazel plugin coming soon&lt;/h3&gt;

&lt;p&gt;The Bazel plugin team at JetBrains is preparing their &lt;a href=&quot;https://plugins.jetbrains.com/plugin/22977-bazel-eap-/&quot;&gt;new Bazel plugin&lt;/a&gt; for IntelliJ IDEA, PyCharm and Goland for general availability later in July, together with the 2025.2 release of IntelliJ IDEA. Compared to the old plugin originally developed by Google, the new plugin features a closer integration with the IntelliJ IDEA project model, allowing more accurate highlighting, completions and refactoring in JVM languages, as well as many smaller usability improvements. The GA release will additionally support Python and Go targets. A full release announcement will be posted on the &lt;a href=&quot;https://blog.jetbrains.com/idea/category/releases/&quot;&gt;IntelliJ IDEA blog&lt;/a&gt; when it becomes available.&lt;/p&gt;

&lt;h3&gt;JetBrains’ Bazel Plugin 2025.1 for IntelliJ IDEA&lt;/h3&gt;

&lt;p&gt;The recent updates to JetBrains&amp;#39; Bazel Plugin for IntelliJ IDEA, culminating in the 2025.1 release, bring a range of improvements, rolled out by JetBrains incrementally over recent months, aim to make working with Bazel projects inside IntelliJ IDEA more efficient.&lt;/p&gt;

&lt;p&gt;Some enhancements include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Full Bazel 8 &amp;amp; nested modules support:&lt;/strong&gt; Seamlessly work with the latest Bazel features and complex project structures.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Experimental phased sync:&lt;/strong&gt; Drastically reduces initial sync times, letting you start coding and browsing almost instantly, leaving heavier tasks happening in the background.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Python &amp;amp; Scala support:&lt;/strong&gt; Full IDE experience for these languages, including run and debug, as well as code assistance and syncing targets.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Smart dependency management:&lt;/strong&gt; Quickly add missing dependencies directly from code.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Enhanced Starlark support:&lt;/strong&gt; Better in-editor documentation and smarter code completions for BUILD files.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Improved test workflows:&lt;/strong&gt; Debug and run tests with coverage directly within the IDE.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Streamlined navigation &amp;amp; setup:&lt;/strong&gt; Easier access to targets, improved search, and quick-start project templates.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Project admin tools:&lt;/strong&gt; Features like &amp;quot;shard sync&amp;quot; and managed .bazelproject for large-scale consistency.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For a deeper dive on these and more features, visit &lt;a href=&quot;https://blog.jetbrains.com/idea/2025/04/what-s-new-in-bazel-plugin-2025-1/&quot;&gt;Justin Kaeser’s article&lt;/a&gt; here.&lt;/p&gt;

&lt;h3&gt;A few words from JetBrains on Bazel for IntelliJ and CLion Plugin Updates&lt;/h3&gt;

&lt;p&gt;‘’Starting from the second week of July, the plugins will officially support the 2025.2 version of JetBrains IDEs. This also means that support for 2024.3 is no longer maintained, and the final released plugin version for 2024.3 is 2025.06.10.0.1.&lt;/p&gt;

&lt;p&gt;We apologize for the various Bazel execution-related issues in the versions released in March and April. Huge thanks to everyone who provided feedback in the #intellij channel on Bazel Slack and on the plugin’s GitHub page. Versions 2025.05.13.0.1 and later include fixes that address the reported regressions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;C++ Support Updates&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Over the past year, we have improved C++ support in the plugin, including cc_toolchain support for code analysis, and added MSVC support on Windows. Feel free to read the article on the JetBrains blog about the new features of the plugin: https://jb.gg/bazel-clion-2025.&lt;/p&gt;

&lt;p&gt;We received some feedback about issues with CLion Nova and the Bazel plugin, resulting in the “Processing XXX file changes” dialog appearing and becoming stuck. The issue was indeed in the CLion Nova engine (CPP-44506) and was fixed in CLion 2025.1.2. However, manual cache invalidation is required on the user side via the “Invalidate Caches” action in CLion.&lt;/p&gt;

&lt;p&gt;Starting from version 2025.06.24.0.1, the Bazel for CLion plugin includes additional fixes for performance issues with the same user-visible symptom (“Processing XXX file changes”). This version will be available on JetBrains Marketplace in the second week of July. Please note that the same cache invalidation action is required after the upgrade.’’&lt;/p&gt;

&lt;h3&gt;Build Meetup in Munich - Recap&lt;/h3&gt;

&lt;p&gt;The &lt;a href=&quot;https://blog.engflow.com/2025/04/25/munich-build-meetup-recap---engflow--jetbrains/&quot;&gt;Build Meetup in Munich&lt;/a&gt;, co-hosted by EngFlow and JetBrains, brought together build system professionals for a valuable evening of insights. Discussions covered everything from Bazel fundamentals and advanced configuration management to handling large datasets, optimizing C/C++ dependencies, and even building an entire Linux OS with Bazel. The meetup also explored the complexities of remote execution, emphasizing the balance between customization and automation. For a deeper dive into some of the slides and takeaways, go to the full article!&lt;/p&gt;

&lt;h3&gt;Articles&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.aspect.build/securing-bcr&quot;&gt;Securing Bazel&amp;#39;s Module Registry&lt;/a&gt; - by Alex Eagle @Aspect Build&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://fzakaria.com/2025/06/22/bazel-s-original-sins&quot;&gt;Bazel&amp;#39;s Original Sins&lt;/a&gt; - by Farid Zakaria&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://fzakaria.com/2025/06/15/bazel-knowledge-homonymous-bazel-modules&quot;&gt;Bazel Knowledge: Homonymous Bazel Modules&lt;/a&gt; - by Farid Zakaria&lt;/li&gt;
&lt;li&gt;And many more, on &lt;a href=&quot;http://fzakaria.com&quot;&gt;fzakaria.com&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.aspect.build/dagger-and-bazel#heading-community&quot;&gt;Dagger and Bazel&lt;/a&gt; - by Chris Chinchilla @Aspect Build&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://medium.com/gojekengineering/gojeks-journey-to-3x-faster-ios-builds-with-bazel-90fbe3f22f81&quot;&gt;Gojek’s Journey to 3x Faster iOS Builds with Bazel&lt;/a&gt; - by Sanju Naik&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.engflow.com/2025/05/14/migrating-to-bazel-modules-aka-bzlmod---toolchainization/&quot;&gt;Migrating to Bazel Modules (a.k.a. Bzlmod)&lt;/a&gt; - Toolchainization - by Mike Bland @EngFlow&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.engflow.com/2025/04/17/migrating-to-bazel-modules-aka-bzlmod---repo-names-againhellip/&quot;&gt;Migrating to Bazel Modules (a.k.a. Bzlmod) - Repo Names, Again…&lt;/a&gt; - by Mike Bland @EngFlow&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;Videos&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=Y19ErHiOwQI&quot;&gt;Using Bazel for C++ development and more&lt;/a&gt; - talk by Evgenii Novozhilov&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.youtube.com/playlist?list=PLbauki92IzGyoWQdOKo_1gSt4jrB5O9rS&quot;&gt;Easy Build with Bazel&lt;/a&gt; - video playlist by Byte Anatomy&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=32i-QKuuhPE&quot;&gt;The Hidden Cost of Bazel with Alex Eagle from Aspect Build&lt;/a&gt; - by Ankit Jain @Aviator&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://youtu.be/_gxQM25v5aE&quot;&gt;How we made CLion understand your Bazel Project&lt;/a&gt; - talk by Daniel Brauner&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=mvxrDN9mtTU&quot;&gt;Production-Ready C++ with Bazel&lt;/a&gt; - by Alex Eagle @Aspect Build&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=TDyUvaXaZrc&quot;&gt;Developer Tooling in Monorepos with bazel_env - feat. Fabian Meumertzheim&lt;/a&gt; - by Alex Eagle @Aspect Build&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=c74kIWLIICA&quot;&gt;Getting Started with Angular 20 in a Bazel Monorepo&lt;/a&gt; - by Alex Eagle @Aspect Build&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;Resources&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;GitHub repository: &lt;a href=&quot;https://github.com/bazelbuild/bazel&quot;&gt;https://github.com/bazelbuild/bazel&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Releases: &lt;a href=&quot;https://github.com/bazelbuild/bazel/releases&quot;&gt;https://github.com/bazelbuild/bazel/releases&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Slack chat: &lt;a href=&quot;https://slack.bazel.build&quot;&gt;https://slack.bazel.build&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Google group: bazel-discuss@googlegroups.com&lt;/li&gt;
&lt;li&gt;Special Interest Groups (SIG):&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Reach out the email(s) listed below if you’d like to be added to the SIG calendar invites.&lt;/p&gt;

&lt;table&gt;&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;strong&gt;SIG&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Meeting frequency&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Point of contact&lt;/strong&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://github.com/bazelbuild/community/tree/main/sigs/rules-authors&quot;&gt;Rules authors&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Every two weeks&lt;/td&gt;
&lt;td&gt;bazel-contrib@googlegroups.com&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://docs.google.com/document/d/1Sv227BguEekx5Q3lwSdPEQqpkHAng6J6gNCNZqJLbtw/edit?resourcekey=0-GK_iaQRAEAu3aYslzlrEfQ&amp;tab=t.0#heading=h.dzj8kjjzgp3s&quot;&gt;Android app development&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Monthly&lt;/td&gt;
&lt;td&gt;ahumesky@google.com&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://github.com/bazelbuild/community/tree/main/sigs/bazel-intellij&quot;&gt;Bazel plugin for IntelliJ&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Monthly&lt;/td&gt;
&lt;td&gt;messa@google.com&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://docs.google.com/document/d/1EtQMTn-7sKFMTxIMlb0oDGpvGCMAuzphVcfx58GWuEM/edit?tab=t.0#heading=h.ol6wthckmbcw&quot;&gt;Remote execution API working group&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Monthly&lt;/td&gt;
&lt;td&gt;chiwang@google.com&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://docs.google.com/document/d/1WhScaOLERet4Fxi4fa2Lpke2MgJZGvEE4EXeq6yb0LU/edit?usp=sharing&quot;&gt;Supply chain security / SBOM&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Weekly&lt;/td&gt;
&lt;td&gt;fwe@google.com&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;

&lt;p&gt;Interested in learning about SIGs or starting a new one? Find more information on our &lt;a href=&quot;https://bazel.build/community/sig&quot;&gt;website&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Want to get your SIG listed? Please add it to the &lt;a href=&quot;https://github.com/bazelbuild/community/tree/main/sigs&quot;&gt;Community repository&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;Ideas, feedback, and submissions are welcome!&lt;/h2&gt;

&lt;p&gt;Thank you for reading this edition! Let us know if you’d like to see any new information or changes in future community updates by reaching out to product@bazel.build. We look forward to hearing from you.&lt;/p&gt;

&lt;p&gt;Thanks,&lt;/p&gt;

&lt;p&gt;Google Bazel team&lt;/p&gt;

&lt;p&gt;&lt;em&gt;*Copyright © 2025 JetBrains s.r.o. JetBrains and IntelliJ are registered trademarks of JetBrains s.r.o.&lt;/em&gt;&lt;/p&gt;
</description>
      <pubDate>Fri, 04 Jul 2025 00:00:00 +0000</pubDate>
    </item>
  
    <item>
      <title>Bazel Q1 2025 Community Update</title>
      <link>/2025/04/10/bazel-q1-2025-community-update.html</link>
      <description>&lt;h2&gt;Announcements&lt;/h2&gt;

&lt;h3&gt;10th Anniversary of Bazel’s Public Launch&lt;/h3&gt;

&lt;p&gt;We have gone a long way since &lt;a href=&quot;https://blog.bazel.build/2015/03/27/Hello-World.html&quot;&gt;we first said ‘’Hello World’’&lt;/a&gt;. Reflecting on this milestone, we just want to say thank you to all of you—our users, contributors, and the amazing community—who’ve been a part of this journey. Whether you’ve been with us since the beginning or joined along the way, your support, feedback, and collaboration have shaped Bazel into what it is today. Thank you for 10 years together!&lt;/p&gt;

&lt;h3&gt;Q4 2024 - Bazel 8 and BazelCon&lt;/h3&gt;

&lt;p&gt;In December, we launched Bazel 8, making a big step towards a better and more efficient build experience for our users. The community has played a great role in shaping 8.0, with every bug report, code contribution and improvement discussions.&lt;/p&gt;

&lt;p&gt;You can learn more at - &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.bazel.build/2024/12/09/bazel-8-release.html&quot;&gt;Bazel 8.0 LTS&lt;/a&gt; - blog post with all highlights of this release&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/bazelbuild/bazel/releases/tag/8.0.0&quot;&gt;Release notes&lt;/a&gt; - for a deeper dive&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In November, we had the pleasure of co-hosting the community at BazelCon in California. With two days jam packed with exceptional talks, Birds of a Feather sessions and after-hours discussions, it was an unforgettable experience. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://opensource.googleblog.com/2024/12/bazelcon-2024-bazel-8-launch.html&quot;&gt;BazelCon 2024: A celebration of community and the launch of Bazel 8&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.bazel.build/2024/11/19/bazelcon-recap.html&quot;&gt;BazelCon 2024 Recap: Recordings and Birds of a Feather Session Notes&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.youtube.com/playlist?list=PLbzoR-pLrL6ptKfAQNZ5RS4HMdmeilBcw&quot;&gt;BazelCon 2024 talks - full playlist&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The event was so amazing, and we are already planning to do it all over again in 2025!&lt;/p&gt;

&lt;h3&gt;Bazel User Survey&lt;/h3&gt;

&lt;p&gt;Thank you to everyone who took the time to fill out our 2025 user survey. We&amp;#39;ve read through all your feedback, and while most of you seem to be pretty happy with Bazel, we definitely hear your concerns and we&amp;#39;re committed to making things even better.&lt;/p&gt;

&lt;p&gt;You can find the survey result at &lt;a href=&quot;https://github.com/bazelbuild/bazel/discussions/25659&quot;&gt;Bazel User Survey Results 2025&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Your feedback is incredibly valuable, and it helps us prioritize improvements for Bazel. We&amp;#39;re grateful for your support and patience as we move forward. Stay tuned for upcoming updates!&lt;/p&gt;

&lt;h3&gt;BCR Module growth&lt;/h3&gt;

&lt;p&gt;Since the release of Bazel 8, the Bazel Central Registry (BCR) has seen a significant increase in modules, growing from approximately 500 to over 650. This growth reflects the active contributions from the Bazel community, for which we are deeply grateful.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/bazel-q1-2025-bcr-modules.png&quot;/&gt;&lt;/p&gt;

&lt;p&gt;To help Bazel grow further, &lt;a href=&quot;https://github.com/bazelbuild/bazel-central-registry/issues?q=is%3Aissue%20state%3Aopen%20label%3A%22module%20wanted%22%20sort%3Areactions-%2B1-desc&quot;&gt;check out the list of top wanted modules&lt;/a&gt;! By contributing a module, you’re not only sharing your knowledge but also helping others save time, solve problems, and innovate faster.&lt;/p&gt;

&lt;h2&gt;Product Updates&lt;/h2&gt;

&lt;h3&gt;Bazel 9 roadmap&lt;/h3&gt;

&lt;p&gt;We&amp;#39;ve shared our &lt;a href=&quot;https://bazel.build/about/roadmap&quot;&gt;roadmap for 2025&lt;/a&gt;, with planned features for the Bazel 9 release at the end of the year. Notable items include deprecation of WORKSPACE functionality, Starlarkification of C++ rules and removal of autoloads, lazy evaluation of symbolic macros, and a new project-based model to reduce the cognitive burden introduced by Bazel flags. Let us know what you think!&lt;/p&gt;

&lt;h3&gt;Releases&lt;/h3&gt;

&lt;p&gt;Bazel &lt;a href=&quot;https://github.com/bazelbuild/bazel/issues/25220&quot;&gt;8.2&lt;/a&gt; is in progress, with the 3rd release candidate released in early April. Please follow the release tracker for updates and get your cherry-picks in by the cut-off dates.&lt;/p&gt;

&lt;p&gt;Recap of Q1 releases:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Bazel &lt;a href=&quot;https://github.com/bazelbuild/bazel/releases/tag/7.6.0&quot;&gt;7.6&lt;/a&gt; was released in March ‘25.&lt;/li&gt;
&lt;li&gt;Bazel &lt;a href=&quot;https://github.com/bazelbuild/bazel/releases/tag/8.1.0&quot;&gt;8.1&lt;/a&gt; was released in February ‘25, along with patch &lt;a href=&quot;https://github.com/bazelbuild/bazel/releases/tag/8.1.1&quot;&gt;8.1.1&lt;/a&gt;. &lt;/li&gt;
&lt;li&gt;Bazel &lt;a href=&quot;https://github.com/bazelbuild/bazel/releases/tag/7.5.0&quot;&gt;7.5&lt;/a&gt; was released in January ‘25.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;Community Corner&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Build Meetups&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;22nd May - &lt;a href=&quot;https://meetup.build/&quot;&gt;London Build Meetup&lt;/a&gt; Jane Street&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Articles&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://fzakaria.com/2025/01/12/bazel-knowledge-be-mindful-of-build-without-the-bytes.html&quot;&gt;Bazel Knowledge: Be mindful of Build Without the Bytes (bwob)&lt;/a&gt; - Farid Zakaria&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://fzakaria.com/2025/01/28/bazel-build-event-protocol-viewer&quot;&gt;Bazel: Build Event Protocol Viewer&lt;/a&gt; - Farid Zakaria&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.snowflake.com/en/engineering-blog/fast-reliable-builds-snowflake-bazel/&quot;&gt;Fast and Reliable Builds at Snowflake with Bazel&lt;/a&gt; - Julio Merino&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.buildbuddy.io/blog/unusual-builds-w-bytes/&quot;&gt;Unusual Builds with Bytes&lt;/a&gt; - Son Luong Ngoc @BuildBuddy&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.buildbuddy.io/blog/bisect-bazel&quot;&gt;Troubleshooting Bazel with Git Bisect&lt;/a&gt; - Son Luong Ngoc @BuildBuddy&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.engflow.com/2025/01/16/migrating-to-bazel-modules-aka-bzlmod---module-extensions/&quot;&gt;Migrating to Bazel Modules (a.k.a. Bzlmod) - Module Extensions&lt;/a&gt; - Mike Bland @EngFlow&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://blog.engflow.com/2025/03/25/migrating-to-bazel-modules-aka-bzlmod---fixing-and-patching-breakages/&quot;&gt;Migrating to Bazel Modules (a.k.a. Bzlmod) - Fixing and Patching Breakages&lt;/a&gt; - Mike Bland @EngFlow&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://narang99.github.io/2025-03-22-monorepo-bazel-jenkins/&quot;&gt;Beautiful CI for Bazel&lt;/a&gt; - Hariom Narang
Videos&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://fosdem.org/2025/schedule/event/fosdem-2025-4249-advanced-build-tools-and-remote-execution-api/&quot;&gt;Advanced Build Tools and Remote Execution API&lt;/a&gt; - Son Luong Ngoc @BuildBuddy&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=FQJo73XatnM&quot;&gt;Writing Your Own BUILD Generator in Starlark&lt;/a&gt; - Alex Eagle @Aspect&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;Resources&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;GitHub repository: &lt;a href=&quot;https://github.com/bazelbuild/bazel&quot;&gt;https://github.com/bazelbuild/bazel&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Releases: &lt;a href=&quot;https://github.com/bazelbuild/bazel/releases&quot;&gt;https://github.com/bazelbuild/bazel/releases&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Slack chat: &lt;a href=&quot;https://slack.bazel.build&quot;&gt;https://slack.bazel.build&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Google group: bazel-discuss@googlegroups.com&lt;/li&gt;
&lt;li&gt;Special Interest Groups (SIG):&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Reach out the email(s) listed below if you’d like to be added to the SIG calendar invites.&lt;/p&gt;

&lt;table&gt;&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;strong&gt;SIG&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Meeting frequency&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Point of contact&lt;/strong&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://github.com/bazelbuild/community/tree/main/sigs/rules-authors&quot;&gt;Rules authors&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Every two weeks&lt;/td&gt;
&lt;td&gt;bazel-contrib@googlegroups.com&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://docs.google.com/document/d/1Sv227BguEekx5Q3lwSdPEQqpkHAng6J6gNCNZqJLbtw/edit?resourcekey=0-GK_iaQRAEAu3aYslzlrEfQ&amp;tab=t.0#heading=h.dzj8kjjzgp3s&quot;&gt;Android app development&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Monthly&lt;/td&gt;
&lt;td&gt;ahumesky@google.com&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://github.com/bazelbuild/community/tree/main/sigs/bazel-intellij&quot;&gt;Bazel plugin for IntelliJ&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Monthly&lt;/td&gt;
&lt;td&gt;messa@google.com&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://docs.google.com/document/d/1EtQMTn-7sKFMTxIMlb0oDGpvGCMAuzphVcfx58GWuEM/edit?tab=t.0#heading=h.ol6wthckmbcw&quot;&gt;Remote execution API working group&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Monthly&lt;/td&gt;
&lt;td&gt;chiwang@google.com&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href=&quot;https://docs.google.com/document/d/1WhScaOLERet4Fxi4fa2Lpke2MgJZGvEE4EXeq6yb0LU/edit?usp=sharing&quot;&gt;Supply chain security / SBOM&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Weekly&lt;/td&gt;
&lt;td&gt;fwe@google.com&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;

&lt;p&gt;Interested in learning about SIGs or starting a new one? Find more information on our &lt;a href=&quot;https://bazel.build/community/sig&quot;&gt;website&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Want to get your SIG listed? Please add it to the &lt;a href=&quot;https://github.com/bazelbuild/community/tree/main/sigs&quot;&gt;Community repository&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;Ideas, feedback, and submissions are welcome!&lt;/h2&gt;

&lt;p&gt;Thank you for reading this edition! Let us know if you’d like to see any new information or changes in future community updates by reaching out to product@bazel.build. We look forward to hearing from you.&lt;/p&gt;

&lt;p&gt;Thanks,&lt;/p&gt;

&lt;p&gt;Google Bazel team&lt;/p&gt;

&lt;p&gt;&lt;em&gt;*Copyright © 2025 JetBrains s.r.o. JetBrains and IntelliJ are registered trademarks of JetBrains s.r.o.&lt;/em&gt;&lt;/p&gt;
</description>
      <pubDate>Thu, 10 Apr 2025 00:00:00 +0000</pubDate>
    </item>
  
    <item>
      <title>Bazel 8.0 LTS</title>
      <link>/2024/12/09/bazel-8-release.html</link>
      <description>&lt;p&gt;We&amp;#39;re pleased to announce the release of Bazel 8.0!&lt;/p&gt;

&lt;p&gt;This LTS release marks a significant step forward for Bazel, offering a more streamlined and efficient build experience. With Bzlmod as the default for dependency management and major rulesets fully migrated to Starlark, Bazel 8.0 empowers you to build with greater speed and flexibility.
This release also includes a number of bug fixes, performance enhancements, and new features to improve your workflow.&lt;/p&gt;

&lt;p&gt;Read on to explore the key highlights of Bazel 8.0, and be sure to check out the &lt;a href=&quot;https://github.com/bazelbuild/bazel/releases/tag/8.0.0&quot;&gt;full release notes&lt;/a&gt; for a complete overview of the changes.&lt;/p&gt;

&lt;h2&gt;Bazel 8 key highlights&lt;/h2&gt;

&lt;h3&gt;Starlarkification: modularization of rules&lt;/h3&gt;

&lt;p&gt;A significant change in Bazel 8.0 is the ongoing effort to modularize rules using Starlark. Many rules previously bundled with Bazel are now split into their own modules. This includes rules for Android, C++, Java, Protobuf, and Shell.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Android:&lt;/strong&gt; All &lt;code&gt;android_*&lt;/code&gt; build and repo rules have migrated to &lt;a href=&quot;https://github.com/bazelbuild/rules_android&quot;&gt;rules_android&lt;/a&gt;. Android tools are no longer bundled within Bazel.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;C++:&lt;/strong&gt; All C++ toolchain-related symbols have been moved to &lt;a href=&quot;http://github.com/bazelbuild/rules_cc&quot;&gt;rules_cc&lt;/a&gt;. Other symbols, including the rules themselves, will be moved in a future release.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Java:&lt;/strong&gt; All &lt;code&gt;java_*&lt;/code&gt; rules now reside in &lt;a href=&quot;https://github.com/bazelbuild/rules_java&quot;&gt;rules_java&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Protobuf:&lt;/strong&gt; &lt;code&gt;*_proto_library&lt;/code&gt; rules have been moved to &lt;a href=&quot;https://github.com/protocolbuffers/protobuf&quot;&gt;protobuf&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Python:&lt;/strong&gt; All &lt;code&gt;py_*&lt;/code&gt; rules and providers (like PyInfo) have been moved to &lt;a href=&quot;http://github.com/bazelbuild/rules_python&quot;&gt;rules_python&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Shell:&lt;/strong&gt; All &lt;code&gt;sh_*&lt;/code&gt; rules are now part of &lt;a href=&quot;https://github.com/bazelbuild/rules_shell&quot;&gt;rules_shell&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;To ease this transition, Bazel 8.0 introduces the &lt;code&gt;--incompatible_autoload_externally&lt;/code&gt; flag which automatically loads rules from their respective repositories, thus removing the need for an imminent migration. The migration to use load statements needs to happen in 2025 before Bazel 9 is released. Load statements are supported on Bazel versions 6, 7 and 8, so the migration is largely independent of the Bazel version.&lt;/p&gt;

&lt;h3&gt;Bzlmod: the new default for dependency management&lt;/h3&gt;

&lt;p&gt;Bzlmod was introduced in Bazel 5 in 2021 as an experimental feature, it became GA in Bazel 6 and turned on in Bazel 7. In Bazel 8, the new powerful external dependencies system works with the old WORKSPACE mechanism turned off by default. This shift means that Bazel no longer automatically reads the &lt;code&gt;WORKSPACE&lt;/code&gt; and &lt;code&gt;WORKSPACE.bzlmod&lt;/code&gt; files when building your project. These files were previously required for defining external repositories and dependencies, but Bzlmod offers a more modern and efficient approach.&lt;/p&gt;

&lt;p&gt;Since Bzlmod was launched, the &lt;a href=&quot;https://registry.bazel.build/&quot;&gt;Bazel Central Registry&lt;/a&gt; growth has accelerated from Bazel release to Bazel release:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/bazel8.png&quot; style=&quot;width:50%; height:50%;&quot;/&gt;&lt;/p&gt;

&lt;p&gt;The BCR now hosts more than 500 Bazel modules with 2500+ different versions.&lt;/p&gt;

&lt;p&gt;We encourage all users to migrate to Bzlmod and take advantage of its benefits. Take a look at this &lt;a href=&quot;https://bazel.build/external/migration&quot;&gt;migration guide&lt;/a&gt; for step-by-step instructions and best practices for moving from the traditional WORKSPACE setup to the streamlined Bzlmod system.&lt;/p&gt;

&lt;p&gt;We are aiming to remove all WORKSPACE functionalities in Bazel 9.&lt;/p&gt;

&lt;h3&gt;Symbolic macros&lt;/h3&gt;

&lt;p&gt;Symbolic macros offer a new way to write macros that are safer to use and that catch bugs sooner. For example, their arguments are typed like rule attributes, and the author decides which attributes permit select()s based on whether the macro needs to examine that value or pass it through. With Symbolic macros come several related features:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A new macro-aware visibility model, which protects a macro&amp;#39;s internal targets from being depended on by its caller&lt;/li&gt;
&lt;li&gt;Rule Finalizers, which are macros that can call &lt;code&gt;native.existing_rules()&lt;/code&gt; with less surprising behavior&lt;/li&gt;
&lt;li&gt;A way for a macro to inherit the attribute schema of another rule or macro that it wraps.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Check out the &lt;a href=&quot;https://bazel.build/extending/macros&quot;&gt;documentation on macros&lt;/a&gt; for more details.&lt;/p&gt;

&lt;h2&gt;Bazel 5 deprecation&lt;/h2&gt;

&lt;p&gt;With the launch of Bazel 8.0, we&amp;#39;re announcing the upcoming deprecation of Bazel 5.0. Starting January 2025, Bazel 5 will no longer receive critical bug fixes, security updates, or OS compatibility support.&lt;/p&gt;

&lt;p&gt;We strongly encourage you to upgrade to Bazel 8.0 to benefit from the latest features, performance improvements, and ongoing support. You can also opt for a rolling release to stay up-to-date with the newest developments at HEAD.&lt;/p&gt;

&lt;p&gt;Refer to our &lt;a href=&quot;https://bazel.build/release&quot;&gt;release model&lt;/a&gt; for more details.&lt;/p&gt;

&lt;h2&gt;What’s next?&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Try out Bazel 8.0!&lt;/strong&gt; This is a significant release that brings a wealth of improvements. We encourage all Bazel users to explore the new features and migrate to Bazel 8.0 to take advantage of its enhancements. Questions? Want to discuss something specific? File an &lt;a href=&quot;https://github.com/bazelbuild/bazel&quot;&gt;issue&lt;/a&gt; or start a &lt;a href=&quot;https://github.com/bazelbuild/bazel/discussions&quot;&gt;discussion&lt;/a&gt; on GitHub so we can take a look.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Stay connected!&lt;/strong&gt; To stay up-to-date on all things Bazel, read the Bazel &lt;a href=&quot;https://blog.bazel.build/&quot;&gt;blog&lt;/a&gt;, join our &lt;a href=&quot;https://slack.bazel.build&quot;&gt;Slack&lt;/a&gt;, follow &lt;a href=&quot;http://twitter.com/bazelbuild&quot;&gt;@bazelbuild&lt;/a&gt; on X (Twitter), join the bazel-discuss@googlegroups.com mailing list, or reach out to product@bazel.build. We would love to hear any feedback you may have!&lt;/p&gt;

&lt;p&gt;In closing, we’d like to extend our sincere gratitude to the entire Bazel community. Every bug report, code contribution, ruleset improvement, and discussion played a role in shaping Bazel 8.0. Thank you for your continued support and dedication to making Bazel better with every release!&lt;/p&gt;
</description>
      <pubDate>Mon, 09 Dec 2024 00:00:00 +0000</pubDate>
    </item>
  
</channel>

</rss>
