Alex EagleforAspect Blogblog.aspect.dev·Mar 20, 2024CODEOWNERS and BazelGating submission of code changes on the right reviewers is a critical and nuanced problem. Most companies are using GitHub for code review. It supports a single file named CODEOWNERS in the root of the repository. This clearly wasn't designed for mo...Discuss·1 like·98 readsbazel
Alex EagleforAspect Blogblog.aspect.dev·Mar 15, 2024Preventing production code depending on experimentsAt Google we had an /experimental folder in source control. This is a nice way to be able to check in code in a monorepo that you're just "spiking" on, with all the usual developer ergonomics and access to shared library code. There's also no expecta...Discuss·99 readsbazel
Sanket Singhsanketsingh.hashnode.dev·Mar 11, 2024Understanding Build Systems with BazelTo fully appreciate the value of build systems in managing multi-file projects, let's explore a scenario that highlights the complexities of manual management versus using a build system. We'll use a simple Java project as an example to illustrate th...Discuss·23 likes·289 readsbazel
Alex EagleforAspect Blogblog.aspect.dev·Mar 5, 2024Publishing Bazel rules that depend on tools: take 2In https://blog.aspect.dev/releasing-bazel-rulesets I wrote about a pattern we developed for https://github.com/aspect-build/bazel-lib to publish our Go binaries on each release, then use Bazel's toolchains support to fetch those on users machines. T...Discuss·1 like·151 readsbazel
Alex EagleforAspect Blogblog.aspect.dev·Mar 3, 2024Fetching ML models under BazelThis is a repeat of my earlier article https://blog.aspect.dev/lazy-tool-fetching-under-bazel - this time instead of lazy-fetching a NodeJS tool used by vercel/pkg, we're going to fetch a Python package used for Machine Learning tasks, NLTK Data http...Discuss·1 like·102 readsbazel
Şahin YortforAspect Blogblog.aspect.dev·Jan 3, 2024rctx.download custom headers coming to Bazel 7.1Bazel is responsible for fetching files from the internet in most cases. From a WORKSPACE file you may have seen this as http_archive or http_file. Behind the scenes, when writing a repository rule, this uses the repository_ctx#download API, https://...Discuss·205 readsbazel
Alex EagleforAspect Blogblog.aspect.dev·Nov 8, 2023Integration testing your container images with BazelBefore Bazel, many teams were using Docker Compose to manage the workflow of running tests which need to do the following: Build a docker/OCI image containing your packaged application Launch a locally running container with that image, and maybe so...Discuss·1 like·616 readsbazel
Alex EagleforAspect Blogblog.aspect.dev·Oct 30, 2023Aspect at BazelCon 2023We had a great time visiting Google's Munich office for the BazelCon conference. This annual event is always a big milestone for us, so I've written up a summary of the product announcements and links to our talks. bazel lint We announced the first r...Discuss·1 like·412 readsbazel
Alex EagleforAspect Blogblog.aspect.dev·Oct 26, 2023Build Wolfi images with Bazel: Introducing rules_apkoCo-author: Adam Dawson, Principal Product Manager at ChainguardCross-posted with Chainguard: https://www.chainguard.dev/unchained/announcing-bazel-rules-for-extending-chainguard-images Yesterday during BazelCon 2023, in partnership with Chainguard, ...Discuss·318 readsbazel
Alex EagleforAspect Blogblog.aspect.dev·Oct 11, 2023Releasing Bazel rulesets that publish toolsThis post is a bit of a behind-the-scenes look at how we make Aspect's Bazel rules great. Unless you're a Bazel rule author and distribute your rules to third-parties, there's probably nothing for you to take away here. But if you're a fan of the tho...Discuss·1 like·493 readsbazel