My personal monorepo.
Find docs here
This will include everything from one-off scripts and experiments to libraries and applications. I'll likely mostly use Python, C++, and Rust (fingers crossed) and tie it all into 1 build tool to bring them all together.
This should act as a repository of projects I'm working on and an example of my latest insights into best practices, design principles, dev-ops usage, etc.
NOTE: Our coverage setup doesn't find completely uncovered files. We'll need to fix that at some point, for now be aware of it.
This section describes how the various tools are setup and used in the repo.
wget -O ~/tools/bazel https://github.com/bazelbuild/bazelisk/releases/download/v1.18.0/bazelisk-linux-amd64
chmod +x ~/tools/bazel
~/tools/bazel
# Add to path
# Completely clean
bazel clean --expunge
# Update cargo dependencies
# https://www.tweag.io/blog/2023-07-27-building-rust-workspace-with-bazel/
CARGO_BAZEL_REPIN=1 bazel sync --only=crate_index
NOTE: this doesn't seem to be working ...
Generally, each language needs a way to answer these questions:
Copied from "Bazel"
# Update cargo dependencies
# https://www.tweag.io/blog/2023-07-27-building-rust-workspace-with-bazel/
CARGO_BAZEL_REPIN=1 bazel sync --only=crate_index
# pragma: no cover
https://coverage.readthedocs.io/en/latest/excluding.html
requirements.in
bazel run //:requirements.update
to modify requirements_lock.txt
bazel run //:gazelle_python_manifest.update
to modify gazelle_python.yaml
NOTE: Once requirements.in
is modified, tests will ensure the above commands
have been run (or CI will fail)
Testing utilizes catch2
bazel run //tools/buildozer -- <args>
bazel run //tools/buildifier -- <args>
bazel run -- @pnpm//:pnpm --dir $PWD install --lockfile-only
# Avoid networked backends / remote caches, particularly helpful when home
network is slow
--config local
https://stackoverflow.com/a/77856955
sudo sysctl vm.mmap_rnd_bits=30