Loading…
BazelCon 2024
October 14-15, 2024
Mountain View, CA
View More Details & Registration

The Sched app allows you to build your schedule but is separate from your event registration. You must be registered for BazelCon 2024 to participate in the sessions. If you have not registered but would like to join us, please go to the event registration page to registration.

This schedule is automatically displayed in Pacific Daylight Time (PDT) | UTC -7. To see the schedule in your preferred timezone, please select from the drop-down located at the bottom of the menu to the right.

IMPORTANT NOTE: Timing of sessions and room locations are subject to change.
Monday, October 14
 

8:00am PDT

Registration + Badge Pick-up
Monday October 14, 2024 8:00am - 5:00pm PDT
Monday October 14, 2024 8:00am - 5:00pm PDT
Grand Lobby

9:00am PDT

Keynote Session To Be Announced
Monday October 14, 2024 9:00am - 9:30am PDT
Monday October 14, 2024 9:00am - 9:30am PDT
Hahn Auditorium

9:30am PDT

State of the Union
Monday October 14, 2024 9:30am - 10:00am PDT
Monday October 14, 2024 9:30am - 10:00am PDT
Hahn Auditorium

10:00am PDT

The Classics Never Go Out of Style: An Empirical Study of Downgrades from Bazel - Mahmoud Alfadel & Shane McIntosh, University of Waterloo
Monday October 14, 2024 10:00am - 10:30am PDT
Enticed by advanced features, several software teams have migrated their build systems to a modern generation of build technologies, such as Bazel. However, not all migrations lead to perceived improvements, ultimately culminating in abandonment of the build technology. In this talk, we will present the results of our recent empirical study of 542 open-source projects that adopt Bazel. We observed that (1) 61 projects (11.2%) have abandoned Bazel; and (2) abandonment tends to occur after investing in Bazel for a substantial amount of time (a median of 638 days). Thematic analysis reveals seven recurring reasons for abandonment, such as technical challenges, lack of platform integration, team coordination issues, and upstream trends. After abandoning Bazel, the studied projects have adopted a broad set of alternatives, spanning from language-specific tools like Go Build, to more traditional build technologies like CMake and even pure Make.
Speakers
avatar for Mahmoud Alfadel

Mahmoud Alfadel

Postdoctoral Researcher, University of Waterloo
I am a postdoctoral researcher at the REBELs Lab in the Cheriton School of Computer Science at the University of Waterloo. I earned my PhD in Software Engineering from Concordia University (Montreal). My research uses empirical software engineering techniques to enhance security and... Read More →
avatar for Shane McIntosh

Shane McIntosh

Associate Professor, University of Waterloo
At the University of Waterloo, I lead the Software Repository Excavation and Build Engineering Labs (the Software REBELs). My trainees and I perform empirical studies that mine historical data generated during the development of software systems to study devops and software quali... Read More →
Monday October 14, 2024 10:00am - 10:30am PDT
Hahn Auditorium

10:30am PDT

Break
Monday October 14, 2024 10:30am - 10:45am PDT
Monday October 14, 2024 10:30am - 10:45am PDT
Grand Hall

10:30am PDT

Solutions Showcase
Monday October 14, 2024 10:30am - 7:30pm PDT
Visit the sponsor tables in the Grand hall!
Monday October 14, 2024 10:30am - 7:30pm PDT
Grand Hall

10:45am PDT

Post Mortems for 4 Years of Remote Execution - Ulf Adams, EngFlow Inc.
Monday October 14, 2024 10:45am - 11:15am PDT
We have been running RE for several years. In this talk, we present what we have learned - the hard way - during this time, with the hope that this will help others who are building or operating a remote execution service prevent similar issues. We will cover these themes: cloud infrastructure limits, memory management pitfalls, software architecture oh-nos, and monitoring mistakes.
Speakers
avatar for Ulf Adams

Ulf Adams

CTO & Co-Founder, EngFlow Inc., EngFlow Inc.
MS in Computer Science from Stanford University, 11 years at Google as TLM for Blaze & Bazel. Now CTO & Co-Founder of EngFlow.
Monday October 14, 2024 10:45am - 11:15am PDT
Hahn Auditorium

10:45am PDT

Simplicity Steering Group - Farid Zakaria, Confluent
Monday October 14, 2024 10:45am - 11:45am PDT
Bazel is a great tool and has inspired dozens of imitators. It's success and desire to fulfill the need of many requirements (arch, platform, OS etc..) has resulted in a Bazel much more complicated than the original incarnation when the principles were simpler and needed everything to be vendored. Proper use of Bazel now almost always requires a hand-tuned .bazelrc file and a dizzying array of external rules. While bzlmod has made figuring out the dependency version management it's continued to feed the growth of complexity. What can we do to make Bazel usable and simple on it's own.
Speakers
avatar for Farid Zakaria

Farid Zakaria

Principal Engineer, Confluent
I am a software engineer, father, and wishful surfer. I currently work at Google and am also pursuing a Ph.D. in computer science at the University of California Santa Cruz. More relevant to Nix, I am a NixOS enthusiast, which has led me to rethink basic Linux primitives.
Monday October 14, 2024 10:45am - 11:45am PDT
Lovelace

11:15am PDT

Lessons from a Large JVM Monorepo - Janusz Kudelka, Airbnb
Monday October 14, 2024 11:15am - 11:45am PDT
Airbnb's JVM monorepo hosts 10s of millions of lines of Java, Kotlin and Scala. Each language posing unique challenges. This talk will show how we solved many of them, examples include: * importance of Remote Persistent Workers for RBE and how to maintain them * supporting cross-platform builds (mac and linux, x86 and arm) with universal binaries allowing cache sharing and dynamic execution across * safe and efficient usage of multiple source and runtime versions: mixed java 8 and 17, gradual runtime migrations, supporting multiple scala versions * our approach to compilation avoidance * straight to bytecode codegen when all other optimizations are not enough * what we tried that didn't work * ... and more
Speakers
avatar for Janusz Kudelka

Janusz Kudelka

Software Engineer, Airbnb
Janusz Kudelka is a Software Engineer with 10+ years of infrastructure experience with the last 5 years on Developer Infrastructure at Airbnb where he tries to make sure the developers are equipped to engineer the best software of their careers.
Monday October 14, 2024 11:15am - 11:45am PDT
Hahn Auditorium

11:50am PDT

