databuild/MODULE.bazel

240 lines
5.7 KiB
Python

module(
name = "databuild",
version = "0.1",
)
bazel_dep(name = "bazel_skylib", version = "1.8.1")
bazel_dep(name = "platforms", version = "0.0.11")
bazel_dep(name = "rules_shell", version = "0.4.0")
bazel_dep(name = "rules_oci", version = "2.2.6")
bazel_dep(name = "aspect_bazel_lib", version = "2.14.0")
bazel_dep(name = "rules_rust", version = "0.61.0")
bazel_dep(name = "rules_proto", version = "7.0.2")
bazel_dep(name = "protobuf", version = "29.0", repo_name = "com_google_protobuf")
crate = use_extension("@rules_rust//crate_universe:extensions.bzl", "crate")
crate.spec(
features = ["derive"],
package = "serde",
version = "1.0",
)
crate.spec(
package = "serde_json",
version = "1.0",
)
crate.spec(
package = "log",
version = "0.4",
)
crate.spec(
features = ["stderr"],
package = "simple_logger",
version = "4.3",
)
crate.spec(
package = "crossbeam-channel",
version = "0.5",
)
crate.spec(
package = "num_cpus",
version = "1.16",
)
crate.spec(
default_features = False,
features = [
"macros",
"net",
"rt-multi-thread",
"sync",
],
package = "tokio",
version = "1.38",
)
crate.spec(
package = "prost",
version = "0.13",
)
crate.spec(
package = "prost-types",
version = "0.13",
)
crate.spec(
package = "prost-build",
version = "0.13",
)
crate.spec(
package = "tempfile",
version = "3.0",
)
crate.spec(
package = "async-trait",
version = "0.1",
)
crate.spec(
features = ["v4"],
package = "uuid",
version = "1.0",
)
crate.spec(
features = ["bundled"],
package = "rusqlite",
version = "0.31",
)
crate.spec(
features = ["derive"],
package = "clap",
version = "4.0",
)
crate.spec(
features = ["json"],
package = "axum",
version = "0.7.2",
)
crate.spec(
package = "tower",
version = "0.4",
)
crate.spec(
features = ["cors"],
package = "tower-http",
version = "0.5",
)
crate.spec(
features = ["full"],
package = "hyper",
version = "1.0",
)
crate.spec(
features = ["axum"],
package = "aide",
version = "0.13.0",
)
crate.spec(
features = [
"uuid1",
"derive",
],
package = "schemars",
version = "0.8.16",
)
crate.spec(
features = ["aide"],
package = "axum-jsonschema",
version = "0.8.0",
)
crate.spec(
package = "thiserror",
version = "1.0",
)
crate.spec(
features = ["debug-embed"],
package = "rust-embed",
version = "8.0",
)
crate.spec(
package = "sysinfo",
version = "0.30",
)
crate.spec(
package = "chrono",
version = "0.4",
)
crate.from_specs()
use_repo(crate, "crates")
# TypeScript and Node.js dependencies for dashboard
bazel_dep(name = "aspect_rules_ts", version = "3.6.3")
bazel_dep(name = "aspect_rules_js", version = "2.0.0")
rules_ts_ext = use_extension("@aspect_rules_ts//ts:extensions.bzl", "ext")
rules_ts_ext.deps(ts_version_from = "//databuild/dashboard:package.json")
use_repo(rules_ts_ext, "npm_typescript")
#bazel_dep(name = "aspect_rules_ts", version = "3.4.0")
#bazel_dep(name = "aspect_rules_js", version = "2.1.3")
bazel_dep(name = "aspect_rules_esbuild", version = "0.21.0")
npm = use_extension("@aspect_rules_js//npm:extensions.bzl", "npm")
npm.npm_translate_lock(
name = "npm",
pnpm_lock = "//databuild/dashboard:pnpm-lock.yaml",
# verify_node_modules_ignored = "//:.bazelignore",
)
use_repo(npm, "npm")
pnpm = use_extension("@aspect_rules_js//npm:extensions.bzl", "pnpm")
# Allows developers to use the matching pnpm version, for example:
# bazel run -- @pnpm --dir /home/runner/work/rules_js/rules_js install
use_repo(pnpm, "pnpm")
npm.npm_import(
name = "mithril",
package = "mithril",
version = "2.2.2",
)
npm.npm_import(
name = "types_mithril",
package = "@types/mithril",
version = "2.2.7",
)
use_repo(npm, "mithril", "types_mithril")
#npm.npm_import(
# name = "npm_typescript",
# package = "typescript",
# version = "5.8.3",
#)
#use_repo(npm, "mithril", "npm_typescript", "types_mithril")
# Tailwind
http_file = use_repo_rule("@bazel_tools//tools/build_defs/repo:http.bzl", "http_file")
http_file(
name = "tailwind_macos",
executable = True,
sha256 = "8b0e5321ed7de33b8962410fa7e680f568366af8007bb9ebcb89cc68f70653f2",
urls = [
"https://github.com/tailwindlabs/tailwindcss/releases/download/v4.0.0/tailwindcss-macos-arm64",
],
)
http_file(
name = "tailwind_linux",
executable = True,
sha256 = "09c1a5997d68f5e0127d9737593e7dc658fc96dc1851d782a78983d0d6a03c7c",
urls = [
"https://github.com/tailwindlabs/tailwindcss/releases/download/v4.0.0/tailwindcss-linux-x64",
],
)
#http_archive(
# name = "aspect_rules_esbuild",
# sha256 = "550e33ddeb86a564b22b2c5d3f84748c6639b1b2b71fae66bf362c33392cbed8",
# strip_prefix = "rules_esbuild-0.21.0",
# url = "https://github.com/aspect-build/rules_esbuild/releases/download/v0.21.0/rules_esbuild-v0.21.0.tar.gz",
#)
#
#######################
## rules_esbuild setup #
#######################
#
## Fetches the rules_esbuild dependencies.
## If you want to have a different version of some dependency,
## you should fetch it *before* calling this.
## Alternatively, you can skip calling this function, so long as you've
## already fetched all the dependencies.
#load("@aspect_rules_esbuild//esbuild:dependencies.bzl", "rules_esbuild_dependencies")
#
#rules_esbuild_dependencies()
#
#rules_js_register_toolchains(node_version = DEFAULT_NODE_VERSION)
#
## Register a toolchain containing esbuild npm package and native bindings
#load("@aspect_rules_esbuild//esbuild:repositories.bzl", "LATEST_ESBUILD_VERSION", "esbuild_register_toolchains")
#
#esbuild_register_toolchains(
# name = "esbuild",
# esbuild_version = LATEST_ESBUILD_VERSION,
#)
#