diff options
-rw-r--r-- | tvix/Cargo.nix | 6 | ||||
-rw-r--r-- | tvix/castore/Cargo.toml | 8 | ||||
-rw-r--r-- | tvix/castore/default.nix | 2 | ||||
-rw-r--r-- | tvix/castore/src/composition.rs | 6 | ||||
-rw-r--r-- | tvix/castore/src/directoryservice/from_addr.rs | 4 | ||||
-rw-r--r-- | tvix/store/Cargo.toml | 2 | ||||
-rw-r--r-- | tvix/store/default.nix | 2 | ||||
-rw-r--r-- | tvix/store/src/utils.rs | 12 |
8 files changed, 20 insertions, 22 deletions
diff --git a/tvix/Cargo.nix b/tvix/Cargo.nix index a09cbc016a23..ed9132ebf5bb 100644 --- a/tvix/Cargo.nix +++ b/tvix/Cargo.nix @@ -15507,7 +15507,7 @@ rec { "tonic-reflection" = [ "dep:tonic-reflection" ]; "virtiofs" = [ "fs" "dep:vhost" "dep:vhost-user-backend" "dep:virtio-queue" "dep:vm-memory" "dep:vmm-sys-util" "dep:virtio-bindings" "fuse-backend-rs?/vhost-user-fs" "fuse-backend-rs?/virtiofs" ]; }; - resolvedDefaultFeatures = [ "cloud" "default" "fs" "fuse" "integration" "tonic-reflection" "virtiofs" "xp-store-composition" ]; + resolvedDefaultFeatures = [ "cloud" "default" "fs" "fuse" "integration" "tonic-reflection" "virtiofs" "xp-composition-url-refs" ]; }; "tvix-cli" = rec { crateName = "tvix-cli"; @@ -16260,9 +16260,9 @@ rec { "tonic-reflection" = [ "dep:tonic-reflection" "tvix-castore/tonic-reflection" ]; "tracy" = [ "tvix-tracing/tracy" ]; "virtiofs" = [ "tvix-castore/virtiofs" ]; - "xp-store-composition" = [ "toml" "tvix-castore/xp-store-composition" ]; + "xp-composition-cli" = [ "toml" "tvix-castore/xp-composition-url-refs" ]; }; - resolvedDefaultFeatures = [ "cloud" "default" "fuse" "integration" "otlp" "toml" "tonic-reflection" "tracy" "virtiofs" "xp-store-composition" ]; + resolvedDefaultFeatures = [ "cloud" "default" "fuse" "integration" "otlp" "toml" "tonic-reflection" "tracy" "virtiofs" "xp-composition-cli" ]; }; "tvix-tracing" = rec { crateName = "tvix-tracing"; diff --git a/tvix/castore/Cargo.toml b/tvix/castore/Cargo.toml index aa44e2e8ee4b..3c32e5f05229 100644 --- a/tvix/castore/Cargo.toml +++ b/tvix/castore/Cargo.toml @@ -91,11 +91,9 @@ virtiofs = [ ] fuse = ["fs"] tonic-reflection = ["dep:tonic-reflection"] -# It's already possible for other crates to build a -# fully fledged store composition system based on castore composition. -# However, this feature enables anonymous url syntax which might -# inherently expose arbitrary composition possibilities to the user. -xp-store-composition = [] +# This feature enables anonymous url syntax which might inherently expose +# arbitrary composition possibilities to the user. +xp-composition-url-refs = [] # Whether to run the integration tests. # Requires the following packages in $PATH: # cbtemulator, google-cloud-bigtable-tool diff --git a/tvix/castore/default.nix b/tvix/castore/default.nix index 5314da9e0333..47c9a99980b8 100644 --- a/tvix/castore/default.nix +++ b/tvix/castore/default.nix @@ -9,7 +9,7 @@ meta.ci.targets = [ "integration-tests" ] ++ lib.filter (x: lib.hasPrefix "with-features" x || x == "no-features") (lib.attrNames passthru); passthru = (depot.tvix.utils.mkFeaturePowerset { inherit (old) crateName; - features = ([ "cloud" "fuse" "tonic-reflection" "xp-store-composition" ] + features = ([ "cloud" "fuse" "tonic-reflection" "xp-composition-url-refs" ] # virtiofs feature currently fails to build on Darwin ++ lib.optional pkgs.stdenv.isLinux "virtiofs"); override.testPreRun = '' diff --git a/tvix/castore/src/composition.rs b/tvix/castore/src/composition.rs index c6fa1ce64ac4..c3b6222d5d86 100644 --- a/tvix/castore/src/composition.rs +++ b/tvix/castore/src/composition.rs @@ -89,7 +89,7 @@ //! //! Continue with Example 2, with my_registry instead of REG //! -//! EXPERIMENTAL: If the xp-store-composition feature is enabled, +//! EXPERIMENTAL: If the xp-composition-url-refs feature is enabled, //! entrypoints can also be URL strings, which are created as //! anonymous stores. Instantiations of the same URL will //! result in a new, distinct anonymous store each time, so creating @@ -315,7 +315,7 @@ impl<'a> CompositionContext<'a> { Ok(self.build_internal(entrypoint).await?) } - #[cfg(feature = "xp-store-composition")] + #[cfg(feature = "xp-composition-url-refs")] async fn build_anonymous<T: ?Sized + Send + Sync + 'static>( &self, entrypoint: String, @@ -330,7 +330,7 @@ impl<'a> CompositionContext<'a> { &self, entrypoint: String, ) -> BoxFuture<'_, Result<Arc<T>, CompositionError>> { - #[cfg(feature = "xp-store-composition")] + #[cfg(feature = "xp-composition-url-refs")] if entrypoint.contains("://") { // There is a chance this is a url. we are building an anonymous store return Box::pin(async move { diff --git a/tvix/castore/src/directoryservice/from_addr.rs b/tvix/castore/src/directoryservice/from_addr.rs index 2f7fc6d7de5a..d50b5a35dd03 100644 --- a/tvix/castore/src/directoryservice/from_addr.rs +++ b/tvix/castore/src/directoryservice/from_addr.rs @@ -89,12 +89,12 @@ mod tests { #[case::grpc_invalid_host_and_path("grpc+http://localhost/some-path", false)] /// A valid example for store composition using anonymous urls #[cfg_attr( - feature = "xp-store-composition", + feature = "xp-composition-url-refs", case::anonymous_url_composition("cache://?near=memory://&far=memory://", true) )] /// Store composition with anonymous urls should fail if the feature is disabled #[cfg_attr( - not(feature = "xp-store-composition"), + not(feature = "xp-composition-url-refs"), case::anonymous_url_composition("cache://?near=memory://&far=memory://", false) )] /// A valid example for Bigtable diff --git a/tvix/store/Cargo.toml b/tvix/store/Cargo.toml index 865b1f4f61b9..22a7cf19f087 100644 --- a/tvix/store/Cargo.toml +++ b/tvix/store/Cargo.toml @@ -73,7 +73,7 @@ otlp = ["tvix-tracing/otlp"] tonic-reflection = ["dep:tonic-reflection", "tvix-castore/tonic-reflection"] tracy = ["tvix-tracing/tracy"] virtiofs = ["tvix-castore/virtiofs"] -xp-store-composition = ["toml", "tvix-castore/xp-store-composition"] +xp-composition-cli = ["toml", "tvix-castore/xp-composition-url-refs"] # Whether to run the integration tests. # Requires the following packages in $PATH: # cbtemulator, google-cloud-bigtable-tool diff --git a/tvix/store/default.nix b/tvix/store/default.nix index 863ddb6de23f..58749025ddb4 100644 --- a/tvix/store/default.nix +++ b/tvix/store/default.nix @@ -37,7 +37,7 @@ in }; passthru = old.passthru // (depot.tvix.utils.mkFeaturePowerset { inherit (old) crateName; - features = ([ "cloud" "fuse" "otlp" "tonic-reflection" "xp-store-composition" ] + features = ([ "cloud" "fuse" "otlp" "tonic-reflection" "xp-composition-cli" ] # virtiofs feature currently fails to build on Darwin ++ lib.optional pkgs.stdenv.isLinux "virtiofs"); override.testPreRun = '' diff --git a/tvix/store/src/utils.rs b/tvix/store/src/utils.rs index 49b23bc6b5f3..0a1888f6f2e1 100644 --- a/tvix/store/src/utils.rs +++ b/tvix/store/src/utils.rs @@ -55,7 +55,7 @@ pub struct ServiceUrls { /// Path to a TOML file describing the way the services should be composed /// Experimental because the format is not final. /// If specified, the other service addrs are ignored. - #[cfg(feature = "xp-store-composition")] + #[cfg(feature = "xp-composition-cli")] #[arg(long, env)] experimental_store_composition: Option<String>, } @@ -75,7 +75,7 @@ pub struct ServiceUrlsGrpc { #[arg(long, env, default_value = "grpc+http://[::1]:8000")] path_info_service_addr: String, - #[cfg(feature = "xp-store-composition")] + #[cfg(feature = "xp-composition-cli")] #[arg(long, env)] experimental_store_composition: Option<String>, } @@ -98,7 +98,7 @@ pub struct ServiceUrlsMemory { #[arg(long, env, default_value = "memory://")] path_info_service_addr: String, - #[cfg(feature = "xp-store-composition")] + #[cfg(feature = "xp-composition-cli")] #[arg(long, env)] experimental_store_composition: Option<String>, } @@ -109,7 +109,7 @@ impl From<ServiceUrlsGrpc> for ServiceUrls { blob_service_addr: urls.blob_service_addr, directory_service_addr: urls.directory_service_addr, path_info_service_addr: urls.path_info_service_addr, - #[cfg(feature = "xp-store-composition")] + #[cfg(feature = "xp-composition-cli")] experimental_store_composition: urls.experimental_store_composition, } } @@ -121,7 +121,7 @@ impl From<ServiceUrlsMemory> for ServiceUrls { blob_service_addr: urls.blob_service_addr, directory_service_addr: urls.directory_service_addr, path_info_service_addr: urls.path_info_service_addr, - #[cfg(feature = "xp-store-composition")] + #[cfg(feature = "xp-composition-cli")] experimental_store_composition: urls.experimental_store_composition, } } @@ -132,7 +132,7 @@ pub async fn addrs_to_configs( ) -> Result<CompositionConfigs, Box<dyn std::error::Error + Send + Sync>> { let urls: ServiceUrls = urls.into(); - #[cfg(feature = "xp-store-composition")] + #[cfg(feature = "xp-composition-cli")] if let Some(conf_path) = urls.experimental_store_composition { let conf_text = tokio::fs::read_to_string(conf_path).await?; return Ok(with_registry(®, || toml::from_str(&conf_text))?); |