Making Builds Cheaper by Deduplicating Actions with RBE - Christian Scott, Canva
Monday October 14, 2024 11:50am - 12:00pm PDT
In this session I will discuss remote action deduplication, a feature of some Bazel RBE backends. I will explain the problem it solves, how it works, and some details about how well it has worked for us. I'll also quickly touch on merge queues, and mention some RBE backends that support the feature. --- If you run builds on every master commit, and you have commits landing more quickly than your slowest action can finish, you'll end up rebuilding unnecessarily. We estimated that our slowest webpack action was being re-run unnecessarily 66% of the time! This action is an input to a large number of expensive integration tests so it's very likely that we're also wasting a lot of compute on those tests as well. The web page builds and tests account for the vast majority of the compute we use in CI. The number of wasted builds would be even higher if we were using a merge queue, so we have been forced to stick to a conventional merge strategy. By running these builds remotely and using an RBE backend that supports action deduplication, we've massively (25%, more expected by BazelCon) reduced the amount of compute needed to build and test web pages.
Speakers
avatar for Christian Scott

Christian Scott

Software Engineer, Canva
Working on making the build and test experience faster and more reliable for frontend engineers at Canva.
Monday October 14, 2024 11:50am - 12:00pm PDT
Hahn Auditorium
  Lightning Talks

12:00pm PDT

Building 1300 Container Images in 4 Minutes - Sushain Cherivirala, Stripe
Monday October 14, 2024 12:00pm - 12:10pm PDT
Container images are a ubiquitous mechanism for deploying applications in the modern computing landscape. Everything from services deployed on bare-metal Kubernetes to AWS Lambda functions depend on container images. Building these images quickly and efficiently is critical to keeping CI/CD responsive. In recent years, Stripe has undergone dual migrations. One, to a service oriented architecture. Two, to running services inside Kubernetes. Together, these migrations meant our CI pipelines to build containers became slower and more expensive with each passing month. With a build producing over a terabyte of images, Bazel just couldn't build them fast enough! Even disk space was in short supply. Learn how we flipped the script on our container builds by leveraging BwoB (Build without the Bytes). Now, we can build 1300+ container images in just a couple minutes with plenty of headroom for more. Bazel's entire output space fits in RAM and there's never a single byte of container images on disk!
Speakers
avatar for Sushain Cherivirala

Sushain Cherivirala

Staff Software Engineer, Stripe
Sushain is the tech lead for Stripe's Build Infra team. He joined Stripe from Stanford and Carnegie Mellon in 2019 and has been evangelizing Bazel ever since. In addition to writing Stripe's Ruby and JavaScript rulesets, Sushain has migrated millions of lines of Stripe code and hundreds... Read More →
Monday October 14, 2024 12:00pm - 12:10pm PDT
Hahn Auditorium

12:10pm PDT

Achieving Performant Remote Bazel Builds for Web Monorepos at Scale - Sharmila Jesupaul, Airbnb
Monday October 14, 2024 12:10pm - 12:20pm PDT
In this talk, you'll gain practical insights from our experience migrating Airbnb's web monorepo (which houses millions of lines of TS/JS code) to Bazel, with a focus on preparing NodeJS tooling for remote builds. We developed methods and tooling to trim down input sizes, share the cache between MacOS and Linux, persist caches through remote builds, catch and fix non-deterministic builds, and automatically generate BUILD files from JS/TS code. This helped us create a robust system for adopting Bazel without compromising on developer experience. These insights are designed to help you navigate similar migrations, improve build performance, and reuse builds across platforms.
Speakers
avatar for Sharmila Jesupaul

Sharmila Jesupaul

Staff Software Engineer @ Airbnb, Airbnb
Sharmila Jesupaul is a Staff Software Engineer with a passion for Bazel, TypeScript & JavaScript tools, and developer process & productivity. A former web developer turned infrastructure engineer, she has spent the last five years at Airbnb working on web build-tools, testing tools... Read More →
Monday October 14, 2024 12:10pm - 12:20pm PDT
Hahn Auditorium
  Lightning Talks

12:20pm PDT

Lunch
Monday October 14, 2024 12:20pm - 1:30pm PDT
Monday October 14, 2024 12:20pm - 1:30pm PDT
Grand Hall

1:30pm PDT

Perfect Sandboxing in Bazel - Rahul Butani, Intel
Monday October 14, 2024 1:30pm - 2:00pm PDT
Complete dependency graphs are at the heart of what gives Bazel its power and sandboxing plays a key role in keeping these graphs correct. However: Bazel's approach to sandboxing makes some concessions. With cooperation from tools this works well, but — what happens when your tools aren't well-behaved? In this talk, we detail how we — in service of migrating a 20 year old codebase to Bazel — extended Bazel and its sandbox to encode and enforce all host filesystem dependencies in Bazel's dependency graph. We'll cover the changes we had to make to use existing rulesets, how this compares with alternative solutions to this problem, lessons we learned along the way, and some takeaways for the broader ecosystem.
Monday October 14, 2024 1:30pm - 2:00pm PDT
Hahn Auditorium

1:30pm PDT

Swift and Apple BoF - Brentley Jones, Reddit & Keith Smiley, Modular
Monday October 14, 2024 1:30pm - 2:30pm PDT
Discussing the last year of rules_swift, rules_apple, rules_xcodeproj, and rules_swift_package_manager updates, where we are going with the rulesets. Lots of time at the end will be open Q&A.
Speakers
avatar for Brentley Jones

Brentley Jones

Staff Engineer, Reddit
Brentley is a Staff Engineer on the iOS Platform Build team at Reddit. He was previously a Developer Evangelist at BuildBuddy, and before that lead Bazel usage on the Client Tooling teams at Target and Lyft. Brentley is the creator of rules_xcodeproj; a maintainer of rules_apple... Read More →
avatar for Keith Smiley

Keith Smiley

Platform Engineer, Modular
Keith works on developer experience at Modular. He is a maintainer of bazel's iOS support, a LLVM & Swift contributor, and previously worked on developer experience at Lyft.
Monday October 14, 2024 1:30pm - 2:30pm PDT
Lovelace
  Birds of a Feather
  • Audience Level Any

2:00pm PDT

Running a Start-up on Bazel - Prasanna Swaminathan, Ergatta
Monday October 14, 2024 2:00pm - 2:30pm PDT
Bazel is typically described as a build system meant for large-scale systems. It's also described as a build system meant for teams with dedicated help to Bazel. But...what if you have neither? What if you are a small-scale start-up? Start-ups, by their nature, rarely have a spare headcount to devote to a build systems engineer. Their codebases are also usually pretty small. Why on Earth would you use Bazel in that context? Ergatta *is* using Bazel in that context. Ergatta has [note: I can put the real amount in here if this is accepted] LOC. Ergatta does not have the headcount to devote an engineer to Bazel. How does it work? How does a start-up with a 10-person engineering team work with a system that notoriously requires so much maintenance? In this talk, I'll talk about why we would ever entertain such a notion, what makes Bazel work for us, and how we remain productive in these times.
Speakers
avatar for Prasanna Swaminathan

Prasanna Swaminathan

