)]}'
{
  "commit": "e2d7f2d625257b2c250ea2f18d3f832add5b43bf",
  "tree": "a31ca72702b1c2166dd43084991d0c22ba6f0c54",
  "parents": [
    "765751395cf12e5842145d56ec339a1a07a1ea53"
  ],
  "author": {
    "name": "David Benjamin",
    "email": "davidben@google.com",
    "time": "Wed Mar 20 09:56:14 2024 +1000"
  },
  "committer": {
    "name": "Boringssl LUCI CQ",
    "email": "boringssl-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Fri Apr 26 22:19:48 2024 +0000"
  },
  "message": "Add a standalone Bazel build\n\nNow that we can generate build files, we can actually maintain a Bazel\nbuild in HEAD, without synthesizing a separate \"-with-bazel\" branch.\n(Though we\u0027ll still need both for a transition, and until all the other\nbuild modes have migrated.) Note this has a slightly different directory\nstructure than the old -with-bazel branch. But the targets are the same\nand #include \u003copenssl/whatever.h\u003e still works, so hopefully it\u0027s\ncompatible.\n\nFor now, I\u0027m only setting this up with the new bzlmod scheme. Also since\npulling in googletest is much less tedious with bzlmod, I\u0027ve wired up\ntests and everything.\n\nhttps://bazel.build/external/overview#bzlmod\n\nTo build, run commands like:\n\n   bazelisk build ...\n   bazelisk test ...\n   bazelisk run :bssl\n\nThe thinking is we can also go add this to CI and whatnot.\n\nThis is also intended to replace the boringssl module in the\nbazel-central-registry which someone else set up already. To ease the\ntransition, I\u0027ve seeded the compatibility_level value with theirs. (I\nthink we want to never bump it. Although we don\u0027t do SemVer, I think\nbzlmod\u0027s MVS version selection scheme is generally reasonable. Bumping\nit just introduces hiccups into the update process where projects need\nto coordinate updates, and we do not want that.)\n\nI wasn\u0027t clear on what to put in the version field in the tree, so I\njust went with 0.0.0-dev so we don\u0027t have to change it, but it\u0027s still\nvaguely analogous to the versions already in there.\n\nAs part of this, I\u0027ve added support for Bazel\u0027s runfiles mechanism in\ncrypto/test/test_data.cc. This is completely undocumented and I had to\nfigure out how it works by guessing, but I believe this is the\nofficially supported way to make cc_test(data \u003d ...) work? The official\ndocumentation says to use devtools_build::GetDataDependencyFilepath, but\nthat API does not exist in the first place. I\u0027ve also made it build with\nC++17 for now, so we can build libpki, but C++14 consumers should still\nbe able to use this module, just not build libpki.\n\nTo that end, one difference between this and the old module is that we\nno longer specify the C++ version in the build. From what I can tell,\nBazel does *not* want libraries to set the C/C++ version and prefers it\nonly come from the root. Unfortunately, they provide zero tools to\neffectively manage this. I\u0027ve followed this pattern for C++ versions, as\nwe can assume that Bazel projects are very aware of their C++ version,\nbut I\u0027ve explicitly ignored it for the C version. Projects tend not to\nchange ABIs by C version, so it should be fine to set it internally.\n\nFor context when reviewing, the unreadable MODULE.bazel.lock is\nautomatically generated. I think the idea is that subsequent diffs will\nbe more readable??\n\nBug: 542\nChange-Id: I88f68b2602a75f58cc6d18832a956f01dc054f58\nReviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/67301\nAuto-Submit: David Benjamin \u003cdavidben@google.com\u003e\nCommit-Queue: Bob Beck \u003cbbe@google.com\u003e\nReviewed-by: Bob Beck \u003cbbe@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "9dad64c6aa05ee9bc080c5db5da63efaf2424661",
      "new_mode": 33188,
      "new_path": ".bazelignore"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "20e0dadefc127feaccdb6df56390ed01f917d652",
      "new_mode": 33188,
      "new_path": ".bazelrc"
    },
    {
      "type": "modify",
      "old_id": "439b6aa6b823c91e85eed0fcab6994f18e4e60d4",
      "old_mode": 33188,
      "old_path": ".gitignore",
      "new_id": "15653528b92aabe9378689ecf25322399e8c3c0b",
      "new_mode": 33188,
      "new_path": ".gitignore"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "d3b66ee5fb9a64506bee381e8249118264d502db",
      "new_mode": 33188,
      "new_path": "BUILD.bazel"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "b40ca9f248b1afb9aac4e63b8bee1b2834afb569",
      "new_mode": 33188,
      "new_path": "MODULE.bazel"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "4d065c09addafa85134914acc191a0fb46c48968",
      "new_mode": 33188,
      "new_path": "MODULE.bazel.lock"
    },
    {
      "type": "modify",
      "old_id": "a431f6a42ec34be4005d6244b7e671aced1e5201",
      "old_mode": 33188,
      "old_path": "build.json",
      "new_id": "11693449ad9e8a8a5412be478fdeea462c97a083",
      "new_mode": 33188,
      "new_path": "build.json"
    },
    {
      "type": "modify",
      "old_id": "9fe2aaaa06347a656081308256b917eb7dec0c6e",
      "old_mode": 33188,
      "old_path": "crypto/test/test_data.cc",
      "new_id": "9db2019acb921f347ffaae7738e8801dda35839f",
      "new_mode": 33188,
      "new_path": "crypto/test/test_data.cc"
    },
    {
      "type": "modify",
      "old_id": "b3f4b6ace30aae98fc7d148eda103e698c23bfa8",
      "old_mode": 33188,
      "old_path": "crypto/test/test_data.h",
      "new_id": "ac5ad74818f263841f4bc1b1466cc0ebf6194ed8",
      "new_mode": 33188,
      "new_path": "crypto/test/test_data.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "7717b76b2af8fe64dc7ab02d7bbf96c64ca6d221",
      "new_mode": 33188,
      "new_path": "gen/sources.bzl"
    },
    {
      "type": "modify",
      "old_id": "52dc5de090dd3ce4081b01011a8795721e2e6228",
      "old_mode": 33188,
      "old_path": "gen/sources.cmake",
      "new_id": "a0500034514abd065bfbefb447d40c4748d89052",
      "new_mode": 33188,
      "new_path": "gen/sources.cmake"
    },
    {
      "type": "modify",
      "old_id": "0f13f823cb4081a2b87318901b06a51eec47172e",
      "old_mode": 33188,
      "old_path": "gen/sources.json",
      "new_id": "c77f70fd2c772a57ef0747af8adc5a7dc12cd01f",
      "new_mode": 33188,
      "new_path": "gen/sources.json"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "a38c3d5c30c16039a47b47c15e50fa65ee82e8a7",
      "new_mode": 33188,
      "new_path": "util/bazel-example/BUILD.bazel"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "c5f5ec54947e54a2bee78fdb23296addf84987a5",
      "new_mode": 33188,
      "new_path": "util/bazel-example/MODULE.bazel"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "a09bdcd7efe03cd0a6081926526a0585e40edd9d",
      "new_mode": 33188,
      "new_path": "util/bazel-example/README.md"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "cece0d0e077a00104f56477365b4949aeb0e8441",
      "new_mode": 33188,
      "new_path": "util/bazel-example/example.cc"
    },
    {
      "type": "modify",
      "old_id": "192a1ead425d4af135dcdfb6be10026ce9cfc80a",
      "old_mode": 33188,
      "old_path": "util/pregenerate/build.go",
      "new_id": "4d8bbcd63f28503b1a8d0b73c6fc741c78278ecd",
      "new_mode": 33188,
      "new_path": "util/pregenerate/build.go"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "434efc7aaa8eb0dc161ec47a77b28f7e1573a793",
      "new_mode": 33188,
      "new_path": "util/util.bzl"
    }
  ]
}
