diff options
author | Florian Klink <flokli@flokli.de> | 2023-01-02T13·37+0100 |
---|---|---|
committer | flokli <flokli@flokli.de> | 2023-01-03T13·03+0000 |
commit | ceb2c0ba895554c7cabb0ac20d3a80ea2aba1ab1 (patch) | |
tree | 427ee29cd8883bc1159a58e7f6e92a8d673b155e | |
parent | d0bbc8c8214fe164be572a0c2b1bd28f79fc1d20 (diff) |
chore(tvix/store): make importable r/5569
This allows other crates to import tvix_store. Rename the bin crate to tvix-store-bin, to avoid having multiple crates with the same name (https://github.com/rust-lang/cargo/issues/6313) Change-Id: I857768d6115640dbf102e79ed03e8474090df2fe Reviewed-on: https://cl.tvl.fyi/c/depot/+/7728 Tested-by: BuildkiteCI Reviewed-by: tazjin <tazjin@tvl.su>
-rw-r--r-- | tvix/Cargo.lock | 2 | ||||
-rw-r--r-- | tvix/Cargo.nix | 13 | ||||
-rw-r--r-- | tvix/store/Cargo.toml | 5 | ||||
-rw-r--r-- | tvix/store/default.nix | 7 | ||||
-rw-r--r-- | tvix/store/src/lib.rs | 10 | ||||
-rw-r--r-- | tvix/store/src/main.rs | 24 |
6 files changed, 35 insertions, 26 deletions
diff --git a/tvix/Cargo.lock b/tvix/Cargo.lock index 7a20c720aeb3..56e568559ffd 100644 --- a/tvix/Cargo.lock +++ b/tvix/Cargo.lock @@ -2223,7 +2223,7 @@ dependencies = [ ] [[package]] -name = "tvix-store" +name = "tvix-store-bin" version = "0.1.0" dependencies = [ "anyhow", diff --git a/tvix/Cargo.nix b/tvix/Cargo.nix index 361a0a3ee033..d96632e05351 100644 --- a/tvix/Cargo.nix +++ b/tvix/Cargo.nix @@ -103,10 +103,10 @@ rec { # File a bug if you depend on any for non-debug work! debug = internal.debugCrate { inherit packageId; }; }; - "tvix-store" = rec { - packageId = "tvix-store"; + "tvix-store-bin" = rec { + packageId = "tvix-store-bin"; build = internal.buildRustCrateWithFeatures { - packageId = "tvix-store"; + packageId = "tvix-store-bin"; }; # Debug support which might change between releases. @@ -6641,13 +6641,13 @@ rec { ]; }; - "tvix-store" = rec { - crateName = "tvix-store"; + "tvix-store-bin" = rec { + crateName = "tvix-store-bin"; version = "0.1.0"; edition = "2021"; crateBin = [ { - name = "tvix-store"; + name = "tvix-store-bin"; path = "src/main.rs"; requiredFeatures = [ ]; } @@ -6658,6 +6658,7 @@ rec { if (lib.versionOlder builtins.nixVersion "2.4pre20211007") then lib.cleanSourceWith { filter = sourceFilter; src = ./store; } else ./store; + libName = "tvix_store"; dependencies = [ { name = "anyhow"; diff --git a/tvix/store/Cargo.toml b/tvix/store/Cargo.toml index 111667cd74d1..abbd9b0dcbcd 100644 --- a/tvix/store/Cargo.toml +++ b/tvix/store/Cargo.toml @@ -1,8 +1,11 @@ [package] -name = "tvix-store" +name = "tvix-store-bin" version = "0.1.0" edition = "2021" +[lib] +name = "tvix_store" + [dependencies] anyhow = "1.0.68" blake3 = { version = "1.3.1", features = ["rayon", "std"] } diff --git a/tvix/store/default.nix b/tvix/store/default.nix index 68b529e723b1..65289cacc87c 100644 --- a/tvix/store/default.nix +++ b/tvix/store/default.nix @@ -11,7 +11,7 @@ let protobufDep = prev: (prev.nativeBuildInputs or [ ]) ++ [ pkgs.protobuf ]; in -depot.tvix.crates.workspaceMembers.tvix-store.build.override { +depot.tvix.crates.workspaceMembers.tvix-store-bin.build.override { # Ensure protobuf dependencies are available. # TODO: figure out a way to embed this directly in the //tvix # crate2nix config. @@ -28,6 +28,11 @@ depot.tvix.crates.workspaceMembers.tvix-store.build.override { PROTO_ROOT = protoRoot; nativeBuildInputs = protobufDep prev; }; + + tvix-store-bin = prev: { + PROTO_ROOT = protoRoot; + nativeBuildInputs = protobufDep prev; + }; }; runTests = true; diff --git a/tvix/store/src/lib.rs b/tvix/store/src/lib.rs new file mode 100644 index 000000000000..de1cd6557331 --- /dev/null +++ b/tvix/store/src/lib.rs @@ -0,0 +1,10 @@ +pub mod nixbase32; +pub mod nixpath; +pub mod proto; + +pub mod dummy_blob_service; +pub mod dummy_directory_service; +pub mod dummy_path_info_service; + +#[cfg(test)] +mod tests; diff --git a/tvix/store/src/main.rs b/tvix/store/src/main.rs index 0ba49e3bfd4c..0ad1857db6bc 100644 --- a/tvix/store/src/main.rs +++ b/tvix/store/src/main.rs @@ -1,24 +1,14 @@ -use crate::proto::blob_service_server::BlobServiceServer; -use crate::proto::directory_service_server::DirectoryServiceServer; -use crate::proto::path_info_service_server::PathInfoServiceServer; +use tvix_store::proto::blob_service_server::BlobServiceServer; +use tvix_store::proto::directory_service_server::DirectoryServiceServer; +use tvix_store::proto::path_info_service_server::PathInfoServiceServer; #[cfg(feature = "reflection")] -use crate::proto::FILE_DESCRIPTOR_SET; +use tvix_store::proto::FILE_DESCRIPTOR_SET; use clap::Parser; use tonic::{transport::Server, Result}; use tracing::{info, Level}; -mod dummy_blob_service; -mod dummy_directory_service; -mod dummy_path_info_service; -mod nixbase32; -mod nixpath; -mod proto; - -#[cfg(test)] -mod tests; - #[derive(Parser)] #[command(author, version, about, long_about = None)] struct Cli { @@ -44,9 +34,9 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> { let mut server = Server::builder(); - let blob_service = dummy_blob_service::DummyBlobService {}; - let directory_service = dummy_directory_service::DummyDirectoryService {}; - let path_info_service = dummy_path_info_service::DummyPathInfoService {}; + let blob_service = tvix_store::dummy_blob_service::DummyBlobService {}; + let directory_service = tvix_store::dummy_directory_service::DummyDirectoryService {}; + let path_info_service = tvix_store::dummy_path_info_service::DummyPathInfoService {}; let mut router = server .add_service(BlobServiceServer::new(blob_service)) |