2
0
Fork 0
mirror of https://github.com/bazel-contrib/bazel-lib synced 2024-11-27 17:43:27 +00:00
Common useful functions for writing BUILD files and Starlark macros/rules
Find a file
Alex Eagle 1df2becc7a chore: turn on more basic precommit checks
In particular this makes our bazelrc presets more compliant with client codebases, ensuring they can copy these files and not trip on their own pre-commit check
2023-02-17 11:00:00 -08:00
.aspect chore: turn on more basic precommit checks 2023-02-17 11:00:00 -08:00
.bcr release: publish release artifact 2023-02-01 10:43:45 -08:00
.circleci
.github/workflows chore: turn on more basic precommit checks 2023-02-17 11:00:00 -08:00
docs chore: turn on more basic precommit checks 2023-02-17 11:00:00 -08:00
e2e feat: make bazel-lib the source-of-truth for Aspect recommended bazelrc settings (#369) 2023-02-16 16:59:21 -08:00
lib chore: turn on more basic precommit checks 2023-02-17 11:00:00 -08:00
platforms
shlib
tools chore: turn on more basic precommit checks 2023-02-17 11:00:00 -08:00
.bazelignore chore: turn on more basic precommit checks 2023-02-17 11:00:00 -08:00
.bazeliskrc chore: upgrade to Aspect CLI 5.1.2 (#331) 2023-01-15 21:52:16 -08:00
.bazelrc feat: make bazel-lib the source-of-truth for Aspect recommended bazelrc settings (#369) 2023-02-16 16:59:21 -08:00
.bazelversion chore: update to Bazel 6.0.0 and Aspect CLI 5.1.0 (#303) 2023-01-01 14:15:59 -08:00
.gitattributes
.gitignore
.pre-commit-config.yaml chore: turn on more basic precommit checks 2023-02-17 11:00:00 -08:00
.prettierignore chore: turn on more basic precommit checks 2023-02-17 11:00:00 -08:00
BUILD.bazel feat: make bazel-lib the source-of-truth for Aspect recommended bazelrc settings (#369) 2023-02-16 16:59:21 -08:00
CONTRIBUTING.md feat: add executable attribute to write_source_files 2022-12-03 10:46:08 -08:00
deps.bzl fix: use custom realpath function in copy_directory and copy_to_directory since github.com/yookoala/realpath has bugs on Windows (#338) 2023-01-16 21:46:50 -08:00
go.mod fix: use custom realpath function in copy_directory and copy_to_directory since github.com/yookoala/realpath has bugs on Windows (#338) 2023-01-16 21:46:50 -08:00
go.sum fix: use custom realpath function in copy_directory and copy_to_directory since github.com/yookoala/realpath has bugs on Windows (#338) 2023-01-16 21:46:50 -08:00
internal_deps.bzl chore: turn on more basic precommit checks 2023-02-17 11:00:00 -08:00
LICENSE chore: turn on more basic precommit checks 2023-02-17 11:00:00 -08:00
MODULE.bazel fix: bzlmod toolchain registration for copy_directory & copy_to_directory (#336) 2023-01-16 19:37:36 -08:00
README.md
renovate.json chore: turn on more basic precommit checks 2023-02-17 11:00:00 -08:00
WORKSPACE feat: improve performance of copy_to_directory by moving glob match & copying to a golang binary (#308) 2023-01-03 09:42:20 -08:00
workspace_status.sh chore: update release to include copy_to_directory action binary (#309) 2023-01-03 12:26:51 -08:00

Aspect's Bazel helpers library

Base Starlark libraries and basic Bazel rules which are useful for constructing rulesets and BUILD files.

This module depends on bazel-skylib. In theory all these utilities could be upstreamed to bazel-skylib, but the declared scope of that project is narrow and it's very difficult to get anyone's attention to review PRs there.

bazel-lib is just a part of what Aspect provides:

Installation

Installation instructions are included on each release: https://github.com/aspect-build/bazel-lib/releases

Public API

Copying files

  • copy_directory Copies directories to another package.
  • copy_file Copies files to another package.
  • copy_to_bin Copies a source file to output tree at the same workspace-relative path.
  • copy_to_directory Copies and arranges files and directories into a new directory.
  • write_source_files Write to one or more files or folders in the source tree. Stamp out tests that ensure the sources exist and are up to date.

Transforming files

  • jq A toolchain and custom rule for running jq, a tool that is "like sed for json".
  • yq A toolchain and custom rule for running yq, a "YAML, JSON and XML processor".

Manipulating paths

  • directory_path Provide a label to reference some path within a directory, via DirectoryPathInfo.
  • output_files Forwards a subset of the files (via the DefaultInfo provider) from a given target's DefaultInfo or OutputGroupInfo.

Writing rules

  • expand_make_vars Perform make variable and location substitions in strings and templates.
  • paths Useful path resolution methods.
  • transitions Transition sources to a provided platform.
  • utils Various utils for labels and globs.
  • params_file Generate encoded params file from a list of arguments.
  • repo_utils Useful methods for repository rule implementations.
  • run_binary Like skylib's run_binary but adds directory output support.
  • stamping Support version stamping in custom rules.
  • base64 Starlark Base64 encoder & decoder.

Generating documentation

  • docs Rules for generating docs and stamping tests to ensure they are up to date.