mongo/buildscripts/bazel_rules_mongo
Daniel Moody 971e4dad07 SERVER-126133 add default origin branch for format/lint and update branch docs (#53333)
GitOrigin-RevId: c22060bc215a41a9faa4f6053637f6779eaebadf
2026-05-07 22:09:26 +00:00
..
codeowners SERVER-126214: make codeowners error more obvious (#53407) 2026-05-07 15:57:15 +00:00
engflow_auth SERVER-120217 Update to using rules python (#48943) 2026-03-06 01:52:51 +00:00
scripts SERVER-123867: Disable Printing out Env Variables in Typer Exception Handler (#51608) 2026-04-10 20:39:14 +00:00
tests SERVER-126133 add default origin branch for format/lint and update branch docs (#53333) 2026-05-07 22:09:26 +00:00
utils SERVER-126133 add default origin branch for format/lint and update branch docs (#53333) 2026-05-07 22:09:26 +00:00
BUILD.bazel
OWNERS.yml SERVER-124481: Team Rename: DevProd Test Infrastructure (#52100) 2026-04-28 20:09:30 +00:00
poetry.lock SERVER-121511: Update remaining Python 3.10 references to 3.13 (#49522) 2026-03-17 22:04:32 +00:00
pyproject.toml SERVER-126214: make codeowners error more obvious (#53407) 2026-05-07 15:57:15 +00:00
README.md SERVER-124136 Format markdown via prettier: wrap lines and use width of 100 (#52231) 2026-04-21 19:20:11 +00:00
WORKSPACE.bazel SERVER-108968 update rules_poetry to fix remarshal to use shiv (#39796) 2025-08-07 22:10:10 +00:00

Bazel Rules Mongo

This directory is a bazel rule we use to ship common code between bazel repos

Using in your repo

  1. Look at the latest version in this file

  2. Get the sha of the latest release at https://mdb-build-public.s3.amazonaws.com/bazel_rules_mongo/{version}/bazel_rules_mongo.tar.gz.sha256

  3. Get the link to the latest version at https://mdb-build-public.s3.amazonaws.com/bazel_rules_mongo/{version}/bazel_rules_mongo.tar.gz

  4. Add this as a http archive to your repo and implement the dependencies listed in the WORKSPACE file. It will look something like this

# Poetry rules for managing Python dependencies
http_archive(
    name = "rules_poetry",
    sha256 = "533a0178767be4d79a67ae43890970485217f031adf090ef28c5c18e8fd337d8",
    strip_prefix = "rules_poetry-092d43107d13e711ac4ac92050d8b570bcc8ef43",
    urls = [
        "https://github.com/mongodb-forks/rules_poetry/archive/092d43107d13e711ac4ac92050d8b570bcc8ef43.tar.gz",
    ],
)

load("@rules_poetry//rules_poetry:poetry.bzl", "poetry")

http_archive(
    name = "bazel_rules_mongo",
    repo_mapping = {"@poetry": "@poetry_bazel_rules_mongo"},
    sha256 = "bb2c2dafc82d905422a12ebef41637b0a1160adffc8a5009dcd1c3d1f81b4056",
    strip_prefix = "bazel_rules_mongo",
    urls = [
        "https://mdb-build-public.s3.amazonaws.com/bazel_rules_mongo/0.1.1/bazel_rules_mongo.tar.gz",
    ],
)

load("@bazel_rules_mongo//codeowners:codeowners_validator.bzl", "codeowners_validator")

codeowners_validator()

load("@bazel_rules_mongo//codeowners:codeowners_binary.bzl", "codeowners_binary")

codeowners_binary()

poetry(
    name = "poetry_bazel_rules_mongo",
    lockfile = "@bazel_rules_mongo//:poetry.lock",
    pyproject = "@bazel_rules_mongo//:pyproject.toml",
)
  1. Use the rule however you see fit! For example to add bazel run codeowners to your repo you can add the following to your root BUILD.bazel file
alias(
    name = "codeowners",
    actual = "@bazel_rules_mongo//codeowners:codeowners",
)

Deploying

When you are ready for a new version to be released, bump the version in the pyproject.toml file. This will be deployed the next time the package_bazel_rules_mongo task runs (nightly). You can schedule this earlier in the waterfall when your pr is merged if you want it quicker.