)]}'
{"id":"depot~9560","triplet_id":"depot~canon~I99434a2399856a44c9e6988d0b720f7a429d0ad1","project":"depot","branch":"canon","attention_set":{},"removed_from_attention_set":{"1000001":{"account":{"_account_id":1000001,"name":"tazjin","email":"tazjin@tvl.su","username":"tazjin"},"last_update":"2023-10-08 07:44:13.000000000","reason":"Change was submitted"},"1000085":{"account":{"_account_id":1000085,"name":"Connor Brewster","display_name":"cbrewster","email":"cbrewster@hey.com","username":"cbrewster"},"last_update":"2023-10-08 07:44:13.000000000","reason":"Change was submitted"},"1000036":{"account":{"_account_id":1000036,"name":"flokli","email":"flokli@flokli.de","username":"flokli"},"last_update":"2023-10-08 07:39:34.000000000","reason":"removed on reply"},"1000073":{"account":{"_account_id":1000073,"name":"raitobezarius","display_name":"Ryan Lahfa","email":"tvl@lahfa.xyz","username":"raitobezarius"},"last_update":"2023-10-08 07:44:13.000000000","reason":"Change was submitted"}},"hashtags":[],"change_id":"I99434a2399856a44c9e6988d0b720f7a429d0ad1","subject":"refactor(tvix/castore): move gRPC directorysvc tests off tonic_mock","status":"MERGED","created":"2023-10-07 09:34:15.000000000","updated":"2023-10-08 07:44:13.000000000","submitted":"2023-10-08 07:44:13.000000000","submitter":{"_account_id":1000036,"name":"flokli","email":"flokli@flokli.de","username":"flokli"},"total_comment_count":4,"unresolved_comment_count":0,"has_review_started":true,"submission_id":"9561","meta_rev_id":"48aa6d8841f6e075e8aca8a88f057d1de0aee73a","_number":9560,"virtual_id_number":9560,"owner":{"_account_id":1000036,"name":"flokli","email":"flokli@flokli.de","username":"flokli"},"actions":{},"labels":{"Code-Review":{"approved":{"_account_id":1000085,"name":"Connor Brewster","display_name":"cbrewster","email":"cbrewster@hey.com","username":"cbrewster"},"all":[{"tag":"autogenerated:gerrit:merged","value":2,"date":"2023-10-08 07:44:13.000000000","_account_id":1000085,"name":"Connor Brewster","display_name":"cbrewster","email":"cbrewster@hey.com","username":"cbrewster"},{"value":0,"_account_id":1000036,"name":"flokli","email":"flokli@flokli.de","username":"flokli"},{"value":0,"_account_id":1000014,"name":"BuildkiteCI","username":"buildkite","tags":["SERVICE_USER"]}],"values":{"-2":"This shall not be merged","-1":"I would prefer this is not merged as is"," 0":"No score","+1":"Looks good to me, but someone else must approve","+2":"Looks good to me, approved"},"description":"","default_value":0},"Verified":{"approved":{"_account_id":1000014,"name":"BuildkiteCI","username":"buildkite","tags":["SERVICE_USER"]},"all":[{"value":0,"_account_id":1000085,"name":"Connor Brewster","display_name":"cbrewster","email":"cbrewster@hey.com","username":"cbrewster"},{"value":0,"_account_id":1000036,"name":"flokli","email":"flokli@flokli.de","username":"flokli"},{"tag":"autogenerated:gerrit:merged","value":1,"date":"2023-10-08 07:44:13.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":1000014,"name":"BuildkiteCI","username":"buildkite","tags":["SERVICE_USER"]}],"values":{"-1":"Fails"," 0":"No score","+1":"Verified"},"description":"","default_value":0},"Autosubmit":{"approved":{"_account_id":1000036,"name":"flokli","email":"flokli@flokli.de","username":"flokli"},"all":[{"value":0,"_account_id":1000085,"name":"Connor Brewster","display_name":"cbrewster","email":"cbrewster@hey.com","username":"cbrewster"},{"tag":"autogenerated:gerrit:merged","value":1,"date":"2023-10-08 07:44:13.000000000","_account_id":1000036,"name":"flokli","email":"flokli@flokli.de","username":"flokli"},{"value":0,"_account_id":1000014,"name":"BuildkiteCI","username":"buildkite","tags":["SERVICE_USER"]}],"values":{" 0":"Submit manually","+1":"Submit automatically"},"description":"","default_value":0,"optional":true},"All-Comments-Resolved":{"approved":{"_account_id":1000036,"name":"flokli","email":"flokli@flokli.de","username":"flokli"},"all":[{"value":0,"_account_id":1000085,"name":"Connor Brewster","display_name":"cbrewster","email":"cbrewster@hey.com","username":"cbrewster"},{"value":0,"_account_id":1000036,"name":"flokli","email":"flokli@flokli.de","username":"flokli"},{"value":0,"_account_id":1000014,"name":"BuildkiteCI","username":"buildkite","tags":["SERVICE_USER"]}]},"Conformant-Commit-Message":{"approved":{"_account_id":1000036,"name":"flokli","email":"flokli@flokli.de","username":"flokli"},"all":[{"value":0,"_account_id":1000085,"name":"Connor Brewster","display_name":"cbrewster","email":"cbrewster@hey.com","username":"cbrewster"},{"value":0,"_account_id":1000036,"name":"flokli","email":"flokli@flokli.de","username":"flokli"},{"value":0,"_account_id":1000014,"name":"BuildkiteCI","username":"buildkite","tags":["SERVICE_USER"]}]}},"removable_reviewers":[{"_account_id":1000001,"name":"tazjin","email":"tazjin@tvl.su","username":"tazjin"},{"_account_id":1000073,"name":"raitobezarius","display_name":"Ryan Lahfa","email":"tvl@lahfa.xyz","username":"raitobezarius"}],"reviewers":{"REVIEWER":[{"_account_id":1000001,"name":"tazjin","email":"tazjin@tvl.su","username":"tazjin"},{"_account_id":1000014,"name":"BuildkiteCI","username":"buildkite","tags":["SERVICE_USER"]},{"_account_id":1000036,"name":"flokli","email":"flokli@flokli.de","username":"flokli"},{"_account_id":1000073,"name":"raitobezarius","display_name":"Ryan Lahfa","email":"tvl@lahfa.xyz","username":"raitobezarius"},{"_account_id":1000085,"name":"Connor Brewster","display_name":"cbrewster","email":"cbrewster@hey.com","username":"cbrewster"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2023-10-07 09:34:15.000000000","updated_by":{"_account_id":1000036,"name":"flokli","email":"flokli@flokli.de","username":"flokli"},"reviewer":{"_account_id":1000085,"name":"Connor Brewster","display_name":"cbrewster","email":"cbrewster@hey.com","username":"cbrewster"},"state":"REVIEWER"},{"updated":"2023-10-07 09:34:15.000000000","updated_by":{"_account_id":1000036,"name":"flokli","email":"flokli@flokli.de","username":"flokli"},"reviewer":{"_account_id":1000073,"name":"raitobezarius","display_name":"Ryan Lahfa","email":"tvl@lahfa.xyz","username":"raitobezarius"},"state":"REVIEWER"},{"updated":"2023-10-07 09:34:15.000000000","updated_by":{"_account_id":1000036,"name":"flokli","email":"flokli@flokli.de","username":"flokli"},"reviewer":{"_account_id":1000001,"name":"tazjin","email":"tazjin@tvl.su","username":"tazjin"},"state":"REVIEWER"},{"updated":"2023-10-07 09:34:19.000000000","updated_by":{"_account_id":1000014,"name":"BuildkiteCI","username":"buildkite","tags":["SERVICE_USER"]},"reviewer":{"_account_id":1000014,"name":"BuildkiteCI","username":"buildkite","tags":["SERVICE_USER"]},"state":"CC"},{"updated":"2023-10-07 09:38:26.000000000","updated_by":{"_account_id":1000014,"name":"BuildkiteCI","username":"buildkite","tags":["SERVICE_USER"]},"reviewer":{"_account_id":1000014,"name":"BuildkiteCI","username":"buildkite","tags":["SERVICE_USER"]},"state":"REVIEWER"}],"messages":[{"id":"945ddbc578af1363206fe1fffe33cc4e8cc68631","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000036,"name":"flokli","email":"flokli@flokli.de","username":"flokli"},"date":"2023-10-07 09:34:15.000000000","message":"Uploaded patch set 1: Autosubmit+1.","accounts_in_message":[],"_revision_number":1},{"id":"6898b9a84552aefea8bbe8359b5ab566765c823f","tag":"autogenerated:gerrit:code-owners:addReviewer","author":{"_account_id":1000036,"name":"flokli","email":"flokli@flokli.de","username":"flokli"},"date":"2023-10-07 09:34:15.000000000","message":"\u003cGERRIT_ACCOUNT_1000001\u003e, who was added as reviewer owns the following files:\n* tvix/castore/src/proto/tests/grpc_directoryservice.rs\n","accounts_in_message":[{"_account_id":1000001,"name":"tazjin","email":"tazjin@tvl.su","username":"tazjin"}],"_revision_number":1},{"id":"9accd9ea4505a4d597615646f1356fce97a8bd3a","tag":"autogenerated:buildkite~trigger","author":{"_account_id":1000014,"name":"BuildkiteCI","username":"buildkite","tags":["SERVICE_USER"]},"date":"2023-10-07 09:34:19.000000000","message":"Patch Set 1:\n\nStarted build for patchset #1 on: https://buildkite.com/tvl/depot/builds/27007","accounts_in_message":[],"_revision_number":1},{"id":"194defe14e12d40946229a40dc70ced6f241abb6","tag":"autogenerated:buildkite~result","author":{"_account_id":1000014,"name":"BuildkiteCI","username":"buildkite","tags":["SERVICE_USER"]},"date":"2023-10-07 09:38:26.000000000","message":"Patch Set 1: Verified+1\n\nBuild of patchset 1 passed: https://buildkite.com/tvl/depot/builds/27007","accounts_in_message":[],"_revision_number":1},{"id":"9a0fe4c32b8583a6846240bb41aeddc26aa7caa8","author":{"_account_id":1000085,"name":"Connor Brewster","display_name":"cbrewster","email":"cbrewster@hey.com","username":"cbrewster"},"date":"2023-10-07 22:08:14.000000000","message":"Patch Set 1: Code-Review+2\n\n(2 comments)","accounts_in_message":[],"_revision_number":1},{"id":"c65c69ef0eaa24c22ac24b790e3c979497cdb1ec","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000036,"name":"flokli","email":"flokli@flokli.de","username":"flokli"},"date":"2023-10-08 07:39:34.000000000","message":"Uploaded patch set 2.\n\nCopied Votes:\n* Autosubmit+1 (copy condition: \"changekind:NO_CHANGE OR is:ANY\")\n* Code-Review+2 (copy condition: \"((is:ANY AND has:unchanged-files) OR is:MIN) OR changekind:NO_CHANGE\")\n\nOutdated Votes:\n* Verified+1 (copy condition: \"(is:ANY AND changekind:NO_CODE_CHANGE) OR changekind:NO_CHANGE\")\n","accounts_in_message":[],"_revision_number":2},{"id":"16f0b809ad882482dd5b48ae203e50be964270cc","author":{"_account_id":1000036,"name":"flokli","email":"flokli@flokli.de","username":"flokli"},"date":"2023-10-08 07:39:34.000000000","message":"Patch Set 2:\n\n(2 comments)","accounts_in_message":[],"_revision_number":2},{"id":"8c4faa7adf7afcd0aab7124e6c374aa3d6854e33","tag":"autogenerated:buildkite~trigger","author":{"_account_id":1000014,"name":"BuildkiteCI","username":"buildkite","tags":["SERVICE_USER"]},"date":"2023-10-08 07:39:35.000000000","message":"Patch Set 2:\n\nStarted build for patchset #2 on: https://buildkite.com/tvl/depot/builds/27013","accounts_in_message":[],"_revision_number":2},{"id":"53e7b7659df04dcbe1e1753ad5ca9d8be7215772","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000036,"name":"flokli","email":"flokli@flokli.de","username":"flokli"},"date":"2023-10-08 07:40:36.000000000","message":"Uploaded patch set 3: Commit message was updated.\n\nCopied Votes:\n* Autosubmit+1 (copy condition: \"changekind:NO_CHANGE OR is:ANY\")\n* Code-Review+2 (copy condition: \"((is:ANY AND has:unchanged-files) OR is:MIN) OR changekind:NO_CHANGE\")\n","accounts_in_message":[],"_revision_number":3},{"id":"88b756df291cb7091bffd7b9ad557a4054e110be","tag":"autogenerated:buildkite~result","author":{"_account_id":1000014,"name":"BuildkiteCI","username":"buildkite","tags":["SERVICE_USER"]},"date":"2023-10-08 07:43:49.000000000","message":"Patch Set 2: Verified+1\n\nBuild of patchset 2 passed: https://buildkite.com/tvl/depot/builds/27013","accounts_in_message":[],"_revision_number":2},{"id":"48aa6d8841f6e075e8aca8a88f057d1de0aee73a","tag":"autogenerated:gerrit:merged","author":{"_account_id":1000036,"name":"flokli","email":"flokli@flokli.de","username":"flokli"},"date":"2023-10-08 07:44:13.000000000","message":"Change has been successfully rebased and submitted as 3b620e6d0c19136241effa48b6fe637c577fc564\n\n1 is the latest approved patch-set.\nThe change was submitted with unreviewed changes in the following files:\n\n```\nThe name of the file: tvix/castore/src/proto/tests/grpc_directoryservice.rs\nInsertions: 16, Deletions: 23.\n\n@@ -4,7 +4,6 @@\n use crate::proto::GetDirectoryRequest;\n use crate::proto::{Directory, DirectoryNode, SymlinkNode};\n use crate::utils::gen_directorysvc_grpc_client;\n-use async_stream::stream;\n use tempfile::TempDir;\n use tokio_stream::StreamExt;\n use tonic::transport::Channel;\n@@ -73,9 +72,7 @@\n     // send directory A.\n     let put_resp \u003d {\n         grpc_client\n-            .put(stream! {\n-                yield DIRECTORY_A.clone();\n-            })\n+            .put(tokio_stream::once(DIRECTORY_A.clone()))\n             .await\n             .expect(\"must succeed\")\n             .into_inner()\n@@ -107,9 +104,7 @@\n     // sending \"b\" (which refers to \"a\") without sending \"a\" first should fail.\n     let put_resp \u003d {\n         grpc_client\n-            .put(stream! {\n-                yield DIRECTORY_B.clone();\n-            })\n+            .put(tokio_stream::once(DIRECTORY_B.clone()))\n             .await\n             .expect_err(\"must fail\")\n     };\n@@ -119,10 +114,10 @@\n     // sending \"a\", then \"b\" should succeed, and the response should contain the digest of b.\n     let put_resp \u003d {\n         grpc_client\n-            .put(stream! {\n-                yield DIRECTORY_A.clone();\n-                yield DIRECTORY_B.clone();\n-            })\n+            .put(tokio_stream::iter(vec![\n+                DIRECTORY_A.clone(),\n+                DIRECTORY_B.clone(),\n+            ]))\n             .await\n             .expect(\"must succeed\")\n             .into_inner()\n@@ -169,11 +164,11 @@\n     // Pretend we\u0027re a dumb client sending A twice.\n     let put_resp \u003d {\n         grpc_client\n-            .put(stream! {\n-                yield DIRECTORY_A.clone();\n-                yield DIRECTORY_A.clone();\n-                yield DIRECTORY_C.clone();\n-            })\n+            .put(tokio_stream::iter(vec![\n+                DIRECTORY_A.clone(),\n+                DIRECTORY_A.clone(),\n+                DIRECTORY_C.clone(),\n+            ]))\n             .await\n             .expect(\"must succeed\")\n     };\n@@ -217,9 +212,7 @@\n     // send it over, it must fail\n     let put_resp \u003d {\n         grpc_client\n-            .put(stream! {\n-                yield broken_directory;\n-            })\n+            .put(tokio_stream::once(broken_directory))\n             .await\n             .expect_err(\"must fail\")\n     };\n@@ -251,10 +244,10 @@\n     // now upload both (first A, then the broken parent). This must fail.\n     let put_resp \u003d {\n         grpc_client\n-            .put(stream! {\n-                yield DIRECTORY_A.clone();\n-                yield broken_parent_directory;\n-            })\n+            .put(tokio_stream::iter(vec![\n+                DIRECTORY_A.clone(),\n+                broken_parent_directory,\n+            ]))\n             .await\n             .expect_err(\"must fail\")\n     };\n```\n","accounts_in_message":[],"_revision_number":4}],"current_revision_number":4,"current_revision":"3b620e6d0c19136241effa48b6fe637c577fc564","revisions":{"368683626481e2683ea37f22818ec2f5a0e452fb":{"kind":"REWORK","_number":1,"created":"2023-10-07 09:34:15.000000000","uploader":{"_account_id":1000036,"name":"flokli","email":"flokli@flokli.de","username":"flokli"},"ref":"refs/changes/60/9560/1","fetch":{"anonymous http":{"url":"https://cl.tvl.fyi/depot","ref":"refs/changes/60/9560/1","commands":{"Checkout":"git fetch https://cl.tvl.fyi/depot refs/changes/60/9560/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://cl.tvl.fyi/depot refs/changes/60/9560/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://cl.tvl.fyi/depot refs/changes/60/9560/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://cl.tvl.fyi/depot refs/changes/60/9560/1"}}},"commit":{"parents":[{"commit":"9441adc151e167d861f812bbced54684c44713a5","subject":"refactor(tvix/castore/directorysvc): factor out gRPC client generation","web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003d9441adc151e167d861f812bbced54684c44713a5"}]}],"author":{"name":"Florian Klink","email":"flokli@flokli.de","date":"2023-10-07 08:26:36.000000000","tz":120},"committer":{"name":"Florian Klink","email":"flokli@flokli.de","date":"2023-10-07 09:33:31.000000000","tz":120},"subject":"refactor(tvix/castore): migrate gRPC directorysvc tests off tonic_mock","message":"refactor(tvix/castore): migrate gRPC directorysvc tests off tonic_mock\n\nThe tests were using the gRPC Service/Server interface, not the gRPC\nclients.\n\nUse our new gen_directorysvc_grpc_client() function to spin up a server\nin a separate thread, and test via that client, rather than *just* the\nserver implementation.\n\nThis is more correct, because we\u0027re now really exercising the gRPC\nstack, and some of the stream implementations are also only implemented\non the client.\n\nChange-Id: I99434a2399856a44c9e6988d0b720f7a429d0ad1\n","web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003d368683626481e2683ea37f22818ec2f5a0e452fb"}],"resolve_conflicts_web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003d368683626481e2683ea37f22818ec2f5a0e452fb"}]},"parents_data":[{"branch_name":"refs/heads/canon","commit_id":"9441adc151e167d861f812bbced54684c44713a5","is_merged_in_target_branch":false,"change_id":"Icae6f6dd2d4b2fa86fd2b836ddd7a4ca0e0354e7","change_number":9559,"patch_set_number":1,"change_status":"MERGED"}],"branch":"refs/heads/canon"},"1a6838ee777d780d48bab3739540c74d83c7c8a9":{"kind":"REWORK","_number":2,"created":"2023-10-08 07:39:34.000000000","uploader":{"_account_id":1000036,"name":"flokli","email":"flokli@flokli.de","username":"flokli"},"ref":"refs/changes/60/9560/2","fetch":{"anonymous http":{"url":"https://cl.tvl.fyi/depot","ref":"refs/changes/60/9560/2","commands":{"Checkout":"git fetch https://cl.tvl.fyi/depot refs/changes/60/9560/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://cl.tvl.fyi/depot refs/changes/60/9560/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://cl.tvl.fyi/depot refs/changes/60/9560/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://cl.tvl.fyi/depot refs/changes/60/9560/2"}}},"commit":{"parents":[{"commit":"a77914db7347ddfe8d3d7bc9614f42bc4cee8436","subject":"refactor(tvix/castore/directorysvc): factor out gRPC client gen","web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003da77914db7347ddfe8d3d7bc9614f42bc4cee8436"}]}],"author":{"name":"Florian Klink","email":"flokli@flokli.de","date":"2023-10-07 08:26:36.000000000","tz":120},"committer":{"name":"Florian Klink","email":"flokli@flokli.de","date":"2023-10-08 07:38:55.000000000","tz":120},"subject":"refactor(tvix/castore): migrate gRPC directorysvc tests off tonic_mock","message":"refactor(tvix/castore): migrate gRPC directorysvc tests off tonic_mock\n\nThe tests were using the gRPC Service/Server interface, not the gRPC\nclients.\n\nUse our new gen_directorysvc_grpc_client() function to spin up a server\nin a separate thread, and test via that client, rather than *just* the\nserver implementation.\n\nThis is more correct, because we\u0027re now really exercising the gRPC\nstack, and some of the stream implementations are also only implemented\non the client.\n\nChange-Id: I99434a2399856a44c9e6988d0b720f7a429d0ad1\n","web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003d1a6838ee777d780d48bab3739540c74d83c7c8a9"}],"resolve_conflicts_web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003d1a6838ee777d780d48bab3739540c74d83c7c8a9"}]},"parents_data":[{"branch_name":"refs/heads/canon","commit_id":"a77914db7347ddfe8d3d7bc9614f42bc4cee8436","is_merged_in_target_branch":true,"change_id":"Icae6f6dd2d4b2fa86fd2b836ddd7a4ca0e0354e7","change_number":9559,"patch_set_number":3,"change_status":"MERGED"}],"branch":"refs/heads/canon"},"215921ece0dc85c4cdb09e50865cb24b8ccbd1a1":{"kind":"NO_CODE_CHANGE","_number":3,"created":"2023-10-08 07:40:36.000000000","uploader":{"_account_id":1000036,"name":"flokli","email":"flokli@flokli.de","username":"flokli"},"ref":"refs/changes/60/9560/3","fetch":{"anonymous http":{"url":"https://cl.tvl.fyi/depot","ref":"refs/changes/60/9560/3","commands":{"Checkout":"git fetch https://cl.tvl.fyi/depot refs/changes/60/9560/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://cl.tvl.fyi/depot refs/changes/60/9560/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://cl.tvl.fyi/depot refs/changes/60/9560/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://cl.tvl.fyi/depot refs/changes/60/9560/3"}}},"commit":{"parents":[{"commit":"a77914db7347ddfe8d3d7bc9614f42bc4cee8436","subject":"refactor(tvix/castore/directorysvc): factor out gRPC client gen","web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003da77914db7347ddfe8d3d7bc9614f42bc4cee8436"}]}],"author":{"name":"Florian Klink","email":"flokli@flokli.de","date":"2023-10-07 08:26:36.000000000","tz":120},"committer":{"name":"Florian Klink","email":"flokli@flokli.de","date":"2023-10-08 07:40:05.000000000","tz":120},"subject":"refactor(tvix/castore): move gRPC directorysvc tests off tonic_mock","message":"refactor(tvix/castore): move gRPC directorysvc tests off tonic_mock\n\nThe tests were using the gRPC Service/Server interface, not the gRPC\nclients.\n\nUse our new gen_directorysvc_grpc_client() function to spin up a server\nin a separate thread, and test via that client, rather than *just* the\nserver implementation.\n\nThis is more correct, because we\u0027re now really exercising the gRPC\nstack, and some of the stream implementations are also only implemented\non the client.\n\nChange-Id: I99434a2399856a44c9e6988d0b720f7a429d0ad1\n","web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003d215921ece0dc85c4cdb09e50865cb24b8ccbd1a1"}],"resolve_conflicts_web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003d215921ece0dc85c4cdb09e50865cb24b8ccbd1a1"}]},"parents_data":[{"branch_name":"refs/heads/canon","commit_id":"a77914db7347ddfe8d3d7bc9614f42bc4cee8436","is_merged_in_target_branch":true,"change_id":"Icae6f6dd2d4b2fa86fd2b836ddd7a4ca0e0354e7","change_number":9559,"patch_set_number":3,"change_status":"MERGED"}],"branch":"refs/heads/canon"},"3b620e6d0c19136241effa48b6fe637c577fc564":{"kind":"NO_CODE_CHANGE","_number":4,"created":"2023-10-08 07:44:13.000000000","uploader":{"_account_id":1000036,"name":"flokli","email":"flokli@flokli.de","username":"flokli"},"ref":"refs/changes/60/9560/4","fetch":{"anonymous http":{"url":"https://cl.tvl.fyi/depot","ref":"refs/changes/60/9560/4","commands":{"Checkout":"git fetch https://cl.tvl.fyi/depot refs/changes/60/9560/4 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://cl.tvl.fyi/depot refs/changes/60/9560/4 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://cl.tvl.fyi/depot refs/changes/60/9560/4 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://cl.tvl.fyi/depot refs/changes/60/9560/4"}}},"commit":{"parents":[{"commit":"a77914db7347ddfe8d3d7bc9614f42bc4cee8436","subject":"refactor(tvix/castore/directorysvc): factor out gRPC client gen","web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003da77914db7347ddfe8d3d7bc9614f42bc4cee8436"}]}],"author":{"name":"Florian Klink","email":"flokli@flokli.de","date":"2023-10-07 08:26:36.000000000","tz":120},"committer":{"name":"flokli","email":"flokli@flokli.de","date":"2023-10-08 07:44:13.000000000","tz":0},"subject":"refactor(tvix/castore): move gRPC directorysvc tests off tonic_mock","message":"refactor(tvix/castore): move gRPC directorysvc tests off tonic_mock\n\nThe tests were using the gRPC Service/Server interface, not the gRPC\nclients.\n\nUse our new gen_directorysvc_grpc_client() function to spin up a server\nin a separate thread, and test via that client, rather than *just* the\nserver implementation.\n\nThis is more correct, because we\u0027re now really exercising the gRPC\nstack, and some of the stream implementations are also only implemented\non the client.\n\nChange-Id: I99434a2399856a44c9e6988d0b720f7a429d0ad1\nReviewed-on: https://cl.tvl.fyi/c/depot/+/9560\nReviewed-by: Connor Brewster \u003ccbrewster@hey.com\u003e\nTested-by: BuildkiteCI\nAutosubmit: flokli \u003cflokli@flokli.de\u003e\n","web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003d3b620e6d0c19136241effa48b6fe637c577fc564"}],"resolve_conflicts_web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003d3b620e6d0c19136241effa48b6fe637c577fc564"}]},"parents_data":[{"branch_name":"refs/heads/canon","commit_id":"a77914db7347ddfe8d3d7bc9614f42bc4cee8436","is_merged_in_target_branch":true,"change_id":"Icae6f6dd2d4b2fa86fd2b836ddd7a4ca0e0354e7","change_number":9559,"patch_set_number":3,"change_status":"MERGED"}],"branch":"refs/heads/canon"}},"requirements":[],"submit_records":[{"rule_name":"gerrit~PrologRule","status":"CLOSED","labels":[{"label":"Autosubmit","status":"MAY"},{"label":"Conformant-Commit-Message","status":"OK","applied_by":{"_account_id":1000036,"name":"flokli","email":"flokli@flokli.de","username":"flokli"}},{"label":"All-Comments-Resolved","status":"OK","applied_by":{"_account_id":1000036,"name":"flokli","email":"flokli@flokli.de","username":"flokli"}},{"label":"Verified","status":"OK","applied_by":{"_account_id":1000014,"name":"BuildkiteCI","username":"buildkite","tags":["SERVICE_USER"]}},{"label":"Code-Review","status":"OK","applied_by":{"_account_id":1000085,"name":"Connor Brewster","display_name":"cbrewster","email":"cbrewster@hey.com","username":"cbrewster"}}]},{"rule_name":"Code-Owners","status":"CLOSED"}],"submit_requirements":[{"name":"All-Comments-Resolved","status":"SATISFIED","is_legacy":true,"submittability_expression_result":{"expression":"label:All-Comments-Resolved\u003dgerrit~PrologRule","fulfilled":true,"status":"PASS","passing_atoms":["label:All-Comments-Resolved\u003dgerrit~PrologRule"],"failing_atoms":[]}},{"name":"Verified","status":"SATISFIED","is_legacy":true,"submittability_expression_result":{"expression":"label:Verified\u003dgerrit~PrologRule","fulfilled":true,"status":"PASS","passing_atoms":["label:Verified\u003dgerrit~PrologRule"],"failing_atoms":[]}},{"name":"Code-Owners","status":"SATISFIED","is_legacy":true,"submittability_expression_result":{"expression":"rule:Code-Owners","fulfilled":true,"status":"PASS","passing_atoms":["Code-Owners"],"failing_atoms":[]}},{"name":"Conformant-Commit-Message","status":"SATISFIED","is_legacy":true,"submittability_expression_result":{"expression":"label:Conformant-Commit-Message\u003dgerrit~PrologRule","fulfilled":true,"status":"PASS","passing_atoms":["label:Conformant-Commit-Message\u003dgerrit~PrologRule"],"failing_atoms":[]}},{"name":"Code-Review","status":"SATISFIED","is_legacy":true,"submittability_expression_result":{"expression":"label:Code-Review\u003dgerrit~PrologRule","fulfilled":true,"status":"PASS","passing_atoms":["label:Code-Review\u003dgerrit~PrologRule"],"failing_atoms":[]}}]}
