Skip to content

Commit 6c5e596

Browse files
authored
Merge pull request #15583 from github/redsun82/bzlmod
Bazel: use bzlmod
2 parents 2b4b512 + b7df26e commit 6c5e596

File tree

23 files changed

+168
-85
lines changed

23 files changed

+168
-85
lines changed

.bazelrc

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,12 @@
11
common --enable_platform_specific_config
2+
common --enable_bzlmod
3+
# because we use --override_module with `%workspace%`, the lock file is not stable
4+
common --lockfile_mode=off
5+
6+
# when building from this repository in isolation, the internal repository will not be found at ..
7+
# where `MODULE.bazel` looks for it. The following will get us past the module loading phase, so
8+
# that we can build things that do not rely on that
9+
common --override_module=semmle_code=%workspace%/misc/bazel/semmle_code_stub
210

311
build --repo_env=CC=clang --repo_env=CXX=clang++
412

.bazelversion

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
6.3.1
1+
6.5.0

CODEOWNERS

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525

2626
# Bazel (excluding BUILD.bazel files)
2727
WORKSPACE.bazel @github/codeql-ci-reviewers
28+
MODULE.bazel @github/codeql-ci-reviewers
2829
.bazelversion @github/codeql-ci-reviewers
2930
.bazelrc @github/codeql-ci-reviewers
3031
**/*.bzl @github/codeql-ci-reviewers

MODULE.bazel

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
module(
2+
name = "codeql",
3+
version = "0.0",
4+
)
5+
6+
# this points to our internal repository when `codeql` is checked out as a submodule thereof
7+
# when building things from `codeql` independently this is stubbed out in `.bazelrc`
8+
bazel_dep(name = "semmle_code", version = "0.0")
9+
local_path_override(
10+
module_name = "semmle_code",
11+
path = "..",
12+
)
13+
14+
# see https://registry.bazel.build/ for a list of available packages
15+
16+
bazel_dep(name = "platforms", version = "0.0.8")
17+
bazel_dep(name = "rules_pkg", version = "0.9.1")
18+
bazel_dep(name = "rules_nodejs", version = "6.0.3")
19+
bazel_dep(name = "rules_python", version = "0.31.0")
20+
bazel_dep(name = "bazel_skylib", version = "1.5.0")
21+
bazel_dep(name = "abseil-cpp", version = "20240116.0", repo_name = "absl")
22+
bazel_dep(name = "nlohmann_json", version = "3.11.3", repo_name = "json")
23+
bazel_dep(name = "fmt", version = "10.0.0")
24+
25+
pip = use_extension("@rules_python//python/extensions:pip.bzl", "pip")
26+
pip.parse(
27+
hub_name = "codegen_deps",
28+
python_version = "3.11",
29+
requirements_lock = "//misc/codegen:requirements_lock.txt",
30+
)
31+
use_repo(pip, "codegen_deps")
32+
33+
swift_deps = use_extension("//swift/third_party:load.bzl", "swift_deps")
34+
use_repo(
35+
swift_deps,
36+
"binlog",
37+
"picosha2",
38+
"swift_prebuilt_darwin_x86_64",
39+
"swift_prebuilt_linux",
40+
"swift_toolchain_linux",
41+
"swift_toolchain_macos",
42+
)
43+
44+
node = use_extension("@rules_nodejs//nodejs:extensions.bzl", "node")
45+
node.toolchain(
46+
name = "nodejs",
47+
node_version = "18.15.0",
48+
)
49+
use_repo(node, "nodejs", "nodejs_toolchains")
50+
51+
register_toolchains(
52+
"@nodejs_toolchains//:all",
53+
)

WORKSPACE.bazel

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,2 @@
1-
# Please notice that any bazel targets and definitions in this repository are currently experimental
2-
# and for internal use only.
3-
4-
workspace(name = "codeql")
5-
6-
load("//misc/bazel:workspace.bzl", "codeql_workspace")
7-
8-
codeql_workspace()
9-
10-
load("//misc/bazel:workspace_deps.bzl", "codeql_workspace_deps")
11-
12-
codeql_workspace_deps()
1+
# please use MODULE.bazel to add dependencies
2+
# this empty file is required by internal repositories, don't remove it

javascript/BUILD.bazel

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
load("@//:dist.bzl", "dist")
1+
load("@semmle_code//:dist.bzl", "dist")
22
load("@rules_pkg//pkg:mappings.bzl", "pkg_files")
3-
load("@//buildutils-internal:zipmerge.bzl", "zipmerge")
3+
load("@semmle_code//buildutils-internal:zipmerge.bzl", "zipmerge")
44

55
package(default_visibility = ["//visibility:public"])
66

@@ -30,7 +30,7 @@ dist(
3030
"//javascript/downgrades",
3131
"//javascript/externs",
3232
"//javascript/extractor:tools-extractor",
33-
"@//language-packs/javascript:resources",
33+
"@semmle_code//language-packs/javascript:resources",
3434
],
3535
prefix = "javascript",
3636
)

javascript/downgrades/BUILD.bazel

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
load("@//:dist.bzl", "pack_zip")
1+
load("@semmle_code//:dist.bzl", "pack_zip")
22

33
pack_zip(
44
name = "downgrades",

javascript/externs/BUILD.bazel

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
load("@//:dist.bzl", "pack_zip")
1+
load("@semmle_code//:dist.bzl", "pack_zip")
22

33
pack_zip(
44
name = "externs",

javascript/extractor/BUILD.bazel

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,21 @@
1-
load("@//:common.bzl", "codeql_fat_jar", "codeql_java_project")
1+
load("@semmle_code//:common.bzl", "codeql_fat_jar", "codeql_java_project")
22
load("@rules_pkg//pkg:mappings.bzl", "pkg_files")
33

44
java_library(
55
name = "deps",
66
visibility = [":__subpackages__"],
77
exports = [
8-
"@//extractor:html",
9-
"@//extractor:yaml",
10-
"@//resources/lib/java:commons-compress",
11-
"@//resources/lib/java:gson",
12-
"@//resources/lib/java:jericho-html",
13-
"@//resources/lib/java:slf4j-api",
14-
"@//resources/lib/java:snakeyaml",
15-
"@//third_party:jackson",
16-
"@//third_party:logback",
17-
"@//util-java7",
18-
"@//util-java8",
8+
"@semmle_code//extractor:html",
9+
"@semmle_code//extractor:yaml",
10+
"@semmle_code//resources/lib/java:commons-compress",
11+
"@semmle_code//resources/lib/java:gson",
12+
"@semmle_code//resources/lib/java:jericho-html",
13+
"@semmle_code//resources/lib/java:slf4j-api",
14+
"@semmle_code//resources/lib/java:snakeyaml",
15+
"@semmle_code//third_party:jackson",
16+
"@semmle_code//third_party:logback",
17+
"@semmle_code//util-java7",
18+
"@semmle_code//util-java8",
1919
],
2020
)
2121

@@ -36,18 +36,18 @@ codeql_fat_jar(
3636
name = "extractor-javascript",
3737
srcs = [
3838
":extractor",
39-
"@//extractor:html",
40-
"@//extractor:xml-trap-writer",
41-
"@//extractor:yaml",
42-
"@//resources/lib/java:commons-compress",
43-
"@//resources/lib/java:gson",
44-
"@//resources/lib/java:jericho-html",
45-
"@//resources/lib/java:slf4j-api",
46-
"@//resources/lib/java:snakeyaml",
47-
"@//third_party:jackson",
48-
"@//third_party:logback",
49-
"@//util-java7",
50-
"@//util-java8",
39+
"@semmle_code//extractor:html",
40+
"@semmle_code//extractor:xml-trap-writer",
41+
"@semmle_code//extractor:yaml",
42+
"@semmle_code//resources/lib/java:commons-compress",
43+
"@semmle_code//resources/lib/java:gson",
44+
"@semmle_code//resources/lib/java:jericho-html",
45+
"@semmle_code//resources/lib/java:slf4j-api",
46+
"@semmle_code//resources/lib/java:snakeyaml",
47+
"@semmle_code//third_party:jackson",
48+
"@semmle_code//third_party:logback",
49+
"@semmle_code//util-java7",
50+
"@semmle_code//util-java8",
5151
],
5252
files = [":javascript-extractor-resources"],
5353
main_class = "com.semmle.js.extractor.Main",

javascript/extractor/lib/typescript/BUILD.bazel

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
load("@//:common.bzl", "on_windows")
1+
load("@semmle_code//:common.bzl", "on_windows")
22

33
# Builds a zip file of the compiled typscript-parser-wrapper and its dependencies.
44
genrule(

javascript/extractor/test/com/semmle/js/extractor/test/BUILD.bazel

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,15 @@ java_test(
77
"//javascript/extractor/tests",
88
"@nodejs//:node_bin",
99
],
10+
env = {
11+
"NODE_BIN": "$(rlocationpath @nodejs//:node_bin)",
12+
"TS_WRAPPER_ZIP": "$(rlocationpath //javascript/extractor/lib/typescript)",
13+
},
1014
test_class = "com.semmle.js.extractor.test.AllTests",
1115
deps = [
1216
"//javascript/extractor",
1317
"//javascript/extractor:deps",
14-
"@//resources/lib/java/DO_NOT_DISTRIBUTE:junit",
1518
"@bazel_tools//tools/java/runfiles",
19+
"@semmle_code//resources/lib/java/DO_NOT_DISTRIBUTE:junit",
1620
],
17-
env = {
18-
"NODE_BIN": "$(rlocationpath @nodejs//:node_bin)",
19-
"TS_WRAPPER_ZIP": "$(rlocationpath //javascript/extractor/lib/typescript)",
20-
},
2121
)
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
**/ql/javascript/extractor/tests/*/input//
1+
**/*ql*/javascript/extractor/tests/*/input//

misc/bazel/cmake/cmake.bzl

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,9 @@ CmakeInfo = provider(
2222
)
2323

2424
def _cmake_name(label):
25-
ret = ("%s_%s_%s" % (label.workspace_name, label.package, label.name)).replace("/", "_")
25+
# strip away the bzlmod module version for now
26+
workspace_name, _, _ = label.workspace_name.partition("~")
27+
ret = ("%s_%s_%s" % (workspace_name, label.package, label.name)).replace("/", "_")
2628
internal_transition_suffix = "_INTERNAL_TRANSITION"
2729
if ret.endswith(internal_transition_suffix):
2830
ret = ret[:-len(internal_transition_suffix)]
@@ -120,7 +122,6 @@ def _cmake_aspect_impl(target, ctx):
120122
prefix, # source
121123
"${BAZEL_EXEC_ROOT}/%s/%s" % (ctx.var["BINDIR"], prefix), # generated
122124
]
123-
124125
deps = [dep[CmakeInfo] for dep in deps if CmakeInfo in dep]
125126

126127
# by the book this should be done with depsets, but so far the performance implication is negligible

misc/bazel/cmake/setup.cmake

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,7 @@ endmacro()
1919
bazel(info workspace OUTPUT_VARIABLE BAZEL_WORKSPACE)
2020

2121
bazel(info output_base OUTPUT_VARIABLE BAZEL_OUTPUT_BASE)
22-
string(REPLACE "-" "_" BAZEL_EXEC_ROOT ${PROJECT_NAME})
23-
set(BAZEL_EXEC_ROOT ${BAZEL_OUTPUT_BASE}/execroot/${BAZEL_EXEC_ROOT})
22+
set(BAZEL_EXEC_ROOT ${BAZEL_OUTPUT_BASE}/execroot/_main)
2423

2524
macro(include_generated BAZEL_TARGET)
2625
bazel(build ${BAZEL_TARGET})
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
module(
2+
name = "semmle_code",
3+
version = "0.0",
4+
)

misc/bazel/semmle_code_stub/WORKSPACE.bazel

Whitespace-only changes.

misc/bazel/workspace.bzl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ load("@bazel_tools//tools/build_defs/repo:utils.bzl", "maybe")
33
load("//swift/third_party:load.bzl", load_swift_dependencies = "load_dependencies")
44

55
def codeql_workspace(repository_name = "codeql"):
6-
load_swift_dependencies(repository_name)
6+
load_swift_dependencies(repository_name = repository_name)
77
maybe(
88
repo_rule = http_archive,
99
name = "rules_pkg",

misc/bazel/workspace_deps.bzl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ load("@bazel_skylib//:workspace.bzl", "bazel_skylib_workspace")
55
def codeql_workspace_deps(repository_name = "codeql"):
66
pip_install(
77
name = "codegen_deps",
8-
requirements = "@%s//misc/codegen:requirements.txt" % repository_name,
8+
requirements = "@%s//misc/codegen:requirements_lock.txt" % repository_name,
99
)
1010
bazel_skylib_workspace()
1111
rules_pkg_dependencies()
File renamed without changes.

misc/codegen/requirements_lock.txt

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
#
2+
# This file is autogenerated by pip-compile with Python 3.11
3+
# by the following command:
4+
#
5+
# pip-compile --output-file=misc/codegen/requirements_lock.txt misc/codegen/requirements_in.txt
6+
#
7+
inflection==0.5.1
8+
# via -r misc/codegen/requirements_in.txt
9+
iniconfig==2.0.0
10+
# via pytest
11+
packaging==23.2
12+
# via pytest
13+
pluggy==1.4.0
14+
# via pytest
15+
pystache==0.6.5
16+
# via -r misc/codegen/requirements_in.txt
17+
pytest==8.0.0
18+
# via -r misc/codegen/requirements_in.txt
19+
pyyaml==6.0.1
20+
# via -r misc/codegen/requirements_in.txt
21+
toposort==1.10
22+
# via -r misc/codegen/requirements_in.txt

swift/extractor/remapping/SwiftFileInterception.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
#include <mutex>
99
#include <optional>
1010
#include <cassert>
11+
#include <cstdarg>
1112
#include <iostream>
1213

1314
#include <picosha2.h>
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
cc_library(
22
name = "picosha2",
33
hdrs = glob(["*.h"]),
4-
strip_include_prefix = ".",
4+
includes = ["."],
55
visibility = ["//visibility:public"],
66
)

0 commit comments

Comments
 (0)