CTO & Co-Founder, Ergatta
Prasanna is a co-founder and the CTO of Ergatta. Prior to starting Ergatta, he was primarily in the ad tech space, working on setting up global data streaming systems for Fortune 500 companies.
Monday October 14, 2024 2:00pm - 2:30pm PDT
Hahn Auditorium

2:30pm PDT

Break
Monday October 14, 2024 2:30pm - 2:45pm PDT
Monday October 14, 2024 2:30pm - 2:45pm PDT
Grand Hall

2:45pm PDT

Pigweed and Bazel for Embedded Development - Ted Pudlik, Google, LLC
Monday October 14, 2024 2:45pm - 3:15pm PDT
Pigweed is an open-source collection of embedded libraries. We aim to make Bazel the best build system for developing microcontroller firmware. In this talk, I'll discuss how Pigweed leverages Bazel's build configuration APIs and platforms to solve common problems in building embedded firmware: building binaries for multiple cores in one Bazel invocation, compiling flasher scripts that embed the firmware, creating libraries with platform-specific implementations, and more!
Speakers
avatar for Ted Pudlik

Ted Pudlik

Staff Software Engineer, Google, LLC
I am a software engineer at Google. I was originally trained as a theoretical physicist, spent a couple years predicting the impact of network maintenance, then three more in the lidar group at Waymo. I currently work on Pigweed, focusing on making Bazel the best build system for... Read More →
Monday October 14, 2024 2:45pm - 3:15pm PDT
Hahn Auditorium

2:45pm PDT

Remote Execution Birds of a Feather - Chi Wang & Tiago Quelhas, Google
Monday October 14, 2024 2:45pm - 3:45pm PDT
We'll give an update on recent developments in the remote caching and execution space and give the community an opportunity to influence the direction of future efforts. Highlights: - Remote Output Service - Garbage collection for disk cache - Compact execution log - Async execution with virtual threads - Async upload enabled by default
Speakers
avatar for Tiago Quelhas

Tiago Quelhas

Software Engineer, Google
Tiago Quelhas is a Software Engineer in the Bazel team at Google. His primary area of focus is remote execution. He has previously worked on the build and serving infrastructure that powers web applications at Google.
avatar for Chi Wang

Chi Wang

Software Engineer, Google
Chi Wang is a Software Engineer in the Bazel team at Google. He works on remote execution for Bazel and the internal equivalent for Blaze. Before joining Google, he spent most of his time designing and implementing distributed computing systems.
Monday October 14, 2024 2:45pm - 3:45pm PDT
Lovelace

3:15pm PDT

Spotify's Journey to Releasing One of the World's Largest Apps with Bazel - Luka Cindro & Gabriel Borglund, Spotify
Monday October 14, 2024 3:15pm - 3:45pm PDT
At Spotify, we migrated the Android Music app, consisting of 5 million lines of Kotlin, Java and C++ code, from Gradle to Bazel. This talk covers the how we did it, the challenges we faced and how we overcame them. We'll go into how we used a hybrid build to migrate the codebase iteratively, the various patches and performance improvements we made to Bazel and the features we implemented to release the app to end users.
Speakers
avatar for Gabriel Borglund

Gabriel Borglund

Software Engineer, Spotify
Working on the developer experience at Spotify.
avatar for Luka Cindro

Luka Cindro

Staff Engineer, Spotify
Luka is a Staff Engineer at Spotify, where he has worked for 8 years. He focuses on client developer experience and infrastructure, which includes using Bazel for building, testing and releasing Spotify's apps. Prior to that, he worked on Android app architecture.
Monday October 14, 2024 3:15pm - 3:45pm PDT
Hahn Auditorium

3:45pm PDT

Break
Monday October 14, 2024 3:45pm - 4:00pm PDT
Monday October 14, 2024 3:45pm - 4:00pm PDT
Grand Hall

4:00pm PDT

Introducing Remote Bazel - Maggie Lou, BuildBuddy
Monday October 14, 2024 4:00pm - 4:10pm PDT
Many at this conference are familiar with Remote Caching and Remote Execution. Over at BuildBuddy, we’re excited to introduce Remote Bazel - running the Bazel client server and command remotely as well, making your builds even faster and more correct. Even if your builds are triggered by ephemeral CI runners, Remote Bazel will guarantee your builds always run with a warm analysis and repository cache, and remove the need to pull images, install dependencies, and clone git repos on each run. Running builds in the same datacenter as the remote cache and executors also reduces network bottlenecks and egress costs. Even if your company’s developers use machines with different operating systems or versions of tools or don’t even have Bazel installed, Remote Bazel will guarantee that important builds are run in the exact same environment every time. This talk will provide a quick overview of how we built this and the many applications we’re excited about - from speeding up CI to augmenting our UI to improving the daily developer experience via the CLI.
Speakers
avatar for Maggie Lou

Maggie Lou

Software Engineer, BuildBuddy
Maggie is a software engineer at BuildBuddy working on their CI product. She enjoys building features that make her own job easier and faster.
Monday October 14, 2024 4:00pm - 4:10pm PDT
Hahn Auditorium
  Lightning Talks
  • Audience Level Any

4:00pm PDT

Bazel + IDEs BoF - Justin Kaeser & Marcin Abramowicz, JetBrains
Monday October 14, 2024 4:00pm - 5:00pm PDT
As always, we will discuss the state of IDE support in Bazel, the ongoing efforts by JetBrains, Google and others in maintaining the Bazel plugin for IntelliJ. And what better venue to announce the release of our all-new Bazel plugin for IntelliJ!
Speakers
avatar for Marcin Abramowicz

Marcin Abramowicz

IntelliJ Bazel plugin, JetBrains
He is a software engineer at JetBrains, focusing on improving Bazel support in JetBrains products.
avatar for Justin Kaeser

Justin Kaeser

IntelliJ Bazel plugin, JetBrains
Justin believes in "Tools before Rules": automating the development toolchain to remove the friction of dealing with manual processes. He works on this goal as team lead for the Bazel support in IntelliJ IDEA and as customer success engineer at JetBrains.
Monday October 14, 2024 4:00pm - 5:00pm PDT
Lovelace

4:10pm PDT

EngFlow as a Powerful Accelerator for Builds, Tests & Bazel Migrations, and Cloud Cost Reduction - Helen Altshuler, EngFlow Inc.
Monday October 14, 2024 4:10pm - 4:20pm PDT
Learn how to get more value from Bazel for your developer platform with faster migrations and consistently fast builds and tests around the world with cache replication, seamlessly scale remote build execution from 100 to 100,000 cores, get proactive recommendations on further performance improvements, and achieve cloud cost savings from thousands to millions of dollars.
Speakers
avatar for Helen Altshuler

Helen Altshuler

CEO and co-founder, EngFlow
Helen is the CEO and co-founder of EngFlow, a big code developer platform company created by core Bazel engineers and funded by Andreessen Horowitz. She has been a dedicated Bazel community member since 2016, managed enterprise adoption of Bazel at Google and the 1st BazelCon, and... Read More →
Monday October 14, 2024 4:10pm - 4:20pm PDT
Hahn Auditorium

