"enso-org/enso" ############################ ### JavaScript ecosystem ### ############################ bazel_dep(name = "aspect_rules_js", version = "2.0.0-rc6") bazel_dep(name = "aspect_rules_ts", version = "3.0.0-rc0") bazel_dep(name = "rules_nodejs", version = "6.2.0") ## Node.js node = use_extension("@rules_nodejs//nodejs:extensions.bzl", "node") node.toolchain(node_version = "20.11.1") ## Npm npm = use_extension("@aspect_rules_js//npm:extensions.bzl", "npm", dev_dependency = True) npm.npm_translate_lock(name = "npm", pnpm_lock = "//:pnpm-lock.yaml", verify_node_modules_ignored = "//:.bazelignore") use_repo(npm, "npm") ## TypeScript # rules_ts_ext = use_extension("@aspect_rules_ts//ts:extensions.bzl", "ext", dev_dependency = True) # rules_ts_ext.deps() # use_repo(rules_ts_ext, "npm_typescript") ############ ### RUST ### ############ bazel_dep(name = "rules_rust", version = "0.48.0") single_version_override(module_name = "rules_rust", patches = ["patches/rules_rust_msvc_maxpath.patch"]) rust = use_extension("@rules_rust//rust:extensions.bzl", "rust") rust.toolchain(edition = "2021") use_repo(rust, "rust_toolchains") # manifests = use_extension("//:bazel_scripts/manifests.bzl", "manifests") # manifests.manifests(manifest = "//:Cargo.toml") # print( manifests.MANIFESTS ) crate = use_extension("@rules_rust//crate_universe:extension.bzl", "crate") crate.from_cargo( name = "crates", cargo_lockfile = "//:Cargo.lock", cargo_config = "//:.cargo/config.toml", manifests = [ "//:build_tools/ci-gen/Cargo.toml", "//:build_tools/cli/Cargo.toml", "//:build_tools/install/Cargo.toml", "//:build_tools/install/config/Cargo.toml", "//:build_tools/install/installer/Cargo.toml", "//:build_tools/install/uninstaller/Cargo.toml", "//:build_tools/macros/lib/Cargo.toml", "//:Cargo.toml", "//:lib/rust/enso-font/Cargo.toml", "//:lib/rust/font/Cargo.toml", "//:lib/rust/launcher-shims/Cargo.toml", "//:lib/rust/macro-utils/Cargo.toml", "//:lib/rust/metamodel/Cargo.toml", "//:lib/rust/parser/debug/Cargo.toml", "//:lib/rust/parser/doc-parser/Cargo.toml", "//:lib/rust/parser/generate-java/Cargo.toml", "//:lib/rust/parser/jni/Cargo.toml", "//:lib/rust/parser/schema/Cargo.toml", "//:lib/rust/parser/src/syntax/tree/visitor/Cargo.toml", "//:lib/rust/prelude/Cargo.toml", "//:lib/rust/prelude/macros/Cargo.toml", "//:lib/rust/reflect/Cargo.toml", "//:lib/rust/zst/Cargo.toml", "//:lib/rust/parser/debug/fuzz/Cargo.toml", "//:tools/language-server/logstat/Cargo.toml", "//:tools/language-server/wstest/Cargo.toml", "//app/rust-ffi:Cargo.toml", ] ) use_repo(crate, "crates") ########### ### JVM ### ########### bazel_dep(name = "rules_java", version = "7.6.1") bazel_dep(name = "rules_graalvm", version = "0.11.1") ## upgrade to 0.11.2 once available in bazel central gvm = use_extension("@rules_graalvm//:extensions.bzl", "graalvm") gvm.graalvm( name = "graalvm", version = "23.1.0", # gvm sdk version format like `24.x.x` also supported distribution = "ce", # `oracle`, `ce`, or `community` java_version = "21", # `17`, `20`, `21`, or `22` as supported by the version provided ) use_repo(gvm, "graalvm") register_toolchains("@graalvm//:jvm") register_toolchains("@graalvm//:sdk") ## Native-image register_toolchains("@graalvm//:toolchain") bazel_dep(name = "rules_jvm_external", version = "6.0") scala_logging_version = "3.9.4" scalatest_version = "3.3.0-SNAP4" cats_version = "2.9.0" circe_version = "0.14.5" circe_libs = ["circe-core", "circe-generic", "circe-parser"] circe = ["io.circe:%s_2.13:%s" % (x, circe_version) for x in circe_libs] commons_text_version = "1.10.0" http_components_version = "4.4.1" jackson_version = "2.15.2" commons_io_version = "2.12.0" commons_compress_version = "1.23.0" commons_lang_version = "3.12.0" junit_version = "4.13.2" hamcrest_version = "1.3" picocli_version = "4.6.1" minimal_json_version = "0.9.5" ## TODO: Consider replacing maven extension with ## https://github.com/bazeltools/bazel-deps ## The downside of the approach is that a number of other rules rely on it. maven = use_extension("@rules_jvm_external//:extensions.bzl", "maven") ## After updating a list of artifacts run ## > bazel run @unpinned_maven//:pin maven.install( artifacts = [ "com.typesafe.scala-logging:scala-logging_2.13:%s" % scala_logging_version, "org.scalatest:scalatest_2.13:%s" % scalatest_version, "org.typelevel:cats-core_2.13:%s" % cats_version, "org.apache.commons:commons-text:%s" % commons_text_version, "org.apache.httpcomponents:httpclient:%s" % http_components_version, "com.fasterxml.jackson.core:jackson-databind:%s" % jackson_version, "commons-io:commons-io:%s" % commons_io_version, "org.apache.commons:commons-compress:%s" % commons_compress_version, "org.apache.commons:commons-lang3:%s" % commons_lang_version, "junit:junit:%s" % junit_version, "org.hamcrest:hamcrest-all:%s" % hamcrest_version, ## bazel-distribution dependencies "info.picocli:picocli:%s" % picocli_version, "com.eclipsesource.minimal-json:minimal-json:%s" % minimal_json_version, ] + circe, fail_if_repin_required = True, lock_file = "//:maven_install.json", repositories = [ "https://repo.maven.apache.org/maven2", "https://repo1.maven.org/maven2", ], ) use_repo( maven, "maven", "unpinned_maven", )