diff --git a/AGENTS.md b/AGENTS.md index 5b458d3..071d772 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -99,7 +99,8 @@ - When creating a pull request from a worktree-specific development branch, create a dedicated pull-request branch separate from the branch that names or anchors the worktree. Do not open pull requests directly from the worktree branch. -- Ariadne uses a flat Rust source layout under `src/ariadne/`. +- Ariadne separates Rust library code and binary entry-point code under `src/ariadne/core/` and + `src/ariadne/bin/`. Do not add a Cargo-default nested `src/ariadne/src/` source directory. - Use `bazel build` for non-test targets when no Bazel test target is part of the validation set. `bazel test` exits non-zero when it finds no test targets. diff --git a/Cargo.lock b/Cargo.lock index 413061d..c62239c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -10,6 +10,13 @@ dependencies = [ "serde_json", ] +[[package]] +name = "ariadne-bin" +version = "0.1.0" +dependencies = [ + "ariadne", +] + [[package]] name = "itoa" version = "1.0.18" diff --git a/Cargo.toml b/Cargo.toml index 10b9230..5b8731f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,7 @@ [workspace] members = [ - "src/ariadne", + "src/ariadne/bin", + "src/ariadne/core", "src/machoke", ] resolver = "3" diff --git a/src/ariadne/BUILD b/src/ariadne/BUILD index 273ae04..bca2a4a 100644 --- a/src/ariadne/BUILD +++ b/src/ariadne/BUILD @@ -1,20 +1,6 @@ -load("@rules_rust//rust:defs.bzl", "rust_binary", "rust_library") - -rust_library( - name = "ariadne_lib", - crate_name = "ariadne", - crate_root = "lib.rs", - srcs = [ - "graph.rs", - "lib.rs", - ], -) - -rust_binary( +alias( name = "ariadne", - crate_name = "ariadne_cli", - srcs = ["main.rs"], - deps = [":ariadne_lib"], + actual = "//src/ariadne/bin:ariadne", ) sh_binary( diff --git a/src/ariadne/bin/BUILD b/src/ariadne/bin/BUILD new file mode 100644 index 0000000..efa77be --- /dev/null +++ b/src/ariadne/bin/BUILD @@ -0,0 +1,9 @@ +load("@rules_rust//rust:defs.bzl", "rust_binary") + +rust_binary( + name = "ariadne", + crate_name = "ariadne_cli", + visibility = ["//src/ariadne:__pkg__"], + srcs = ["main.rs"], + deps = ["//src/ariadne/core:ariadne_lib"], +) diff --git a/src/ariadne/bin/Cargo.toml b/src/ariadne/bin/Cargo.toml new file mode 100644 index 0000000..18559a3 --- /dev/null +++ b/src/ariadne/bin/Cargo.toml @@ -0,0 +1,11 @@ +[package] +name = "ariadne-bin" +version = "0.1.0" +edition = "2024" + +[[bin]] +name = "ariadne" +path = "main.rs" + +[dependencies] +ariadne = { path = "../core" } diff --git a/src/ariadne/main.rs b/src/ariadne/bin/main.rs similarity index 100% rename from src/ariadne/main.rs rename to src/ariadne/bin/main.rs diff --git a/src/ariadne/core/BUILD b/src/ariadne/core/BUILD new file mode 100644 index 0000000..258a2b4 --- /dev/null +++ b/src/ariadne/core/BUILD @@ -0,0 +1,16 @@ +load("@rules_rust//rust:defs.bzl", "rust_library") + +rust_library( + name = "ariadne_lib", + crate_name = "ariadne", + crate_root = "lib.rs", + visibility = ["//src/ariadne:__subpackages__"], + srcs = [ + "graph.rs", + "lib.rs", + ], + deps = [ + "//third_party/crates:serde", + "//third_party/crates:serde_json", + ], +) diff --git a/src/ariadne/Cargo.toml b/src/ariadne/core/Cargo.toml similarity index 79% rename from src/ariadne/Cargo.toml rename to src/ariadne/core/Cargo.toml index 49de630..cfc2504 100644 --- a/src/ariadne/Cargo.toml +++ b/src/ariadne/core/Cargo.toml @@ -6,10 +6,6 @@ edition = "2024" [lib] path = "lib.rs" -[[bin]] -name = "ariadne" -path = "main.rs" - [dependencies] serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" diff --git a/src/ariadne/graph.rs b/src/ariadne/core/graph.rs similarity index 100% rename from src/ariadne/graph.rs rename to src/ariadne/core/graph.rs diff --git a/src/ariadne/lib.rs b/src/ariadne/core/lib.rs similarity index 100% rename from src/ariadne/lib.rs rename to src/ariadne/core/lib.rs diff --git a/third_party/crates/crates.bzl b/third_party/crates/crates.bzl index 41e4c7a..d225fa8 100644 --- a/third_party/crates/crates.bzl +++ b/third_party/crates/crates.bzl @@ -310,12 +310,15 @@ def aliases( ############################################################################### _CRATE_EDITIONS = { - "src/ariadne": "2024", + "src/ariadne/bin": "2024", + "src/ariadne/core": "2024", "src/machoke": "2024", } _NORMAL_DEPENDENCIES = { - "src/ariadne": { + "src/ariadne/bin": { + }, + "src/ariadne/core": { _COMMON_CONDITION: { "serde": Label("//third_party/crates/serde-1.0.229:serde"), "serde_json": Label("//third_party/crates/serde_json-1.0.151:serde_json"), @@ -326,7 +329,9 @@ _NORMAL_DEPENDENCIES = { } _NORMAL_ALIASES = { - "src/ariadne": { + "src/ariadne/bin": { + }, + "src/ariadne/core": { _COMMON_CONDITION: { }, }, @@ -335,70 +340,90 @@ _NORMAL_ALIASES = { } _NORMAL_DEV_DEPENDENCIES = { - "src/ariadne": { + "src/ariadne/bin": { + }, + "src/ariadne/core": { }, "src/machoke": { }, } _NORMAL_DEV_ALIASES = { - "src/ariadne": { + "src/ariadne/bin": { + }, + "src/ariadne/core": { }, "src/machoke": { }, } _PROC_MACRO_DEPENDENCIES = { - "src/ariadne": { + "src/ariadne/bin": { + }, + "src/ariadne/core": { }, "src/machoke": { }, } _PROC_MACRO_ALIASES = { - "src/ariadne": { + "src/ariadne/bin": { + }, + "src/ariadne/core": { }, "src/machoke": { }, } _PROC_MACRO_DEV_DEPENDENCIES = { - "src/ariadne": { + "src/ariadne/bin": { + }, + "src/ariadne/core": { }, "src/machoke": { }, } _PROC_MACRO_DEV_ALIASES = { - "src/ariadne": { + "src/ariadne/bin": { + }, + "src/ariadne/core": { }, "src/machoke": { }, } _BUILD_DEPENDENCIES = { - "src/ariadne": { + "src/ariadne/bin": { + }, + "src/ariadne/core": { }, "src/machoke": { }, } _BUILD_ALIASES = { - "src/ariadne": { + "src/ariadne/bin": { + }, + "src/ariadne/core": { }, "src/machoke": { }, } _BUILD_PROC_MACRO_DEPENDENCIES = { - "src/ariadne": { + "src/ariadne/bin": { + }, + "src/ariadne/core": { }, "src/machoke": { }, } _BUILD_PROC_MACRO_ALIASES = { - "src/ariadne": { + "src/ariadne/bin": { + }, + "src/ariadne/core": { }, "src/machoke": { },