4:20pm PDT

Aspect Build - Alex Eagle, Aspect Build Systems
Monday October 14, 2024 4:20pm - 4:30pm PDT
Aspect authors many of the Bazel rules you know and love. We also provide the missing CI/CD and developer platform to integrate Bazel into your team's workflows and achieve the promised incremental build&test speed while reducing your cloud spend! This talk will update you on our latest and greatest.
Speakers
avatar for Alex Eagle

Alex Eagle

Co-founder and CEO, Aspect Build Systems
Alex worked at Google on Bazel-adjacent systems from 2008-2020. He is a leader of the Bazel OSS community, and the co-founder of Aspect, a Bazel services and product company whose mission is to bring Bazel's promised benefits to all developers.
Monday October 14, 2024 4:20pm - 4:30pm PDT
Hahn Auditorium
  Lightning Talks

4:30pm PDT

Bazel’s Take on (Cc) Shared Libraries - Aloïs Cochard, Modus Create
Monday October 14, 2024 4:30pm - 4:40pm PDT
It took me a while to understand how cc_shared_library works in Bazel. After fighting the system and having reached every possible error message, I took a deep dive into the underlying logic and discovered how powerful that rule is once you understand its opinionated view on shared libraries and the mindset behind the design of the rule. I was also surprised to discover that it relies on Bazel aspects. To the best of my knowledge it is the only core rule that does so. In this presentation I will convey my insights using diagrams depicting how one should reason about cc_shared_library. This will cover how shared libraries are assembled from cc_libraries, how they interact as dependencies of other cc_* rules, and some interesting aspects of the implementation based on… aspects!
Speakers
AC

Aloïs Cochard

Modus Create
Monday October 14, 2024 4:30pm - 4:40pm PDT
Hahn Auditorium

4:40pm PDT

Consistent Hermetic Tooling with Actually Portable Executables - Matt Clarkson, Arm
Monday October 14, 2024 4:40pm - 4:50pm PDT
Actually Portable Executables (APE) is a format of executable that can be ran on Windows, Linux, MacOS, BSDs operating systems from a single binary. A binary can be "fat" to contain both the x86_64 and aarch64 machine code to enable execution on multple CPUs from the same single binary. The `@ape` Bazel module provides the necessary wrappers and launchers to provide common POSIX tooling across all operating systems and CPUs such as `cp`, `mv`, `sed`, `awk` and `curl`. This talk will provide usage information of the `@ape` tools to enable an ecosystem of hermetic tooling for Bazel rulesets that require zero system setup to be used other than a working Bazel installation.

The talk will be split into a few sections:

- An introduction to the Bazel module, it's usage and benefits
- A high level overview into the APE format, Cosmopolitan C library and superconfigure to provide attendees relevant information to understand what the module is providing
- A brief introduction to the ecosystem of hermetic rulesets that expose rules around the APE hermetic binaries, such as `rules_curl`, `rules_gzip`, etc.
Speakers
avatar for Matt Clarkson

Matt Clarkson

Principal Software Engineer, Arm
Matt is a software engineer that has worked up and down the stack throughout his career. His current focus is to bring the benefits of reproducible, hermetic workflows to embedded devices with Bazel. He has previously worked at small sized agile teams before his current role at A... Read More →
Monday October 14, 2024 4:40pm - 4:50pm PDT
Hahn Auditorium

4:50pm PDT

Building a Hermetic Python Environment with Conda in Bazel - Adam Azarchs, 10X Genomics
Monday October 14, 2024 4:50pm - 5:00pm PDT
Bazel’s rules_python supports using a hermetic python environment at build and test time. However, maintaining sufficient similarity between the environment that unit tests are running in under bazel test and the production environment can be challenging, particularly once things like extension modules with nontrivial native dependencies get involved. The conda ecosystem is primarily for python packages, but also includes packages for nearly all of the native dependencies of those python packages as well. This talk describes the bazel rule-set we use to fetch conda packages and deploy them for use both during the bazel build and test, and in production. These rules allow us to provide our customers with a deployment package which they can simply untar and run on a wide range of linux environments with very limited prerequisites, producing several distinct (but overlapping) environments for different products within our monorepo, at the same time ensuring that our unit tests are running in a nearly identical environment, all while maintaining acceptable build times.
Speakers
avatar for Adam Azarchs

Adam Azarchs

Principal Software Engineer, 10X Genomics
17 years in the software industry, across many different platforms (including 2 years in YouTube, where I learned to use blaze), I now spend most of my time helping computational biologists deliver production-quality software.
Monday October 14, 2024 4:50pm - 5:00pm PDT
Hahn Auditorium

5:00pm PDT

Bazel: {Fast, Correct, Seamless}: Choose 3 - Srini Muthu, LinkedIn
Monday October 14, 2024 5:00pm - 5:10pm PDT
While Bazel excels in speed and accuracy, its integration with native ecosystems, particularly IDE support, has been lacking. Jay Conrod’s 2022 BazelCon talk highlighted how this hinders adoption, echoing our observations at LinkedIn. The model recommended in that talk was to have the language server use a build adapter as a liaison to Bazel to correctly resolve imports. Since then, Bzlmod and Uber’s go_deps module extension have enabled us to treat go.mod as the source of truth for Go dependencies thereby removing the need for lengthy WORKSPACE files and constant updates via gazelle-update-repos. While these significantly moved the needle, they didn’t support multi module workspaces, still relied on the build adapter model for IDE support and had no native CLI support. At LinkedIn, we sought to address these gaps. We added Go workspace support to Gazelle and introduced a setup rule wherein Bazel bootstraps the Go SDK, sets Go env vars such as GOPATH within the Bazel workspace and informs IDEs and shells via settings files and direnv, thus providing a seamless developer experience. This has enabled us to drive developer adoption across a poly repo ecosystem at LinkedIn.
Speakers
avatar for Srini Muthu

Srini Muthu

Srinivas Muthu, LinkedIn
Hi there, I'm Srini. I work with the Build Platforms team at LinkedIn, primarily with ecosystems that are powered by Bazel. Previously I worked at Apple Maps building pipelines for geospatial data crunching. Outside of work I enjoy riding bicycles, climbing rocks and spending time... Read More →
Monday October 14, 2024 5:00pm - 5:10pm PDT
Hahn Auditorium

5:10pm PDT

Optimizing Gazelle for Scale and Performance in Uber's Monorepo - Tyler French, Uber
Monday October 14, 2024 5:10pm - 5:20pm PDT
In a repo with almost a million files, `gazelle` historically scales O(size of repo) for automatic BUILD file generation, since gazelle plugins need to read and evaluate source files across the repo in order to prepare the BUILD files' contents. When the peak runtime of gazelle approached 5-8 minutes, this became unscalable at Uber, with developers being blocked and delayed. Our team was able to improve three key metrics related to Gazelle's speed: - Gazelle p75 on CI from >300s to
Speakers
avatar for Tyler French

