mirror of
https://github.com/openai/codex.git
synced 2026-03-05 13:35:28 +03:00
[bazel] Bump rules_rs and llvm (#13366)
# External (non-OpenAI) Pull Request Requirements Before opening this Pull Request, please read the dedicated "Contributing" markdown file or your PR may be closed: https://github.com/openai/codex/blob/main/docs/contributing.md If your PR conforms to our contribution guidelines, replace this text with a detailed and high quality description of your changes. Include a link to a bug report or enhancement request.
This commit is contained in:
2
.bazelrc
2
.bazelrc
@@ -18,7 +18,7 @@ common --enable_platform_specific_config
|
|||||||
common:linux --host_platform=//:local_linux
|
common:linux --host_platform=//:local_linux
|
||||||
common:windows --host_platform=//:local_windows
|
common:windows --host_platform=//:local_windows
|
||||||
common --@rules_cc//cc/toolchains/args/archiver_flags:use_libtool_on_macos=False
|
common --@rules_cc//cc/toolchains/args/archiver_flags:use_libtool_on_macos=False
|
||||||
common --@toolchains_llvm_bootstrapped//config:experimental_stub_libgcc_s
|
common --@llvm//config:experimental_stub_libgcc_s
|
||||||
|
|
||||||
# We need to use the sh toolchain on windows so we don't send host bash paths to the linux executor.
|
# We need to use the sh toolchain on windows so we don't send host bash paths to the linux executor.
|
||||||
common:windows --@rules_rust//rust/settings:experimental_use_sh_toolchain_for_bootstrap_process_wrapper
|
common:windows --@rules_rust//rust/settings:experimental_use_sh_toolchain_for_bootstrap_process_wrapper
|
||||||
|
|||||||
@@ -1,11 +1,4 @@
|
|||||||
load("@apple_support//xcode:xcode_config.bzl", "xcode_config")
|
load("@apple_support//xcode:xcode_config.bzl", "xcode_config")
|
||||||
load("@rules_cc//cc:defs.bzl", "cc_shared_library")
|
|
||||||
|
|
||||||
cc_shared_library(
|
|
||||||
name = "clang",
|
|
||||||
deps = ["@llvm-project//clang:libclang"],
|
|
||||||
visibility = ["//visibility:public"],
|
|
||||||
)
|
|
||||||
|
|
||||||
xcode_config(name = "disable_xcode")
|
xcode_config(name = "disable_xcode")
|
||||||
|
|
||||||
@@ -16,7 +9,7 @@ platform(
|
|||||||
name = "local_linux",
|
name = "local_linux",
|
||||||
constraint_values = [
|
constraint_values = [
|
||||||
# We mark the local platform as glibc-compatible because musl-built rust cannot dlopen proc macros.
|
# We mark the local platform as glibc-compatible because musl-built rust cannot dlopen proc macros.
|
||||||
"@toolchains_llvm_bootstrapped//constraints/libc:gnu.2.28",
|
"@llvm//constraints/libc:gnu.2.28",
|
||||||
],
|
],
|
||||||
parents = ["@platforms//host"],
|
parents = ["@platforms//host"],
|
||||||
)
|
)
|
||||||
|
|||||||
72
MODULE.bazel
72
MODULE.bazel
@@ -1,18 +1,18 @@
|
|||||||
module(name = "codex")
|
module(name = "codex")
|
||||||
|
|
||||||
bazel_dep(name = "platforms", version = "1.0.0")
|
bazel_dep(name = "platforms", version = "1.0.0")
|
||||||
bazel_dep(name = "toolchains_llvm_bootstrapped", version = "0.5.6")
|
bazel_dep(name = "llvm", version = "0.6.1")
|
||||||
single_version_override(
|
single_version_override(
|
||||||
module_name = "toolchains_llvm_bootstrapped",
|
module_name = "llvm",
|
||||||
patch_strip = 1,
|
patch_strip = 1,
|
||||||
patches = [
|
patches = [
|
||||||
"//patches:toolchains_llvm_bootstrapped_resource_dir.patch",
|
"//patches:toolchains_llvm_bootstrapped_resource_dir.patch",
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
|
|
||||||
register_toolchains("@toolchains_llvm_bootstrapped//toolchain:all")
|
register_toolchains("@llvm//toolchain:all")
|
||||||
|
|
||||||
osx = use_extension("@toolchains_llvm_bootstrapped//extensions:osx.bzl", "osx")
|
osx = use_extension("@llvm//extensions:osx.bzl", "osx")
|
||||||
osx.framework(name = "ApplicationServices")
|
osx.framework(name = "ApplicationServices")
|
||||||
osx.framework(name = "AppKit")
|
osx.framework(name = "AppKit")
|
||||||
osx.framework(name = "ColorSync")
|
osx.framework(name = "ColorSync")
|
||||||
@@ -33,21 +33,13 @@ osx.framework(name = "Kernel")
|
|||||||
osx.framework(name = "OSLog")
|
osx.framework(name = "OSLog")
|
||||||
osx.framework(name = "Security")
|
osx.framework(name = "Security")
|
||||||
osx.framework(name = "SystemConfiguration")
|
osx.framework(name = "SystemConfiguration")
|
||||||
use_repo(osx, "macosx15.4.sdk")
|
use_repo(osx, "macos_sdk")
|
||||||
|
|
||||||
# Needed to disable xcode...
|
# Needed to disable xcode...
|
||||||
bazel_dep(name = "apple_support", version = "2.1.0")
|
bazel_dep(name = "apple_support", version = "2.1.0")
|
||||||
bazel_dep(name = "rules_cc", version = "0.2.16")
|
bazel_dep(name = "rules_cc", version = "0.2.16")
|
||||||
bazel_dep(name = "rules_platform", version = "0.1.0")
|
bazel_dep(name = "rules_platform", version = "0.1.0")
|
||||||
bazel_dep(name = "rules_rs", version = "0.0.23")
|
bazel_dep(name = "rules_rs", version = "0.0.40")
|
||||||
|
|
||||||
# Special toolchains branch
|
|
||||||
archive_override(
|
|
||||||
module_name = "rules_rs",
|
|
||||||
integrity = "sha256-O34UF4H7b1Qacu3vlu2Od4ILGVApzg5j1zl952SFL3w=",
|
|
||||||
strip_prefix = "rules_rs-097123c2aa72672e371e69e7035869f5a45c7b2b",
|
|
||||||
url = "https://github.com/dzbarsky/rules_rs/archive/097123c2aa72672e371e69e7035869f5a45c7b2b.tar.gz",
|
|
||||||
)
|
|
||||||
|
|
||||||
rules_rust = use_extension("@rules_rs//rs/experimental:rules_rust.bzl", "rules_rust")
|
rules_rust = use_extension("@rules_rs//rs/experimental:rules_rust.bzl", "rules_rust")
|
||||||
use_repo(rules_rust, "rules_rust")
|
use_repo(rules_rust, "rules_rust")
|
||||||
@@ -57,13 +49,9 @@ toolchains.toolchain(
|
|||||||
edition = "2024",
|
edition = "2024",
|
||||||
version = "1.93.0",
|
version = "1.93.0",
|
||||||
)
|
)
|
||||||
use_repo(
|
use_repo(toolchains, "default_rust_toolchains")
|
||||||
toolchains,
|
|
||||||
"experimental_rust_toolchains_1_93_0",
|
|
||||||
"rust_toolchain_artifacts_macos_aarch64_1_93_0",
|
|
||||||
)
|
|
||||||
|
|
||||||
register_toolchains("@experimental_rust_toolchains_1_93_0//:all")
|
register_toolchains("@default_rust_toolchains//:all")
|
||||||
|
|
||||||
crate = use_extension("@rules_rs//rs:extensions.bzl", "crate")
|
crate = use_extension("@rules_rs//rs:extensions.bzl", "crate")
|
||||||
crate.from_cargo(
|
crate.from_cargo(
|
||||||
@@ -79,6 +67,7 @@ crate.from_cargo(
|
|||||||
"x86_64-apple-darwin",
|
"x86_64-apple-darwin",
|
||||||
"x86_64-pc-windows-gnullvm",
|
"x86_64-pc-windows-gnullvm",
|
||||||
],
|
],
|
||||||
|
use_experimental_platforms = True,
|
||||||
)
|
)
|
||||||
|
|
||||||
bazel_dep(name = "zstd", version = "1.5.7")
|
bazel_dep(name = "zstd", version = "1.5.7")
|
||||||
@@ -139,11 +128,9 @@ crate.annotation(
|
|||||||
"OPENSSL_NO_VENDOR": "1",
|
"OPENSSL_NO_VENDOR": "1",
|
||||||
"OPENSSL_STATIC": "1",
|
"OPENSSL_STATIC": "1",
|
||||||
},
|
},
|
||||||
crate_features = [
|
|
||||||
"dep:openssl-src",
|
|
||||||
],
|
|
||||||
crate = "openssl-sys",
|
crate = "openssl-sys",
|
||||||
data = ["@openssl//:gen_dir"],
|
data = ["@openssl//:gen_dir"],
|
||||||
|
gen_build_script = "on",
|
||||||
)
|
)
|
||||||
|
|
||||||
inject_repo(crate, "openssl")
|
inject_repo(crate, "openssl")
|
||||||
@@ -153,27 +140,28 @@ crate.annotation(
|
|||||||
workspace_cargo_toml = "rust/runfiles/Cargo.toml",
|
workspace_cargo_toml = "rust/runfiles/Cargo.toml",
|
||||||
)
|
)
|
||||||
|
|
||||||
llvm = use_extension("@toolchains_llvm_bootstrapped//extensions:llvm.bzl", "llvm")
|
llvm = use_extension("@llvm//extensions:llvm.bzl", "llvm")
|
||||||
use_repo(llvm, "llvm-project")
|
use_repo(llvm, "llvm-project")
|
||||||
|
|
||||||
crate.annotation(
|
crate.annotation(
|
||||||
# Provide the hermetic SDK path so the build script doesn't try to invoke an unhermetic `xcrun --show-sdk-path`.
|
# Provide the hermetic SDK path so the build script doesn't try to invoke an unhermetic `xcrun --show-sdk-path`.
|
||||||
build_script_data = [
|
build_script_data = [
|
||||||
"@macosx15.4.sdk//sysroot",
|
"@macos_sdk//sysroot",
|
||||||
],
|
],
|
||||||
build_script_env = {
|
build_script_env = {
|
||||||
"BINDGEN_EXTRA_CLANG_ARGS": "-isystem $(location @toolchains_llvm_bootstrapped//:builtin_headers)",
|
"BINDGEN_EXTRA_CLANG_ARGS": "-isystem $(location @llvm//:builtin_headers)",
|
||||||
"COREAUDIO_SDK_PATH": "$(location @macosx15.4.sdk//sysroot)",
|
"COREAUDIO_SDK_PATH": "$(location @macos_sdk//sysroot)",
|
||||||
"LIBCLANG_PATH": "$(location @codex//:clang)",
|
"LIBCLANG_PATH": "$(location @llvm-project//clang:libclang_interface_output)",
|
||||||
},
|
},
|
||||||
build_script_tools = [
|
build_script_tools = [
|
||||||
"@codex//:clang",
|
"@llvm-project//clang:libclang_interface_output",
|
||||||
"@toolchains_llvm_bootstrapped//:builtin_headers",
|
"@llvm//:builtin_headers",
|
||||||
],
|
],
|
||||||
crate = "coreaudio-sys",
|
crate = "coreaudio-sys",
|
||||||
|
gen_build_script = "on",
|
||||||
)
|
)
|
||||||
|
|
||||||
inject_repo(crate, "codex", "toolchains_llvm_bootstrapped", "macosx15.4.sdk")
|
inject_repo(crate, "llvm", "llvm-project", "macos_sdk")
|
||||||
|
|
||||||
# Fix readme inclusions
|
# Fix readme inclusions
|
||||||
crate.annotation(
|
crate.annotation(
|
||||||
@@ -184,28 +172,6 @@ crate.annotation(
|
|||||||
],
|
],
|
||||||
)
|
)
|
||||||
|
|
||||||
WINDOWS_IMPORT_LIB = """
|
|
||||||
load("@rules_cc//cc:defs.bzl", "cc_import")
|
|
||||||
|
|
||||||
cc_import(
|
|
||||||
name = "windows_import_lib",
|
|
||||||
static_library = glob(["lib/*.a"])[0],
|
|
||||||
)
|
|
||||||
"""
|
|
||||||
|
|
||||||
crate.annotation(
|
|
||||||
additive_build_file_content = WINDOWS_IMPORT_LIB,
|
|
||||||
crate = "windows_x86_64_gnullvm",
|
|
||||||
gen_build_script = "off",
|
|
||||||
deps = [":windows_import_lib"],
|
|
||||||
)
|
|
||||||
crate.annotation(
|
|
||||||
additive_build_file_content = WINDOWS_IMPORT_LIB,
|
|
||||||
crate = "windows_aarch64_gnullvm",
|
|
||||||
gen_build_script = "off",
|
|
||||||
deps = [":windows_import_lib"],
|
|
||||||
)
|
|
||||||
|
|
||||||
bazel_dep(name = "alsa_lib", version = "1.2.9.bcr.4")
|
bazel_dep(name = "alsa_lib", version = "1.2.9.bcr.4")
|
||||||
|
|
||||||
crate.annotation(
|
crate.annotation(
|
||||||
|
|||||||
27
MODULE.bazel.lock
generated
27
MODULE.bazel.lock
generated
@@ -44,10 +44,12 @@
|
|||||||
"https://bcr.bazel.build/modules/bazel_features/1.28.0/MODULE.bazel": "4b4200e6cbf8fa335b2c3f43e1d6ef3e240319c33d43d60cc0fbd4b87ece299d",
|
"https://bcr.bazel.build/modules/bazel_features/1.28.0/MODULE.bazel": "4b4200e6cbf8fa335b2c3f43e1d6ef3e240319c33d43d60cc0fbd4b87ece299d",
|
||||||
"https://bcr.bazel.build/modules/bazel_features/1.3.0/MODULE.bazel": "cdcafe83ec318cda34e02948e81d790aab8df7a929cec6f6969f13a489ccecd9",
|
"https://bcr.bazel.build/modules/bazel_features/1.3.0/MODULE.bazel": "cdcafe83ec318cda34e02948e81d790aab8df7a929cec6f6969f13a489ccecd9",
|
||||||
"https://bcr.bazel.build/modules/bazel_features/1.30.0/MODULE.bazel": "a14b62d05969a293b80257e72e597c2da7f717e1e69fa8b339703ed6731bec87",
|
"https://bcr.bazel.build/modules/bazel_features/1.30.0/MODULE.bazel": "a14b62d05969a293b80257e72e597c2da7f717e1e69fa8b339703ed6731bec87",
|
||||||
|
"https://bcr.bazel.build/modules/bazel_features/1.32.0/MODULE.bazel": "095d67022a58cb20f7e20e1aefecfa65257a222c18a938e2914fd257b5f1ccdc",
|
||||||
"https://bcr.bazel.build/modules/bazel_features/1.33.0/MODULE.bazel": "8b8dc9d2a4c88609409c3191165bccec0e4cb044cd7a72ccbe826583303459f6",
|
"https://bcr.bazel.build/modules/bazel_features/1.33.0/MODULE.bazel": "8b8dc9d2a4c88609409c3191165bccec0e4cb044cd7a72ccbe826583303459f6",
|
||||||
"https://bcr.bazel.build/modules/bazel_features/1.34.0/MODULE.bazel": "e8475ad7c8965542e0c7aac8af68eb48c4af904be3d614b6aa6274c092c2ea1e",
|
"https://bcr.bazel.build/modules/bazel_features/1.34.0/MODULE.bazel": "e8475ad7c8965542e0c7aac8af68eb48c4af904be3d614b6aa6274c092c2ea1e",
|
||||||
"https://bcr.bazel.build/modules/bazel_features/1.34.0/source.json": "dfa5c4b01110313153b484a735764d247fee5624bbab63d25289e43b151a657a",
|
|
||||||
"https://bcr.bazel.build/modules/bazel_features/1.4.1/MODULE.bazel": "e45b6bb2350aff3e442ae1111c555e27eac1d915e77775f6fdc4b351b758b5d7",
|
"https://bcr.bazel.build/modules/bazel_features/1.4.1/MODULE.bazel": "e45b6bb2350aff3e442ae1111c555e27eac1d915e77775f6fdc4b351b758b5d7",
|
||||||
|
"https://bcr.bazel.build/modules/bazel_features/1.42.0/MODULE.bazel": "e8ca15cb2639c5f12183db6dcb678735555d0cdd739b32a0418b6532b5e565f8",
|
||||||
|
"https://bcr.bazel.build/modules/bazel_features/1.42.0/source.json": "f2ea90e5dd0322481147114c7d5e4608c4b3fae2eeccae655e4d76a382389f6f",
|
||||||
"https://bcr.bazel.build/modules/bazel_features/1.9.0/MODULE.bazel": "885151d58d90d8d9c811eb75e3288c11f850e1d6b481a8c9f766adee4712358b",
|
"https://bcr.bazel.build/modules/bazel_features/1.9.0/MODULE.bazel": "885151d58d90d8d9c811eb75e3288c11f850e1d6b481a8c9f766adee4712358b",
|
||||||
"https://bcr.bazel.build/modules/bazel_features/1.9.1/MODULE.bazel": "8f679097876a9b609ad1f60249c49d68bfab783dd9be012faf9d82547b14815a",
|
"https://bcr.bazel.build/modules/bazel_features/1.9.1/MODULE.bazel": "8f679097876a9b609ad1f60249c49d68bfab783dd9be012faf9d82547b14815a",
|
||||||
"https://bcr.bazel.build/modules/bazel_lib/3.0.0/MODULE.bazel": "22b70b80ac89ad3f3772526cd9feee2fa412c2b01933fea7ed13238a448d370d",
|
"https://bcr.bazel.build/modules/bazel_lib/3.0.0/MODULE.bazel": "22b70b80ac89ad3f3772526cd9feee2fa412c2b01933fea7ed13238a448d370d",
|
||||||
@@ -88,6 +90,9 @@
|
|||||||
"https://bcr.bazel.build/modules/libcap/2.27.bcr.1/MODULE.bazel": "7c034d7a4d92b2293294934377f5d1cbc88119710a11079fa8142120f6f08768",
|
"https://bcr.bazel.build/modules/libcap/2.27.bcr.1/MODULE.bazel": "7c034d7a4d92b2293294934377f5d1cbc88119710a11079fa8142120f6f08768",
|
||||||
"https://bcr.bazel.build/modules/libcap/2.27.bcr.1/source.json": "3b116cbdbd25a68ffb587b672205f6d353a4c19a35452e480d58fc89531e0a10",
|
"https://bcr.bazel.build/modules/libcap/2.27.bcr.1/source.json": "3b116cbdbd25a68ffb587b672205f6d353a4c19a35452e480d58fc89531e0a10",
|
||||||
"https://bcr.bazel.build/modules/libpfm/4.11.0/MODULE.bazel": "45061ff025b301940f1e30d2c16bea596c25b176c8b6b3087e92615adbd52902",
|
"https://bcr.bazel.build/modules/libpfm/4.11.0/MODULE.bazel": "45061ff025b301940f1e30d2c16bea596c25b176c8b6b3087e92615adbd52902",
|
||||||
|
"https://bcr.bazel.build/modules/llvm/0.6.0/MODULE.bazel": "42c2182c49f13d2df83a4a4a95ab55d31efda47b2d67acf419bf6b31522b2a30",
|
||||||
|
"https://bcr.bazel.build/modules/llvm/0.6.1/MODULE.bazel": "29170ab19f4e2dc9b6bbf9b3d101738e84142f63ba29a13cc33e0d40f74c79b0",
|
||||||
|
"https://bcr.bazel.build/modules/llvm/0.6.1/source.json": "2d8cdd3a5f8e1d16132dbbe97250133101e4863c0376d23273d9afd7363cc331",
|
||||||
"https://bcr.bazel.build/modules/nlohmann_json/3.6.1/MODULE.bazel": "6f7b417dcc794d9add9e556673ad25cb3ba835224290f4f848f8e2db1e1fca74",
|
"https://bcr.bazel.build/modules/nlohmann_json/3.6.1/MODULE.bazel": "6f7b417dcc794d9add9e556673ad25cb3ba835224290f4f848f8e2db1e1fca74",
|
||||||
"https://bcr.bazel.build/modules/nlohmann_json/3.6.1/source.json": "f448c6e8963fdfa7eb831457df83ad63d3d6355018f6574fb017e8169deb43a9",
|
"https://bcr.bazel.build/modules/nlohmann_json/3.6.1/source.json": "f448c6e8963fdfa7eb831457df83ad63d3d6355018f6574fb017e8169deb43a9",
|
||||||
"https://bcr.bazel.build/modules/openssl/3.5.4.bcr.0/MODULE.bazel": "0f6b8f20b192b9ff0781406256150bcd46f19e66d807dcb0c540548439d6fc35",
|
"https://bcr.bazel.build/modules/openssl/3.5.4.bcr.0/MODULE.bazel": "0f6b8f20b192b9ff0781406256150bcd46f19e66d807dcb0c540548439d6fc35",
|
||||||
@@ -199,6 +204,8 @@
|
|||||||
"https://bcr.bazel.build/modules/rules_python/1.6.0/MODULE.bazel": "7e04ad8f8d5bea40451cf80b1bd8262552aa73f841415d20db96b7241bd027d8",
|
"https://bcr.bazel.build/modules/rules_python/1.6.0/MODULE.bazel": "7e04ad8f8d5bea40451cf80b1bd8262552aa73f841415d20db96b7241bd027d8",
|
||||||
"https://bcr.bazel.build/modules/rules_python/1.7.0/MODULE.bazel": "d01f995ecd137abf30238ad9ce97f8fc3ac57289c8b24bd0bf53324d937a14f8",
|
"https://bcr.bazel.build/modules/rules_python/1.7.0/MODULE.bazel": "d01f995ecd137abf30238ad9ce97f8fc3ac57289c8b24bd0bf53324d937a14f8",
|
||||||
"https://bcr.bazel.build/modules/rules_python/1.7.0/source.json": "028a084b65dcf8f4dc4f82f8778dbe65df133f234b316828a82e060d81bdce32",
|
"https://bcr.bazel.build/modules/rules_python/1.7.0/source.json": "028a084b65dcf8f4dc4f82f8778dbe65df133f234b316828a82e060d81bdce32",
|
||||||
|
"https://bcr.bazel.build/modules/rules_rs/0.0.40/MODULE.bazel": "63238bcb69010753dbd37b5ed08cb79d3af2d88a40b0fda0b110f60f307e86d4",
|
||||||
|
"https://bcr.bazel.build/modules/rules_rs/0.0.40/source.json": "ae3b17d2f9e4fbcd3de543318e71f83d8522c8527f385bf2b2a7665ec504827e",
|
||||||
"https://bcr.bazel.build/modules/rules_shell/0.2.0/MODULE.bazel": "fda8a652ab3c7d8fee214de05e7a9916d8b28082234e8d2c0094505c5268ed3c",
|
"https://bcr.bazel.build/modules/rules_shell/0.2.0/MODULE.bazel": "fda8a652ab3c7d8fee214de05e7a9916d8b28082234e8d2c0094505c5268ed3c",
|
||||||
"https://bcr.bazel.build/modules/rules_shell/0.3.0/MODULE.bazel": "de4402cd12f4cc8fda2354fce179fdb068c0b9ca1ec2d2b17b3e21b24c1a937b",
|
"https://bcr.bazel.build/modules/rules_shell/0.3.0/MODULE.bazel": "de4402cd12f4cc8fda2354fce179fdb068c0b9ca1ec2d2b17b3e21b24c1a937b",
|
||||||
"https://bcr.bazel.build/modules/rules_shell/0.4.1/MODULE.bazel": "00e501db01bbf4e3e1dd1595959092c2fadf2087b2852d3f553b5370f5633592",
|
"https://bcr.bazel.build/modules/rules_shell/0.4.1/MODULE.bazel": "00e501db01bbf4e3e1dd1595959092c2fadf2087b2852d3f553b5370f5633592",
|
||||||
@@ -223,9 +230,6 @@
|
|||||||
"https://bcr.bazel.build/modules/tar.bzl/0.2.1/MODULE.bazel": "52d1c00a80a8cc67acbd01649e83d8dd6a9dc426a6c0b754a04fe8c219c76468",
|
"https://bcr.bazel.build/modules/tar.bzl/0.2.1/MODULE.bazel": "52d1c00a80a8cc67acbd01649e83d8dd6a9dc426a6c0b754a04fe8c219c76468",
|
||||||
"https://bcr.bazel.build/modules/tar.bzl/0.6.0/MODULE.bazel": "a3584b4edcfafcabd9b0ef9819808f05b372957bbdff41601429d5fd0aac2e7c",
|
"https://bcr.bazel.build/modules/tar.bzl/0.6.0/MODULE.bazel": "a3584b4edcfafcabd9b0ef9819808f05b372957bbdff41601429d5fd0aac2e7c",
|
||||||
"https://bcr.bazel.build/modules/tar.bzl/0.6.0/source.json": "4a620381df075a16cb3a7ed57bd1d05f7480222394c64a20fa51bdb636fda658",
|
"https://bcr.bazel.build/modules/tar.bzl/0.6.0/source.json": "4a620381df075a16cb3a7ed57bd1d05f7480222394c64a20fa51bdb636fda658",
|
||||||
"https://bcr.bazel.build/modules/toolchains_llvm_bootstrapped/0.5.2/MODULE.bazel": "f7c822cea99caef928d7cbe695498096e53c4b2c0ea45997e9a64bf6b77b43b0",
|
|
||||||
"https://bcr.bazel.build/modules/toolchains_llvm_bootstrapped/0.5.6/MODULE.bazel": "7298112608aefec21ea8bfbe325b14472222a0243c3dabcd0287eba418791f35",
|
|
||||||
"https://bcr.bazel.build/modules/toolchains_llvm_bootstrapped/0.5.6/source.json": "c2a30627cfe15e4deeba63a75d1894324444ae0276eb17ac0161ba5c220c1cb2",
|
|
||||||
"https://bcr.bazel.build/modules/upb/0.0.0-20220923-a547704/MODULE.bazel": "7298990c00040a0e2f121f6c32544bab27d4452f80d9ce51349b1a28f3005c43",
|
"https://bcr.bazel.build/modules/upb/0.0.0-20220923-a547704/MODULE.bazel": "7298990c00040a0e2f121f6c32544bab27d4452f80d9ce51349b1a28f3005c43",
|
||||||
"https://bcr.bazel.build/modules/with_cfg.bzl/0.12.0/MODULE.bazel": "b573395fe63aef4299ba095173e2f62ccfee5ad9bbf7acaa95dba73af9fc2b38",
|
"https://bcr.bazel.build/modules/with_cfg.bzl/0.12.0/MODULE.bazel": "b573395fe63aef4299ba095173e2f62ccfee5ad9bbf7acaa95dba73af9fc2b38",
|
||||||
"https://bcr.bazel.build/modules/with_cfg.bzl/0.12.0/source.json": "3f3fbaeafecaf629877ad152a2c9def21f8d330d91aa94c5dc75bbb98c10b8b8",
|
"https://bcr.bazel.build/modules/with_cfg.bzl/0.12.0/source.json": "3f3fbaeafecaf629877ad152a2c9def21f8d330d91aa94c5dc75bbb98c10b8b8",
|
||||||
@@ -244,7 +248,7 @@
|
|||||||
"@@aspect_tools_telemetry+//:extension.bzl%telemetry": {
|
"@@aspect_tools_telemetry+//:extension.bzl%telemetry": {
|
||||||
"general": {
|
"general": {
|
||||||
"bzlTransitiveDigest": "dnnhvKMf9MIXMulhbhHBblZdDAfAkiSVjApIXpUz9Y8=",
|
"bzlTransitiveDigest": "dnnhvKMf9MIXMulhbhHBblZdDAfAkiSVjApIXpUz9Y8=",
|
||||||
"usagesDigest": "RFeOiu3n5PGxbV4G+nHCOyM04AaEegaq6ajL+2iZ3Bo=",
|
"usagesDigest": "2ScE07TNSr/xo2GnYHCRI4JX4hiql6iZaNKUIUshUv4=",
|
||||||
"recordedInputs": [
|
"recordedInputs": [
|
||||||
"REPO_MAPPING:aspect_tools_telemetry+,bazel_lib bazel_lib+",
|
"REPO_MAPPING:aspect_tools_telemetry+,bazel_lib bazel_lib+",
|
||||||
"REPO_MAPPING:aspect_tools_telemetry+,bazel_skylib bazel_skylib+"
|
"REPO_MAPPING:aspect_tools_telemetry+,bazel_skylib bazel_skylib+"
|
||||||
@@ -255,17 +259,20 @@
|
|||||||
"attributes": {
|
"attributes": {
|
||||||
"deps": {
|
"deps": {
|
||||||
"abseil-cpp": "20250814.1",
|
"abseil-cpp": "20250814.1",
|
||||||
"apple_support": "1.24.2",
|
"alsa_lib": "1.2.9.bcr.4",
|
||||||
|
"apple_support": "2.1.0",
|
||||||
"aspect_bazel_lib": "2.19.3",
|
"aspect_bazel_lib": "2.19.3",
|
||||||
"aspect_tools_telemetry": "0.3.2",
|
"aspect_tools_telemetry": "0.3.2",
|
||||||
"bazel_features": "1.34.0",
|
"bazel_features": "1.34.0",
|
||||||
"bazel_lib": "3.0.0",
|
"bazel_lib": "3.2.0",
|
||||||
"bazel_skylib": "1.8.2",
|
"bazel_skylib": "1.8.2",
|
||||||
"buildozer": "8.2.1",
|
"buildozer": "8.2.1",
|
||||||
|
"bzip2": "1.0.8.bcr.3",
|
||||||
"gawk": "5.3.2.bcr.1",
|
"gawk": "5.3.2.bcr.1",
|
||||||
"googletest": "1.17.0",
|
"googletest": "1.17.0",
|
||||||
"jq.bzl": "0.1.0",
|
"jq.bzl": "0.1.0",
|
||||||
"jsoncpp": "1.9.6",
|
"jsoncpp": "1.9.6",
|
||||||
|
"libcap": "2.27.bcr.1",
|
||||||
"nlohmann_json": "3.6.1",
|
"nlohmann_json": "3.6.1",
|
||||||
"openssl": "3.5.4.bcr.0",
|
"openssl": "3.5.4.bcr.0",
|
||||||
"package_metadata": "0.0.5",
|
"package_metadata": "0.0.5",
|
||||||
@@ -285,15 +292,17 @@
|
|||||||
"rules_platform": "0.1.0",
|
"rules_platform": "0.1.0",
|
||||||
"rules_proto": "7.1.0",
|
"rules_proto": "7.1.0",
|
||||||
"rules_python": "1.7.0",
|
"rules_python": "1.7.0",
|
||||||
"rules_rs": "0.0.23",
|
|
||||||
"rules_shell": "0.6.1",
|
"rules_shell": "0.6.1",
|
||||||
"rules_swift": "3.1.2",
|
"rules_swift": "3.1.2",
|
||||||
|
"sed": "4.9.bcr.3",
|
||||||
"stardoc": "0.7.2",
|
"stardoc": "0.7.2",
|
||||||
"swift_argument_parser": "1.3.1.2",
|
"swift_argument_parser": "1.3.1.2",
|
||||||
"tar.bzl": "0.6.0",
|
"tar.bzl": "0.6.0",
|
||||||
|
"toolchains_llvm_bootstrapped": "0.5.6",
|
||||||
"with_cfg.bzl": "0.12.0",
|
"with_cfg.bzl": "0.12.0",
|
||||||
"yq.bzl": "0.1.1",
|
"yq.bzl": "0.1.1",
|
||||||
"zlib": "1.3.1.bcr.5"
|
"zlib": "1.3.1.bcr.8",
|
||||||
|
"zstd": "1.5.7"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,6 +3,5 @@ load("//:defs.bzl", "codex_rust_crate")
|
|||||||
codex_rust_crate(
|
codex_rust_crate(
|
||||||
name = "app-server",
|
name = "app-server",
|
||||||
crate_name = "codex_app_server",
|
crate_name = "codex_app_server",
|
||||||
integration_deps_extra = ["//codex-rs/app-server/tests/common:common"],
|
|
||||||
test_tags = ["no-sandbox"],
|
test_tags = ["no-sandbox"],
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -46,7 +46,6 @@ codex_rust_crate(
|
|||||||
# succeeds without this workaround.
|
# succeeds without this workaround.
|
||||||
"//:AGENTS.md",
|
"//:AGENTS.md",
|
||||||
],
|
],
|
||||||
integration_deps_extra = ["//codex-rs/core/tests/common:common"],
|
|
||||||
test_tags = ["no-sandbox"],
|
test_tags = ["no-sandbox"],
|
||||||
extra_binaries = [
|
extra_binaries = [
|
||||||
"//codex-rs/linux-sandbox:codex-linux-sandbox",
|
"//codex-rs/linux-sandbox:codex-linux-sandbox",
|
||||||
|
|||||||
@@ -3,5 +3,4 @@ load("//:defs.bzl", "codex_rust_crate")
|
|||||||
codex_rust_crate(
|
codex_rust_crate(
|
||||||
name = "mcp-server",
|
name = "mcp-server",
|
||||||
crate_name = "codex_mcp_server",
|
crate_name = "codex_mcp_server",
|
||||||
integration_deps_extra = ["//codex-rs/mcp-server/tests/common:common"],
|
|
||||||
)
|
)
|
||||||
|
|||||||
31
defs.bzl
31
defs.bzl
@@ -17,7 +17,7 @@ def multiplatform_binaries(name, platforms = PLATFORMS):
|
|||||||
for platform in platforms:
|
for platform in platforms:
|
||||||
platform_data(
|
platform_data(
|
||||||
name = name + "_" + platform,
|
name = name + "_" + platform,
|
||||||
platform = "@toolchains_llvm_bootstrapped//platforms:" + platform,
|
platform = "@llvm//platforms:" + platform,
|
||||||
target = name,
|
target = name,
|
||||||
tags = ["manual"],
|
tags = ["manual"],
|
||||||
)
|
)
|
||||||
@@ -42,7 +42,6 @@ def codex_rust_crate(
|
|||||||
rustc_flags_extra = [],
|
rustc_flags_extra = [],
|
||||||
rustc_env = {},
|
rustc_env = {},
|
||||||
deps_extra = [],
|
deps_extra = [],
|
||||||
integration_deps_extra = [],
|
|
||||||
integration_compile_data_extra = [],
|
integration_compile_data_extra = [],
|
||||||
test_data_extra = [],
|
test_data_extra = [],
|
||||||
test_tags = [],
|
test_tags = [],
|
||||||
@@ -73,7 +72,6 @@ def codex_rust_crate(
|
|||||||
rustc_env: Extra rustc_env entries to merge with defaults.
|
rustc_env: Extra rustc_env entries to merge with defaults.
|
||||||
deps_extra: Extra normal deps beyond @crates resolution.
|
deps_extra: Extra normal deps beyond @crates resolution.
|
||||||
Typically only needed when features add additional deps.
|
Typically only needed when features add additional deps.
|
||||||
integration_deps_extra: Extra deps for integration tests only.
|
|
||||||
integration_compile_data_extra: Extra compile_data for integration tests.
|
integration_compile_data_extra: Extra compile_data for integration tests.
|
||||||
test_data_extra: Extra runtime data for tests.
|
test_data_extra: Extra runtime data for tests.
|
||||||
test_tags: Tags applied to unit + integration test targets.
|
test_tags: Tags applied to unit + integration test targets.
|
||||||
@@ -81,11 +79,6 @@ def codex_rust_crate(
|
|||||||
extra_binaries: Additional binary labels to surface as test data and
|
extra_binaries: Additional binary labels to surface as test data and
|
||||||
`CARGO_BIN_EXE_*` environment variables. These are only needed for binaries from a different crate.
|
`CARGO_BIN_EXE_*` environment variables. These are only needed for binaries from a different crate.
|
||||||
"""
|
"""
|
||||||
deps = all_crate_deps(normal = True) + deps_extra
|
|
||||||
dev_deps = all_crate_deps(normal_dev = True)
|
|
||||||
proc_macro_deps = all_crate_deps(proc_macro = True)
|
|
||||||
proc_macro_dev_deps = all_crate_deps(proc_macro_dev = True)
|
|
||||||
|
|
||||||
test_env = {
|
test_env = {
|
||||||
"INSTA_WORKSPACE_ROOT": ".",
|
"INSTA_WORKSPACE_ROOT": ".",
|
||||||
"INSTA_SNAPSHOT_PATH": "src",
|
"INSTA_SNAPSHOT_PATH": "src",
|
||||||
@@ -99,18 +92,19 @@ def codex_rust_crate(
|
|||||||
|
|
||||||
lib_srcs = crate_srcs or native.glob(["src/**/*.rs"], exclude = binaries.values(), allow_empty = True)
|
lib_srcs = crate_srcs or native.glob(["src/**/*.rs"], exclude = binaries.values(), allow_empty = True)
|
||||||
|
|
||||||
|
maybe_deps = []
|
||||||
|
|
||||||
if build_script_enabled and native.glob(["build.rs"], allow_empty = True):
|
if build_script_enabled and native.glob(["build.rs"], allow_empty = True):
|
||||||
cargo_build_script(
|
cargo_build_script(
|
||||||
name = name + "-build-script",
|
name = name + "-build-script",
|
||||||
srcs = ["build.rs"],
|
srcs = ["build.rs"],
|
||||||
deps = all_crate_deps(build = True),
|
deps = all_crate_deps(build = True),
|
||||||
proc_macro_deps = all_crate_deps(build_proc_macro = True),
|
|
||||||
data = build_script_data,
|
data = build_script_data,
|
||||||
# Some build script deps sniff version-related env vars...
|
# Some build script deps sniff version-related env vars...
|
||||||
version = "0.0.0",
|
version = "0.0.0",
|
||||||
)
|
)
|
||||||
|
|
||||||
deps = deps + [name + "-build-script"]
|
maybe_deps += [name + "-build-script"]
|
||||||
|
|
||||||
if lib_srcs:
|
if lib_srcs:
|
||||||
lib_rule = rust_proc_macro if proc_macro else rust_library
|
lib_rule = rust_proc_macro if proc_macro else rust_library
|
||||||
@@ -118,8 +112,7 @@ def codex_rust_crate(
|
|||||||
name = name,
|
name = name,
|
||||||
crate_name = crate_name,
|
crate_name = crate_name,
|
||||||
crate_features = crate_features,
|
crate_features = crate_features,
|
||||||
deps = deps,
|
deps = all_crate_deps() + maybe_deps + deps_extra,
|
||||||
proc_macro_deps = proc_macro_deps,
|
|
||||||
compile_data = compile_data,
|
compile_data = compile_data,
|
||||||
data = lib_data_extra,
|
data = lib_data_extra,
|
||||||
srcs = lib_srcs,
|
srcs = lib_srcs,
|
||||||
@@ -133,18 +126,14 @@ def codex_rust_crate(
|
|||||||
name = name + "-unit-tests",
|
name = name + "-unit-tests",
|
||||||
crate = name,
|
crate = name,
|
||||||
env = test_env,
|
env = test_env,
|
||||||
deps = deps + dev_deps,
|
deps = all_crate_deps(normal = True, normal_dev = True) + maybe_deps + deps_extra,
|
||||||
proc_macro_deps = proc_macro_deps + proc_macro_dev_deps,
|
|
||||||
rustc_flags = rustc_flags_extra,
|
rustc_flags = rustc_flags_extra,
|
||||||
rustc_env = rustc_env,
|
rustc_env = rustc_env,
|
||||||
data = test_data_extra,
|
data = test_data_extra,
|
||||||
tags = test_tags,
|
tags = test_tags,
|
||||||
)
|
)
|
||||||
|
|
||||||
if proc_macro:
|
maybe_deps += [name]
|
||||||
proc_macro_deps += [name]
|
|
||||||
else:
|
|
||||||
deps += [name]
|
|
||||||
|
|
||||||
sanitized_binaries = []
|
sanitized_binaries = []
|
||||||
cargo_env = {}
|
cargo_env = {}
|
||||||
@@ -157,8 +146,7 @@ def codex_rust_crate(
|
|||||||
name = binary,
|
name = binary,
|
||||||
crate_name = binary.replace("-", "_"),
|
crate_name = binary.replace("-", "_"),
|
||||||
crate_root = main,
|
crate_root = main,
|
||||||
deps = deps,
|
deps = all_crate_deps() + maybe_deps + deps_extra,
|
||||||
proc_macro_deps = proc_macro_deps,
|
|
||||||
edition = crate_edition,
|
edition = crate_edition,
|
||||||
rustc_flags = rustc_flags_extra,
|
rustc_flags = rustc_flags_extra,
|
||||||
srcs = native.glob(["src/**/*.rs"]),
|
srcs = native.glob(["src/**/*.rs"]),
|
||||||
@@ -184,8 +172,7 @@ def codex_rust_crate(
|
|||||||
srcs = [test],
|
srcs = [test],
|
||||||
data = native.glob(["tests/**"], allow_empty = True) + sanitized_binaries + test_data_extra,
|
data = native.glob(["tests/**"], allow_empty = True) + sanitized_binaries + test_data_extra,
|
||||||
compile_data = native.glob(["tests/**"], allow_empty = True) + integration_compile_data_extra,
|
compile_data = native.glob(["tests/**"], allow_empty = True) + integration_compile_data_extra,
|
||||||
deps = deps + dev_deps + integration_deps_extra,
|
deps = all_crate_deps(normal = True, normal_dev = True) + maybe_deps + deps_extra,
|
||||||
proc_macro_deps = proc_macro_deps + proc_macro_dev_deps,
|
|
||||||
# Keep `file!()` paths Cargo-like (`core/tests/...`) instead of
|
# Keep `file!()` paths Cargo-like (`core/tests/...`) instead of
|
||||||
# Bazel workspace-prefixed (`codex-rs/core/tests/...`) for snapshot parity.
|
# Bazel workspace-prefixed (`codex-rs/core/tests/...`) for snapshot parity.
|
||||||
rustc_flags = rustc_flags_extra + ["--remap-path-prefix=codex-rs="],
|
rustc_flags = rustc_flags_extra + ["--remap-path-prefix=codex-rs="],
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
diff --git a/toolchain/args/BUILD.bazel b/toolchain/args/BUILD.bazel
|
diff --git a/toolchain/args/BUILD.bazel b/toolchain/args/BUILD.bazel
|
||||||
index e6dc56c..b323589 100644
|
index 7da0ddb..78326d9 100644
|
||||||
--- a/toolchain/args/BUILD.bazel
|
--- a/toolchain/args/BUILD.bazel
|
||||||
+++ b/toolchain/args/BUILD.bazel
|
+++ b/toolchain/args/BUILD.bazel
|
||||||
@@ -17,8 +17,8 @@ package(default_visibility = ["//visibility:public"])
|
@@ -17,8 +17,8 @@ package(default_visibility = ["//visibility:public"])
|
||||||
@@ -12,29 +12,10 @@ index e6dc56c..b323589 100644
|
|||||||
],
|
],
|
||||||
args = [
|
args = [
|
||||||
"-resource-dir",
|
"-resource-dir",
|
||||||
@@ -32,6 +32,46 @@ cc_args(
|
@@ -32,6 +32,25 @@ cc_args(
|
||||||
],
|
},
|
||||||
)
|
)
|
||||||
|
|
||||||
+alias(
|
|
||||||
+ name = "clang_builtin_headers_include_search_directory",
|
|
||||||
+ actual = select({
|
|
||||||
+ "@toolchains_llvm_bootstrapped//platforms/config:linux_x86_64": "@llvm-toolchain-minimal-21.1.8-linux-amd64//:builtin_headers",
|
|
||||||
+ "@toolchains_llvm_bootstrapped//platforms/config:linux_aarch64": "@llvm-toolchain-minimal-21.1.8-linux-arm64//:builtin_headers",
|
|
||||||
+ "@toolchains_llvm_bootstrapped//platforms/config:linux_x86_64_gnu": "@llvm-toolchain-minimal-21.1.8-linux-amd64//:builtin_headers",
|
|
||||||
+ "@toolchains_llvm_bootstrapped//platforms/config:linux_aarch64_gnu": "@llvm-toolchain-minimal-21.1.8-linux-arm64//:builtin_headers",
|
|
||||||
+ "@toolchains_llvm_bootstrapped//platforms/config:linux_x86_64_musl": "@llvm-toolchain-minimal-21.1.8-linux-amd64//:builtin_headers",
|
|
||||||
+ "@toolchains_llvm_bootstrapped//platforms/config:linux_aarch64_musl": "@llvm-toolchain-minimal-21.1.8-linux-arm64//:builtin_headers",
|
|
||||||
+ "@toolchains_llvm_bootstrapped//platforms/config:macos_x86_64": "@llvm-toolchain-minimal-21.1.8-darwin-arm64//:builtin_headers",
|
|
||||||
+ "@toolchains_llvm_bootstrapped//platforms/config:macos_aarch64": "@llvm-toolchain-minimal-21.1.8-darwin-arm64//:builtin_headers",
|
|
||||||
+ "@toolchains_llvm_bootstrapped//platforms/config:windows_x86_64": "@llvm-toolchain-minimal-21.1.8-windows-amd64//:builtin_headers",
|
|
||||||
+ "@toolchains_llvm_bootstrapped//platforms/config:windows_aarch64": "@llvm-toolchain-minimal-21.1.8-windows-arm64//:builtin_headers",
|
|
||||||
+ "@toolchains_llvm_bootstrapped//platforms/config:none_wasm32": "@llvm-toolchain-minimal-21.1.8-linux-amd64//:builtin_headers",
|
|
||||||
+ "@toolchains_llvm_bootstrapped//platforms/config:none_wasm64": "@llvm-toolchain-minimal-21.1.8-linux-amd64//:builtin_headers",
|
|
||||||
+ }),
|
|
||||||
+ visibility = ["//toolchain:__subpackages__"],
|
|
||||||
+)
|
|
||||||
+
|
|
||||||
+cc_args(
|
+cc_args(
|
||||||
+ name = "clang_builtin_headers_include_search_paths",
|
+ name = "clang_builtin_headers_include_search_paths",
|
||||||
+ actions = [
|
+ actions = [
|
||||||
@@ -46,24 +27,22 @@ index e6dc56c..b323589 100644
|
|||||||
+ "{clang_builtin_headers_include_search_path}",
|
+ "{clang_builtin_headers_include_search_path}",
|
||||||
+ ],
|
+ ],
|
||||||
+ format = {
|
+ format = {
|
||||||
+ "clang_builtin_headers_include_search_path": ":clang_builtin_headers_include_search_directory",
|
+ "clang_builtin_headers_include_search_path": "//:builtin_headers",
|
||||||
+ },
|
+ },
|
||||||
+ data = [
|
+ data = [
|
||||||
+ ":clang_builtin_headers_include_search_directory",
|
+ "//:builtin_headers",
|
||||||
+ ],
|
|
||||||
+ allowlist_include_directories = [
|
|
||||||
+ ":clang_builtin_headers_include_search_directory",
|
|
||||||
+ ],
|
+ ],
|
||||||
|
+ allowlist_include_directories = ["//:builtin_headers"],
|
||||||
+)
|
+)
|
||||||
+
|
+
|
||||||
cc_args(
|
cc_args(
|
||||||
name = "llvm_target_for_platform",
|
name = "llvm_target_for_platform",
|
||||||
actions = [
|
actions = [
|
||||||
diff --git a/toolchain/BUILD.bazel b/toolchain/BUILD.bazel
|
diff --git a/toolchain/BUILD.bazel b/toolchain/BUILD.bazel
|
||||||
index 6ffc9f7..e02089a 100644
|
index 1f89467..8f20f10 100644
|
||||||
--- a/toolchain/BUILD.bazel
|
--- a/toolchain/BUILD.bazel
|
||||||
+++ b/toolchain/BUILD.bazel
|
+++ b/toolchain/BUILD.bazel
|
||||||
@@ -100,6 +100,7 @@ cc_args_list(
|
@@ -107,6 +107,7 @@ cc_args_list(
|
||||||
"@platforms//os:macos": [],
|
"@platforms//os:macos": [],
|
||||||
"//conditions:default": [
|
"//conditions:default": [
|
||||||
"//toolchain/args:resource_dir",
|
"//toolchain/args:resource_dir",
|
||||||
|
|||||||
2
rbe.bzl
2
rbe.bzl
@@ -18,7 +18,7 @@ platform(
|
|||||||
"@platforms//cpu:{cpu}",
|
"@platforms//cpu:{cpu}",
|
||||||
"@platforms//os:linux",
|
"@platforms//os:linux",
|
||||||
"@bazel_tools//tools/cpp:clang",
|
"@bazel_tools//tools/cpp:clang",
|
||||||
"@toolchains_llvm_bootstrapped//constraints/libc:gnu.2.28",
|
"@llvm//constraints/libc:gnu.2.28",
|
||||||
],
|
],
|
||||||
exec_properties = {{
|
exec_properties = {{
|
||||||
# Ubuntu-based image that includes git, python3, dotslash, and other
|
# Ubuntu-based image that includes git, python3, dotslash, and other
|
||||||
|
|||||||
Reference in New Issue
Block a user