Tyler French

Sr. Software Engineer, Uber
Tyler French is a Software Engineer on Uber's Developer Platform team and is based in New York City. Tyler leads the dependency management initiative within the Go developer experience. His interests lie in leveraging data and analyzing patterns to strategically improve the engineering... Read More →
Monday October 14, 2024 5:10pm - 5:20pm PDT
Hahn Auditorium

5:30pm PDT

Reception
Monday October 14, 2024 5:30pm - 7:30pm PDT
Monday October 14, 2024 5:30pm - 7:30pm PDT
Grand Hall
 
Tuesday, October 15
 

8:00am PDT

Registration + Badge Pick-up
Tuesday October 15, 2024 8:00am - 3:30pm PDT
Tuesday October 15, 2024 8:00am - 3:30pm PDT
Grand Lobby

9:00am PDT

Bazel Query Deep Dive: From Basics to Advanced Use Cases - Łukasz Wawrzyk, VirtusLab
Tuesday October 15, 2024 9:00am - 9:30am PDT
This session will focus on the powerful and often underutilized querying capabilities of Bazel. While many users know the basics of query, aquery, and cquery, less of them fully leverage their potential. This talk will introduce advanced techniques and practical use cases that can significantly enhance build debugging and tooling development process. Attendees will discover how advanced query features can improve their workflows and possibly inspire the creation of custom tools. Both advanced users and beginners will learn something new from this talk.
Speakers
avatar for Łukasz Wawrzyk

Łukasz Wawrzyk

Tooling Expert, VirtusLab
I work at VirtusLab for over 8 years and I spent about 7 on developing tooling for multiple large monorepos interacting with Bazel, Pants, Gradle, sbt and even took part in developing on a custom build tool. My work is focused on IDEs, but not only.
Tuesday October 15, 2024 9:00am - 9:30am PDT
Hahn Auditorium

9:30am PDT

Creating C++ Toolchains Easily - Matt Stark & Armando Montanez, Google
Tuesday October 15, 2024 9:30am - 10:00am PDT
Dive into the new mechanism we recently added to rules_cc through which we define C++ toolchains. Our new mechanism to do it is simpler, safer, explicit, and modular, and removes many of the confusing concepts such as compile_files.
Speakers
avatar for Matt Stark

Matt Stark

Software Engineer, Google
* Been using blaze for the past 6 years. * Spent the past 2 years converting ChromeOS to bazel. * Author of ChromeOS' hermetic bazel toolchains * Contributor to rules_rust * Author of rules_cc's rule based toolchains.
Tuesday October 15, 2024 9:30am - 10:00am PDT
Hahn Auditorium

10:00am PDT

{Fast, Correct, Secure} - Choose Three - Yannic Bonenberger & Antonio Di Stefano, EngFlow
Tuesday October 15, 2024 10:00am - 10:30am PDT
Bazel is well-known for its commitment to deliver both fast and correct builds at scale. However, ensuring trustworthy development and deployments to production goes beyond just accurate execution tracking. It encompasses the entire pipeline, including the integrity of the host environment, the security of third-party dependencies, and the reliability of remote caching and execution systems. In this talk, we will explore the advanced features Bazel offers for creating correct and secure builds. Additionally, we will address existing challenges in generating Software Bill of Materials (SBOMs) and maintaining reliable audit trails, so your process can achieve the highest Supply Chain Levels for Software Artifacts (SLSA) compliance.
Speakers
avatar for Yannic Bonenberger

Yannic Bonenberger

Software Engineer, EngFlow
Yannic Bonenberger is a Software Engineer at EngFlow working on distributing builds across 10,000s of CPU cores. During his career, he has worked with many of the largest and most innovative organizations to reduce build times of large C++ applications from hours or more to less than... Read More →
avatar for Antonio Di Stefano

Antonio Di Stefano

Solution Engineer, EngFlow
I am a software engineer with a passion for how we write, build and ship software. Currently working at EngFlow to make all of the above faster and safer whilst bringing back the joy of programming. I also love building weird and unexpected things (like snake on Bazel).
Tuesday October 15, 2024 10:00am - 10:30am PDT
Hahn Auditorium

10:30am PDT

Break
Tuesday October 15, 2024 10:30am - 10:45am PDT
Tuesday October 15, 2024 10:30am - 10:45am PDT
Grand Hall

10:30am PDT

Solutions Showcase
Tuesday October 15, 2024 10:30am - 4:00pm PDT
Visit the sponsor tables in the Grand hall!
Tuesday October 15, 2024 10:30am - 4:00pm PDT
Grand Hall

10:45am PDT

Symbolic Macros and Rule Finalizers - Susan Steinman & Alexandre Rostovtsev, Google
Tuesday October 15, 2024 10:45am - 11:15am PDT
Symbolic macros are well-structured macros with rule-like capabilities, like typed, well-documented attributes, good behavior with labels and selects(), and declared dependencies. Learn more about the structure and benefits of symbolic macros and how to use them in your code base. In addition, learn about upcoming work on rule finalizers, a special symbolic macro which - regardless of its lexical position in a BUILD file - is evaluated in the final stage of loading a package, after all non-finalizer targets have been defined.
Speakers
avatar for Alexandre Rostovtsev

Alexandre Rostovtsev

Software Engineer, Google
I have been a member of the Bazel team for 6 years; my main focus recently has been the Starlark language.
avatar for Susan Steinman

Susan Steinman

Software Engineer, Google
Susan has the awesome job of collaborating with colleagues across the Bazel team on a variety of feature and performance projects, and working to foster team productivity and collaboration. Prior to Google, Susan worked part time at a research lab and while pursuing a career in modern... Read More →
Tuesday October 15, 2024 10:45am - 11:15am PDT
Hahn Auditorium

10:45am PDT

Generating SBOM Using Bazel - Lipsa Rout & Mark Zeren, Broadcom; Tony Aiuto & Florian Weikert, Google
Tuesday October 15, 2024 10:45am - 11:45am PDT
Governments and NGOs are in the process of regulating the software pipeline. We are increasingly called on to produce SLSA compliance documents such as a Software Bill of Materials (SBOM).  Requirements and tooling in this space are evolving, as more customers need to understand their entire software supply chain, from the OS up to the bits delivered to users. This forum will explore the gap between what we can deliver with Bazel today and the community's anticipated future needs.  

Please help seed this discussion by contributing to the document here.
Speakers
avatar for Lipsa Rout

Lipsa Rout

Principal Engineer, Broadcom
Lipsa is a software engineer at VMware. She enjoys problem-solving with technology and has worked on ideating, architecting, and building several SaaS applications over the last few years. Earlier this year, she started working with the Bazel team at VMware to generate SBOMs.
avatar for Mark Zeren

Mark Zeren

Distinguished Engineer, Broadcom
Mark works on large scale build and test infrastructure in Broadcom's VCF (VMware Cloud Foundation) division. You can also talk to him about C++ and other programming language nerdery or gardening and spaceflight!
avatar for Tony Aiuto

Tony Aiuto

Software Engineer, Google
Tony has been creating developer tools on and off for almost 40 years. Sometimes he makes end user products, but he keeps getting pulled back to improving the tools. Most recently he has been working on supply chain provenance for Google Cloud, and previously spent 6 years in the... Read More →
Tuesday October 15, 2024 10:45am - 11:45am PDT
Lovelace
  Birds of a Feather
  • Audience Level Any

11:15am PDT

Reducing Bazel's Memory Consumption - Ivo Ristovski List, Google
Tuesday October 15, 2024 11:15am - 11:45am PDT
Since last BazelCon we came up with several very exciting ideas, how to reduce memory consumption. In this talk I will present several of them: skyfocus, skeletal analysis and how to further reduce peek heap consumption. Additional saving may come from laziness: lazy macros and lazy loading.
Speakers
avatar for Ivo Ristovski List

Ivo Ristovski List

Mr., Google
Ivo works at Google since 2020. He's the leader of Rules API team, responsible for migrating native rules to Starlark and improving the interface Bazel provides to Starlark rule authors.
Tuesday October 15, 2024 11:15am - 11:45am PDT
Hahn Auditorium

11:50am PDT

How Bazel Handles Globs - Nathan Harmata, Google
Tuesday October 15, 2024 11:50am - 12:00pm PDT
The `glob` function is seemingly simple from a user-land perspective, but entails a lot of complexity in Bazel's implementation. This talk motivates the difficulty, discusses the history of implementing `glob` in Bazel, goes over the current approach, and mentions possible future improvements.
Speakers
avatar for Nathan Harmata

Nathan Harmata

Senior Staff Software Engineer, Google
Nathan is a Software Engineer at Google. He has been working in the build system domain since 2013.
Tuesday October 15, 2024 11:50am - 12:00pm PDT
Hahn Auditorium
  Lightning Talks

12:00pm PDT

Not Going the Distance: Filtering Tests by Build Graph Distance - Alex Torok, Aurora Innovation
Tuesday October 15, 2024 12:00pm - 12:10pm PDT
At Aurora, many of the tests that our developers rely on are computationally expensive simulations that rely on specialized and expensive GPU hardware. We use tooling similar to bazel-diff and target-determinator to figure out what targets have changed between two git revisions, then run specific tests based on those targets. This method scaled well until our build graph reached a certain size. Changing common code triggered a larger and larger number of low-signal tests. This slowed down developer velocity due to having to wait on more tests and being more likely to get hit by a flaky test failure. We updated Aurora's in-house changed target detection tool to emit build graph distance metrics that measure the distance between a changed target and a directly modified file. This distance metric allows us to confidently skip running some tests to avoid the issues described above. In this session, I will discuss how we compute build graph distance metrics and the ways that we use them to power workflows that increase developer velocity and improve mainline stability in a domain rich with expensive-to-run tests.
Speakers
avatar for Alex Torok

Alex Torok

Senior Staff Software Engineer, Aurora Innovation
Alex Torok is a Senior Staff Software Engineer at Aurora Innovation, helping deliver the benefits of self-driving technology safely, quickly, and broadly. He works on the developer experience team, striving to make it more efficient to get code on the road.
Tuesday October 15, 2024 12:00pm - 12:10pm PDT
Hahn Auditorium

12:10pm PDT

Nix and Bazel: The Odd Couple of Build Tools - Jesse Schalken, Canva
Tuesday October 15, 2024 12:10pm - 12:20pm PDT
A talk on why Nix and Bazel does not pair with each other well, recommending to use Bazel and bzlmod instead of Nix. Specifically, Nix is a package manager that is often misintegrated into Bazel. It is incompatible with the Bazel ecosystem in that * Nix artifacts are not relocatable, breaking Bazel remote execution when Nix outputs are in the build graph * Nix binaries are incompatible with FHS and rulesets that expect FHS because binaries are located in Nix store * Users who are familiar with Bazel are (usually) not familiar with Nix. Our engineers are often unable to self-serve patches to Nix packages, and they are also unable to use the testing framework provided by Bazel (which are familiar to most engineers) to validate their patches because of the steep learning curves * At monorepo our size, it is not rare to see Nix expressions that produces several thousand derivations that each reference large sets of build inputs. Expression evaluations are often so slow that nix-builds are in the critical path during analysis phase, even though outputs are already in the Nix cache. Nix flakes can help but it has an awkward git integration which does not work very well in large monorepos
Speakers
JS

Jesse Schalken

Staff Software Engineer, Canva
Tuesday October 15, 2024 12:10pm - 12:20pm PDT
Hahn Auditorium

12:20pm PDT

Lunch
Tuesday October 15, 2024 12:20pm - 1:30pm PDT
Tuesday October 15, 2024 12:20pm - 1:30pm PDT
Grand Hall

1:30pm PDT

Remote Execution with Rules_nixpkgs: Design and Deployment - Guillaume Maudoux, Modus Create
Tuesday October 15, 2024 1:30pm - 2:00pm PDT
rules_nixpkgs brings the power of Nix to Bazel dependencies. It provides access to the large nixpkgs package repository and benefits from hermeticity and declarative configurations that are dear to both the Bazel and Nix communities. But despite all the benefits, it still comes with one major downside. It makes remote execution of Bazel actions next to impossible but for some restricted use cases. In short, rules_nixpkgs and remote execution are like oil and vinegar. It takes effort to blend them into a tasty vinaigrette, but once you do, you'll never look back to your plain old builds. In this talk, we will introduce the challenges posed by this integration. Various solutions have been proposed over the years. We will explain how we chose one by looking at how these solutions propagate the necessary information across their components. We will then delve into the specifics of our design, explore technical aspects of our deployment, and discuss issues and benefits observed in practice. The last part will focus on performance metrics. We will share our understanding of the impact this change had on our infrastructure and, most importantly, on developers.
Speakers
avatar for Guillaume Maudoux

Guillaume Maudoux

Developer Productivity Engineer, Modus Create
Guillaume has a background in computer science, engineering and applied mathematics. Regarding software systems, his main concern is correctness, reliability, and trustworthiness. He is passionate about understanding complex systems and untangling intricate issues. He loves getting... Read More →
Tuesday October 15, 2024 1:30pm - 2:00pm PDT
Hahn Auditorium

1:30pm PDT

Android Birds of a Feather - Alex Humesky, Google
Tuesday October 15, 2024 1:30pm - 2:30pm PDT
Birds of a Feather session for Android app developers using Bazel to discuss the Bazel Android Rules, including Starlarkification of the native rules, migration, open sourcing.
Speakers
avatar for Alex Humesky

Alex Humesky

Software Engineer, Google
Alex is a member of the Bazel team at Google, working on the Android Rules since 2015
Tuesday October 15, 2024 1:30pm - 2:30pm PDT
Lovelace

2:00pm PDT

Rules_lint: Formatting and Linting All Languages - Alex Eagle, Aspect Build Systems
Tuesday October 15, 2024 2:00pm - 2:30pm PDT
Tools for formatting code and performing static analysis are available in some of Bazel's language rules, but their approaches differ. This means each language has to be setup separately, and product engineers may have to learn multiple workflows across the full stack. rules_lint provides a consistent abstraction for plugging in language-specific tools, and avoids requiring changes either in language rulesets, or in user's BUILD files. In your repository you setup a single "format" workflow, and a single "linting" workflow. This talk explains why these two workflows are distinct. We'll explain how to integrate new tools into rules_lint, options for installing it into your repository, and show some nice ways that results can be integrated into developer workflows.
Speakers
avatar for Alex Eagle

Alex Eagle

Co-founder and CEO, Aspect Build Systems
Alex worked at Google on Bazel-adjacent systems from 2008-2020. He is a leader of the Bazel OSS community, and the co-founder of Aspect, a Bazel services and product company whose mission is to bring Bazel's promised benefits to all developers.
Tuesday October 15, 2024 2:00pm - 2:30pm PDT
Hahn Auditorium

2:30pm PDT

Break
Tuesday October 15, 2024 2:30pm - 2:45pm PDT
Tuesday October 15, 2024 2:30pm - 2:45pm PDT
Grand Hall

2:45pm PDT

Utilizing Bazel for Cross-Platform and Cross-Architecture Compilation and Testing - Axel Uhlig & Marcel Kost, Salesforce
Tuesday October 15, 2024 2:45pm - 3:15pm PDT
We want to demonstrate how to use Bazel to compile C++ source code across various operating systems (e.g. Linux, Windows, and macOS) and processor architectures (e.g. AMD and ARM). We will show how to - Create a Bazel C++ toolchain, that serves different host and target operating systems and architectures - Make Bazel automatically pick the right toolchain configuration based on host and target system - Compile natively as well as cross platform - Create “universal binaries” by running several toolchains in the same build, creating a single artifact, that can run on multiple architectures - Use the platform information to name packages, switch dependencies, skip targets, … We will show how to achieve all of this by using native Bazel features like multi platform builds, toolchains, transitions, and sufficiently hermetic toolchains.
Speakers
avatar for Marcel Kost

Marcel Kost

Software Engineer, Salesforce
Software Engineer, working on CI/CD systems using Bazel for C++ code bases. Currently working for Salesforce, supporting the Hyper Database team to ship their database as part of Tableau and other Salesforce products.
avatar for Axel Uhlig

Axel Uhlig

Software Engineer, Salesforce
Software Engineer, mostly working on CI/CD systems using Bazel for C++ code bases. Previously worked on the Bazel migration of BMW. Currently working for Salesforce, supporting the Hyper Database team to ship their database as part of Tableau and other Salesforce products.
Tuesday October 15, 2024 2:45pm - 3:15pm PDT
Hahn Auditorium

2:45pm PDT

Birds of a Feather: Bzlmod - Xudong Yang & Yun Peng, Google
Tuesday October 15, 2024 2:45pm - 3:45pm PDT
Discuss topics surrounding Bzlmod, Bazel's new external dependency management system.
Speakers
avatar for Yun Peng

Yun Peng

Software Engineer, Google
Lead of the Bazel Open Source Team
avatar for Xudong Yang

Xudong Yang

Software Engineer, Google
Works on Bzlmod. Little else is known about him.
Tuesday October 15, 2024 2:45pm - 3:45pm PDT
Lovelace
  Birds of a Feather
  • Audience Level Any

3:15pm PDT

Interoperating Bazel and Other Build Systems - Alexander Neben & Zack Winter, MongoDB
Tuesday October 15, 2024 3:15pm - 3:45pm PDT
At MongoDB we do not have one central codebase or only one language. As we continue to scale this fractured ecosystem is harder to maintain so we needed to migrate these disparate repos to a shared development platform. Our first step in that journey is migrating large repos to be built with Bazel so that the build team can make a feature once and it can benefit all of our developers. MongoDB’s approach to doing this is novel because we were able to de-risk these projects by supporting significant interoperability during migration. The downside, which is what most of this talk will be about, is dealing with the large amount of configuration in the build system. For example, the MongoDB C++ codebase had ~112 configuration options and remote compilation (not with RBE) before this process began and before converting even a single target we needed to support many of these configuration options and two remote execution environments. We are going to speak about the tools we used and created for these transitions, techniques we used for maintaining our hybrid build system, and how you too can switch to Bazel gradually and gently with the enthusiastic support of your organization.
Speakers
avatar for Alexander Neben

Alexander Neben

Director of Engineering, MongoDB
Alex Neben has spent most of his career on leading build system teams with a focus on large C++ codebases. He also has a passion for performance testing and analysis. Alex is currently a Director of Engineering in the developer productivity organization at MongoDB.
Tuesday October 15, 2024 3:15pm - 3:45pm PDT
Hahn Auditorium

3:45pm PDT

Break
Tuesday October 15, 2024 3:45pm - 4:00pm PDT
Tuesday October 15, 2024 3:45pm - 4:00pm PDT
Grand Hall

4:00pm PDT

Are You Ignoring Your Most Expensive Bazel Build Problems? (Develocity Can Help) - Brian Saghy, Gradle
Tuesday October 15, 2024 4:00pm - 4:10pm PDT
Are lurking problems in your Bazel builds costing you more than you think? What if hidden patterns in your build data could reveal the most impactful problems to fix? Develocity, Gradle's cross-build observability platform, helps you uncover those insights and take appropriate action. In this lightning talk, we'll explore how Develocity's unique multi-build analysis can help you: * Identify and prioritize systemic build failures with the highest impact on your team’s productivity * Pinpoint flaky tests that slow you down * Gain deeper insights into your Bazel builds’ health for faster troubleshooting and better decision-making Let your build data become the key to a more efficient and productive development workflow.
Speakers
avatar for Brian Saghy

Brian Saghy

Product Manager, Gradle
Brian Saghy is a Product Manager at Gradle, who is passionate about developer productivity and building tools that streamline development workflows. Brian brings a deep understanding of developer tools and the challenges faced by engineering teams from his prior experience in Engineering... Read More →
Tuesday October 15, 2024 4:00pm - 4:10pm PDT
Hahn Auditorium

4:00pm PDT

JavaScript BoF - Greg Magolan, Aspect Build
Tuesday October 15, 2024 4:00pm - 5:00pm PDT
JavaScript, TypeScript, and web frontend
Speakers
avatar for Greg Magolan

Greg Magolan

Co-founder and CTO, Aspect Build
Tuesday October 15, 2024 4:00pm - 5:00pm PDT
Lovelace

4:10pm PDT

Fetching private data with Repo Rules and MODULE Extensions - Malte Poll, Modus Create
Tuesday October 15, 2024 4:10pm - 4:20pm PDT
In Bazel, you are not supposed to fetch external data during a build action. Instead, we have repository rules and MODULE extensions that are allowed to fetch data from the internet and execute arbitrary code.

This session describes how to implement those rules to access data from authenticated HTTP endpoints making optimal use of Bazel’s downloader, the repository cache, and the new credential helper mechanism in the process. All while saving disk space and time.

You wouldn’t let your friends use wget in a genrule and make the build non-deterministic, right?
Speakers
avatar for Malte Poll

Malte Poll

Software Engineer, Modus Create
Malte is a software engineer with a background in security. In the process of improving the supply chain security and reproducibility of security-critical software, he has developed expertise in modern build systems, specializing in Bazel and Nix. He is passionate about building secure... Read More →
Tuesday October 15, 2024 4:10pm - 4:20pm PDT
Hahn Auditorium

4:40pm PDT

Improved --Toolchain_resolution_debug’ing - Malte Poll, Modus Create
Tuesday October 15, 2024 4:40pm - 4:50pm PDT
Toolchains and platforms are there to last, and yet my experience shows that they can be challenging for newcomers, and can still surprise experienced Bazelistas. Some time ago, a debug session led me to read the actual source code, and I ended up refactoring the messages dumped by `--toolchain_resolution_debug` in the hope to make them more intuitive and self-explanatory. This session will present the new message format and build upon its structure to explain the algorithm that drives platforms and toolchains selection. Attendees will build a clear mental model of that core part of Bazel. Additionally, the presentation will insist on the importance of crafting self-explanatory messages, along with the tradeoffs involved. Debugging toolchain issues is now easier than ever, and a little bit funny.
Speakers
avatar for Malte Poll

Malte Poll

Software Engineer, Modus Create
Malte is a software engineer with a background in security. In the process of improving the supply chain security and reproducibility of security-critical software, he has developed expertise in modern build systems, specializing in Bazel and Nix. He is passionate about building secure... Read More →
Tuesday October 15, 2024 4:40pm - 4:50pm PDT
Hahn Auditorium
  Lightning Talks
  • Audience Level Any

4:50pm PDT

Rules_variant: Developer Friendly, Multiplatform Builds - Aleksander Gondek, ASML
Tuesday October 15, 2024 4:50pm - 5:00pm PDT
Creating Bazel definitions which allow to build the same targets in multiple configurations at once (i.e. different target platforms) is possibly one of the most convoluted parts of any larger project. Bazel has rich and powerful tooling that supports such an approach, yet it is not yet exposed in an approachable way. Frequently, it leads to opaque macros and custom rules whose sole purpose is to apply some transitions, naming conventions, and more, all of which contributes to Build definitions that are not developer friendly and require a higher level of Bazel familiarity to work with. `rules_variant` is a new meta-ruleset (based on `with_cfg.bzl`) designed to address that particular issue. Desired variants (essentially Bazel configurations) are stored in a JSON file and any Bazel rule may decide to be “pinned” to a certain set of said variants, simply by referencing it via an additional attribute. From the developer’s perspective it is as simple as referencing additional names, if the Bazel target has to be built in an additional “flavor” (with specific settings). This talk showcases the incredible flexibility and readability that comes from the aforementioned approach.
Speakers
avatar for Aleksander Gondek

Aleksander Gondek

Senior Software Engineer, ASML
Alex is contracting for ASML, spearheading migration to Bazel build system. He enjoys solving complex challenges in a manner that results in simple solutions. Rust, Nix and Bazel enthusiast, he attempts to bring reproducibility and correctness to any software project he works on... Read More →
Tuesday October 15, 2024 4:50pm - 5:00pm PDT
Hahn Auditorium

5:00pm PDT

Why We Should Care About Test Execution Output in Safety-Critical Industries - Markus Hofbauer, Luminar Technologies
Tuesday October 15, 2024 5:00pm - 5:10pm PDT
In highly regulated industries such as automotive, aviation, and medical, test artifacts are often essential for further reporting. Automotive SPICE (ASPICE) or AUTOSAR from the automotive field requires detailed, reproducible reporting on executed tests. Companies such as BMW or NVIDIA use Bazel to build their software. However, Bazel does not cache test execution output, but only that a test was executed. To address this, some companies have resorted to forking Bazel and implementing this feature on their own which causes maintenance overhead and impedes collaborative Bazel improvements. Our proposed solution is to treat the test binary as a tool and run it as part of the Bazel build phase. This way, we can depend on the test output for further processing such as skipping integration tests if unit tests fail, collecting output artifacts such as human-readable test reports and machine-readable coverage reports, as well as making coverage collection depend on test outputs. Thanks to Bazel’s caching, the test is not executed again in the test phase which makes this solution an acceptable tradeoff.
Speakers
avatar for Markus Hofbauer

Markus Hofbauer

Senior Build Engineer, Luminar Technologies
Markus Hofbauer is the tech lead of the Build & Release Engineering team at Luminar Technologies. Together with his team, he is responsible for the build system, developer tooling, and the CI/CD system. Markus received his PhD in Electrical and Computer Engineering from the Technical... Read More →
Tuesday October 15, 2024 5:00pm - 5:10pm PDT
Hahn Auditorium
  Lightning Talks
  • Audience Level Any

5:10pm PDT

The State of Compilation Database in Bazel - Thi Doan, Woven by Toyota
Tuesday October 15, 2024 5:10pm - 5:20pm PDT
There are more than one solution for generating a compilation database for Bazel today: Aspects, Action Query, Extra Actions etc. In this talk, I will talk about the pros and cons of each approach, and what we ended up with.
Speakers
avatar for Thi Doan

Thi Doan

Software Engineer, Woven by Toyota
Thi is a Build Automation Engineer at Woven by Toyota, where he focuses on building C++ toolchains for safety-critical software. Prior to Woven by Toyota, he helped integrating Bazel to iOS builds at more than one organization. Outside of work, he helps maintaining Bazel rules for... Read More →
Tuesday October 15, 2024 5:10pm - 5:20pm PDT
Hahn Auditorium
 
  • Filter By Date
  • Filter By Venue
  • Filter By Type
  • Audience Level
  • Timezone

Share Modal

Share this link via

Or copy link

Filter sessions
Apply filters to sessions.