)]}'
{"id":"depot~10043","triplet_id":"depot~canon~Ie831b98d195f0f76ce75ec0528090f2e1306b9c2","project":"depot","branch":"canon","attention_set":{},"removed_from_attention_set":{"1000066":{"account":{"_account_id":1000066,"name":"Adam Joseph","display_name":"amjoseph","email":"adam@westernsemico.com","username":"amjoseph"},"last_update":"2023-11-16 21:07:55.000000000","reason":"Change was abandoned"},"1000085":{"account":{"_account_id":1000085,"name":"Connor Brewster","display_name":"cbrewster","email":"cbrewster@hey.com","username":"cbrewster"},"last_update":"2023-11-16 21:07:55.000000000","reason":"Change was abandoned"},"1000005":{"account":{"_account_id":1000005,"name":"edef","email":"edef@edef.eu","username":"edef"},"last_update":"2023-11-16 21:07:55.000000000","reason":"Change was abandoned"},"1000036":{"account":{"_account_id":1000036,"name":"flokli","email":"flokli@flokli.de","username":"flokli"},"last_update":"2023-11-16 21:07:52.000000000","reason":"\u003cGERRIT_ACCOUNT_1000036\u003e replied on the change","reason_account":{"_account_id":1000036,"name":"flokli","email":"flokli@flokli.de","username":"flokli"}},"1000073":{"account":{"_account_id":1000073,"name":"raitobezarius","display_name":"Ryan Lahfa","email":"tvl@lahfa.xyz","username":"raitobezarius"},"last_update":"2023-11-16 21:07:55.000000000","reason":"Change was abandoned"}},"hashtags":[],"change_id":"Ie831b98d195f0f76ce75ec0528090f2e1306b9c2","subject":"feat(tvix/castore/tonic): add support for `grpc+inetd:` scheme","status":"ABANDONED","created":"2023-11-15 17:09:23.000000000","updated":"2023-11-16 21:07:55.000000000","total_comment_count":4,"unresolved_comment_count":2,"work_in_progress":true,"has_review_started":false,"meta_rev_id":"288087f1f33afe2fc5748792ec15eb493d59dec9","_number":10043,"virtual_id_number":10043,"owner":{"_account_id":1000036,"name":"flokli","email":"flokli@flokli.de","username":"flokli"},"actions":{},"labels":{"Code-Review":{"disliked":{"_account_id":1000005,"name":"edef","email":"edef@edef.eu","username":"edef"},"all":[{"value":-1,"date":"2023-11-15 22:00:27.000000000","permitted_voting_range":{"min":-2,"max":2},"_account_id":1000005,"name":"edef","email":"edef@edef.eu","username":"edef"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":1000085,"name":"Connor Brewster","display_name":"cbrewster","email":"cbrewster@hey.com","username":"cbrewster"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":1000073,"name":"raitobezarius","display_name":"Ryan Lahfa","email":"tvl@lahfa.xyz","username":"raitobezarius"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_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":"","value":-1,"default_value":0},"Verified":{"approved":{"_account_id":1000014,"name":"BuildkiteCI","username":"buildkite","tags":["SERVICE_USER"]},"all":[{"_account_id":1000005,"name":"edef","email":"edef@edef.eu","username":"edef"},{"_account_id":1000085,"name":"Connor Brewster","display_name":"cbrewster","email":"cbrewster@hey.com","username":"cbrewster"},{"_account_id":1000073,"name":"raitobezarius","display_name":"Ryan Lahfa","email":"tvl@lahfa.xyz","username":"raitobezarius"},{"tag":"autogenerated:buildkite~result","value":1,"date":"2023-11-15 22:03:44.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":{"all":[{"_account_id":1000005,"name":"edef","email":"edef@edef.eu","username":"edef"},{"_account_id":1000085,"name":"Connor Brewster","display_name":"cbrewster","email":"cbrewster@hey.com","username":"cbrewster"},{"_account_id":1000073,"name":"raitobezarius","display_name":"Ryan Lahfa","email":"tvl@lahfa.xyz","username":"raitobezarius"},{"_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":{},"Conformant-Commit-Message":{"approved":{"_account_id":1000036,"name":"flokli","email":"flokli@flokli.de","username":"flokli"}}},"removable_reviewers":[],"reviewers":{"CC":[{"_account_id":1000066,"name":"Adam Joseph","display_name":"amjoseph","email":"adam@westernsemico.com","username":"amjoseph"}],"REVIEWER":[{"_account_id":1000005,"name":"edef","email":"edef@edef.eu","username":"edef"},{"_account_id":1000014,"name":"BuildkiteCI","username":"buildkite","tags":["SERVICE_USER"]},{"_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":{"CC":[{"_account_id":1000066,"name":"Adam Joseph","display_name":"amjoseph","email":"adam@westernsemico.com","username":"amjoseph"}],"REVIEWER":[{"_account_id":1000005,"name":"edef","email":"edef@edef.eu","username":"edef"},{"_account_id":1000014,"name":"BuildkiteCI","username":"buildkite","tags":["SERVICE_USER"]},{"_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"}]},"reviewer_updates":[{"updated":"2023-11-15 17:09:23.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-11-15 17:09:23.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-11-15 17:09:23.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-11-15 17:14:30.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"},{"updated":"2023-11-15 21:53:51.000000000","updated_by":{"_account_id":1000005,"name":"edef","email":"edef@edef.eu","username":"edef"},"reviewer":{"_account_id":1000005,"name":"edef","email":"edef@edef.eu","username":"edef"},"state":"REVIEWER"},{"updated":"2023-11-15 23:11:54.000000000","updated_by":{"_account_id":1000066,"name":"Adam Joseph","display_name":"amjoseph","email":"adam@westernsemico.com","username":"amjoseph"},"reviewer":{"_account_id":1000066,"name":"Adam Joseph","display_name":"amjoseph","email":"adam@westernsemico.com","username":"amjoseph"},"state":"CC"}],"messages":[{"id":"9d6cff1cdc5bfa08bd1d6681899fd266413501bc","tag":"autogenerated:gerrit:newWipPatchSet","author":{"_account_id":1000036,"name":"flokli","email":"flokli@flokli.de","username":"flokli"},"date":"2023-11-15 17:09:23.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"ec3ac45c180511d02472117d899d15e2fbf96612","tag":"autogenerated:buildkite~trigger","author":{"_account_id":1000014,"name":"BuildkiteCI","username":"buildkite","tags":["SERVICE_USER"]},"date":"2023-11-15 17:09:23.000000000","message":"Patch Set 1:\n\nStarted build for patchset #1 on: https://buildkite.com/tvl/depot/builds/28202","accounts_in_message":[],"_revision_number":1},{"id":"a4618dcb1c622e8c665c427c13738ae1cda3b9e0","tag":"autogenerated:buildkite~result","author":{"_account_id":1000014,"name":"BuildkiteCI","username":"buildkite","tags":["SERVICE_USER"]},"date":"2023-11-15 17:14:30.000000000","message":"Patch Set 1: Verified-1\n\nBuild of patchset 1 failed: https://buildkite.com/tvl/depot/builds/28202","accounts_in_message":[],"_revision_number":1},{"id":"382ba73e969ba1dc25554468071381cbc9be7c7f","tag":"autogenerated:gerrit:newWipPatchSet","author":{"_account_id":1000036,"name":"flokli","email":"flokli@flokli.de","username":"flokli"},"date":"2023-11-15 18:07:00.000000000","message":"Uploaded patch set 2.\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":"99aa7e9c3ad6ac6d46a32ca690f1c65a5d0eef3c","tag":"autogenerated:buildkite~trigger","author":{"_account_id":1000014,"name":"BuildkiteCI","username":"buildkite","tags":["SERVICE_USER"]},"date":"2023-11-15 18:07:02.000000000","message":"Patch Set 2:\n\nStarted build for patchset #2 on: https://buildkite.com/tvl/depot/builds/28205","accounts_in_message":[],"_revision_number":2},{"id":"106507c3ab4e246e4f7dd67f7dff5e996fb75d10","tag":"autogenerated:buildkite~result","author":{"_account_id":1000014,"name":"BuildkiteCI","username":"buildkite","tags":["SERVICE_USER"]},"date":"2023-11-15 18:12:22.000000000","message":"Patch Set 2: Verified+1\n\nBuild of patchset 2 passed: https://buildkite.com/tvl/depot/builds/28205","accounts_in_message":[],"_revision_number":2},{"id":"6a061cc000c795abb7415d1fd4a547c8401e92f7","tag":"autogenerated:gerrit:newWipPatchSet","author":{"_account_id":1000036,"name":"flokli","email":"flokli@flokli.de","username":"flokli"},"date":"2023-11-15 21:37:51.000000000","message":"Uploaded patch set 3.\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":3},{"id":"3ad05788a97e847ff8184cceede120be94de985e","tag":"autogenerated:buildkite~trigger","author":{"_account_id":1000014,"name":"BuildkiteCI","username":"buildkite","tags":["SERVICE_USER"]},"date":"2023-11-15 21:37:54.000000000","message":"Patch Set 3:\n\nStarted build for patchset #3 on: https://buildkite.com/tvl/depot/builds/28208","accounts_in_message":[],"_revision_number":3},{"id":"4b77df37dc1b9253ca364bfbe1fdb1718894b112","tag":"autogenerated:buildkite~result","author":{"_account_id":1000014,"name":"BuildkiteCI","username":"buildkite","tags":["SERVICE_USER"]},"date":"2023-11-15 21:43:16.000000000","message":"Patch Set 3: Verified+1\n\nBuild of patchset 3 passed: https://buildkite.com/tvl/depot/builds/28208","accounts_in_message":[],"_revision_number":3},{"id":"16057375e98eacea4349362768e7ef5dc97a2402","tag":"autogenerated:gerrit:newWipPatchSet","author":{"_account_id":1000036,"name":"flokli","email":"flokli@flokli.de","username":"flokli"},"date":"2023-11-15 21:48:19.000000000","message":"Uploaded patch set 4: New patch set was added with same tree, parent tree, and commit message as Patch Set 3.\n\nCopied Votes:\n* Verified+1 (copy condition: \"(**is:ANY** AND **changekind:NO_CODE_CHANGE**) OR **changekind:NO_CHANGE**\")\n","accounts_in_message":[],"_revision_number":4},{"id":"a0715ea1251e75fc664792d953e4bee1d197772c","tag":"autogenerated:gerrit:newWipPatchSet","author":{"_account_id":1000036,"name":"flokli","email":"flokli@flokli.de","username":"flokli"},"date":"2023-11-15 21:51:10.000000000","message":"Uploaded patch set 5: New patch set was added with same tree, parent tree, and commit message as Patch Set 4.\n\nCopied Votes:\n* Verified+1 (copy condition: \"(**is:ANY** AND **changekind:NO_CODE_CHANGE**) OR **changekind:NO_CHANGE**\")\n","accounts_in_message":[],"_revision_number":5},{"id":"43022d9e50ab3cd936230d4b8c7d4c4a6f31d4b0","author":{"_account_id":1000005,"name":"edef","email":"edef@edef.eu","username":"edef"},"date":"2023-11-15 21:53:51.000000000","message":"Patch Set 5: Code-Review-1\n\n(1 comment)","accounts_in_message":[],"_revision_number":5},{"id":"767f7bc4c499a7d5c71c8272bd2bb0611a25bf50","tag":"autogenerated:gerrit:newWipPatchSet","author":{"_account_id":1000036,"name":"flokli","email":"flokli@flokli.de","username":"flokli"},"date":"2023-11-15 22:00:27.000000000","message":"Uploaded patch set 6.\n\nCopied Votes:\n* Code-Review-1 (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":6},{"id":"430667b0e857d5e43294928e7aca35c002f7c2da","tag":"autogenerated:buildkite~trigger","author":{"_account_id":1000014,"name":"BuildkiteCI","username":"buildkite","tags":["SERVICE_USER"]},"date":"2023-11-15 22:00:30.000000000","message":"Patch Set 6:\n\nStarted build for patchset #6 on: https://buildkite.com/tvl/depot/builds/28214","accounts_in_message":[],"_revision_number":6},{"id":"bb767209f46829ccf6e550b96997986b7e429956","tag":"autogenerated:buildkite~result","author":{"_account_id":1000014,"name":"BuildkiteCI","username":"buildkite","tags":["SERVICE_USER"]},"date":"2023-11-15 22:03:44.000000000","message":"Patch Set 6: Verified+1\n\nBuild of patchset 6 passed: https://buildkite.com/tvl/depot/builds/28214","accounts_in_message":[],"_revision_number":6},{"id":"70cf54d499c1ac66698e695332577916dc422500","author":{"_account_id":1000066,"name":"Adam Joseph","display_name":"amjoseph","email":"adam@westernsemico.com","username":"amjoseph"},"date":"2023-11-15 23:11:54.000000000","message":"Patch Set 6:\n\n(2 comments)","accounts_in_message":[],"_revision_number":6},{"id":"9b74eefd584d8a4d3c94ac3b1964a3a4db4fbcce","author":{"_account_id":1000036,"name":"flokli","email":"flokli@flokli.de","username":"flokli"},"date":"2023-11-16 21:07:52.000000000","message":"Patch Set 6:\n\n(1 comment)","accounts_in_message":[],"_revision_number":6},{"id":"288087f1f33afe2fc5748792ec15eb493d59dec9","tag":"autogenerated:gerrit:abandon","author":{"_account_id":1000036,"name":"flokli","email":"flokli@flokli.de","username":"flokli"},"date":"2023-11-16 21:07:55.000000000","message":"Abandoned","accounts_in_message":[],"_revision_number":6}],"current_revision_number":6,"current_revision":"3245dc56a7badde431caec04a522f6e00ff1f64d","revisions":{"d1f1eb5b6efed3a82f364651fd5aa7cdb3e9aa30":{"kind":"REWORK","_number":1,"created":"2023-11-15 17:09:23.000000000","uploader":{"_account_id":1000036,"name":"flokli","email":"flokli@flokli.de","username":"flokli"},"ref":"refs/changes/43/10043/1","fetch":{"anonymous http":{"url":"https://cl.tvl.fyi/depot","ref":"refs/changes/43/10043/1","commands":{"Checkout":"git fetch https://cl.tvl.fyi/depot refs/changes/43/10043/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://cl.tvl.fyi/depot refs/changes/43/10043/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://cl.tvl.fyi/depot refs/changes/43/10043/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://cl.tvl.fyi/depot refs/changes/43/10043/1"}}},"commit":{"parents":[{"commit":"fc1fc00b0125a749d47a9ed3e70df11311c6136e","subject":"refactor(tvix/castore/tonic): use match in channel_from_url","web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003dfc1fc00b0125a749d47a9ed3e70df11311c6136e"}]}],"author":{"name":"Florian Klink","email":"flokli@flokli.de","date":"2023-11-15 16:49:16.000000000","tz":120},"committer":{"name":"Florian Klink","email":"flokli@flokli.de","date":"2023-11-15 16:51:48.000000000","tz":120},"subject":"feat(tvix/castore/tonic): add support for `grpc+inetd:` scheme","message":"feat(tvix/castore/tonic): add support for `grpc+inetd:` scheme\n\nPart of b/308. This allows plugging in external store backends without\nrequiring them to already listen on a tcp port or unix socket, allowing\nto \"spin up\" the process on demand.\n\nIn fact, the process isn\u0027t even executed at all in case no request to\nit is made, similar to how the connection is only established on the\nfirst request (change-able by setting `wait-connect` parameter to `1`).\n\nSome calling conventions still need to be worked out:\n - Should there be a way to configure command arguments to pass to the\n   binary from the URL?\n - Should a magic env var be set to enable the mode?\n - Do env vars from the parent process get propagated?\n\nThis can be tested as following:\n\n```\n❯ cargo build --profile\u003drelease-with-debug\n   Compiling tvix-castore v0.1.0 (/home/flokli/dev/nixos/code.tvl.fyi/tvix/castore)\n   Compiling tvix-store v0.1.0 (/home/flokli/dev/nixos/code.tvl.fyi/tvix/store)\n   Compiling tvix-glue v0.1.0 (/home/flokli/dev/nixos/code.tvl.fyi/tvix/glue)\n   Compiling tvix-cli v0.1.0 (/home/flokli/dev/nixos/code.tvl.fyi/tvix/cli)\n    Finished release-with-debug [optimized + debuginfo] target(s) in 43.29s\n❯ BLOB_SERVICE_ADDR\u003dmemory:// \\\n  DIRECTORY_SERVICE_ADDR\u003dmemory:// \\\n  PATH_INFO_SERVICE_ADDR\u003dgrpc+inetd:target/release-with-debug/tvix-store \\\n  target/release-with-debug/tvix-store daemon\n  2023-11-15T17:01:39.049086Z  INFO tvix_store: tvix-store listening on [::]:8000\n    at store/src/bin/tvix-store.rs:233\n```\n\nFrom another shell:\n```\n❯ evans -p 8000 -r --host localhost\nlocalhost:8000\u003e package tvix.store.v1\n\ntvix.store.v1@localhost:8000\u003e service PathInfoService\n\ntvix.store.v1.PathInfoService@localhost:8000\u003e call List\n\n[brrr…]\n```\n\nAs soon as the `List` call is executed (which works), another log line\nis printed in the first terminal:\n\n```\n  2023-11-15T17:05:09.062945Z  INFO tvix_store: tvix-store listening on inetd\n    at store/src/bin/tvix-store.rs:233\n```\n\n… confirming a second tvix-store daemon is spun up, which doesn\u0027t bind\nany ports, but talks to the parent process over stdin and stdout,\nand the listing that evans shows us is served through that machinery.\n\nChange-Id: Ie831b98d195f0f76ce75ec0528090f2e1306b9c2\n","web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003dd1f1eb5b6efed3a82f364651fd5aa7cdb3e9aa30"}],"resolve_conflicts_web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003dd1f1eb5b6efed3a82f364651fd5aa7cdb3e9aa30"}]},"parents_data":[{"branch_name":"refs/heads/canon","commit_id":"fc1fc00b0125a749d47a9ed3e70df11311c6136e","is_merged_in_target_branch":false,"change_id":"Ifcb09279c963f8a39e0dbabe145990263f3d7cf9","change_number":10041,"patch_set_number":1,"change_status":"MERGED"}],"branch":"refs/heads/canon"},"bb996e9e72c500bf3bf0086fddeb29a4853d89b5":{"kind":"REWORK","_number":2,"created":"2023-11-15 18:07:00.000000000","uploader":{"_account_id":1000036,"name":"flokli","email":"flokli@flokli.de","username":"flokli"},"ref":"refs/changes/43/10043/2","fetch":{"anonymous http":{"url":"https://cl.tvl.fyi/depot","ref":"refs/changes/43/10043/2","commands":{"Checkout":"git fetch https://cl.tvl.fyi/depot refs/changes/43/10043/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://cl.tvl.fyi/depot refs/changes/43/10043/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://cl.tvl.fyi/depot refs/changes/43/10043/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://cl.tvl.fyi/depot refs/changes/43/10043/2"}}},"commit":{"parents":[{"commit":"ca96638ffabe10945b8d4e7568b0d65b52ac7461","subject":"refactor(tvix/castore/tonic): use match in channel_from_url","web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003dca96638ffabe10945b8d4e7568b0d65b52ac7461"}]}],"author":{"name":"Florian Klink","email":"flokli@flokli.de","date":"2023-11-15 16:49:16.000000000","tz":120},"committer":{"name":"Florian Klink","email":"flokli@flokli.de","date":"2023-11-15 18:05:51.000000000","tz":120},"subject":"feat(tvix/castore/tonic): add support for `grpc+inetd:` scheme","message":"feat(tvix/castore/tonic): add support for `grpc+inetd:` scheme\n\nPart of b/308. This allows plugging in external store backends without\nrequiring them to already listen on a tcp port or unix socket, allowing\nto \"spin up\" the process on demand.\n\nIn fact, the process isn\u0027t even executed at all in case no request to\nit is made, similar to how the connection is only established on the\nfirst request (change-able by setting `wait-connect` parameter to `1`).\n\nSome calling conventions still need to be worked out:\n - Should there be a way to configure command arguments to pass to the\n   binary from the URL?\n - Should a magic env var be set to enable the mode?\n - Do env vars from the parent process get propagated?\n\nThis can be tested as following:\n\n```\n❯ cargo build --profile\u003drelease-with-debug\n   Compiling tvix-castore v0.1.0 (/home/flokli/dev/nixos/code.tvl.fyi/tvix/castore)\n   Compiling tvix-store v0.1.0 (/home/flokli/dev/nixos/code.tvl.fyi/tvix/store)\n   Compiling tvix-glue v0.1.0 (/home/flokli/dev/nixos/code.tvl.fyi/tvix/glue)\n   Compiling tvix-cli v0.1.0 (/home/flokli/dev/nixos/code.tvl.fyi/tvix/cli)\n    Finished release-with-debug [optimized + debuginfo] target(s) in 43.29s\n❯ BLOB_SERVICE_ADDR\u003dmemory:// \\\n  DIRECTORY_SERVICE_ADDR\u003dmemory:// \\\n  PATH_INFO_SERVICE_ADDR\u003dgrpc+inetd:target/release-with-debug/tvix-store \\\n  target/release-with-debug/tvix-store daemon\n  2023-11-15T17:01:39.049086Z  INFO tvix_store: tvix-store listening on [::]:8000\n    at store/src/bin/tvix-store.rs:233\n```\n\nFrom another shell:\n```\n❯ evans -p 8000 -r --host localhost\nlocalhost:8000\u003e package tvix.store.v1\n\ntvix.store.v1@localhost:8000\u003e service PathInfoService\n\ntvix.store.v1.PathInfoService@localhost:8000\u003e call List\n\n[brrr…]\n```\n\nAs soon as the `List` call is executed (which works), another log line\nis printed in the first terminal:\n\n```\n  2023-11-15T17:05:09.062945Z  INFO tvix_store: tvix-store listening on inetd\n    at store/src/bin/tvix-store.rs:233\n```\n\n… confirming a second tvix-store daemon is spun up, which doesn\u0027t bind\nany ports, but talks to the parent process over stdin and stdout,\nand the listing that evans shows us is served through that machinery.\n\nChange-Id: Ie831b98d195f0f76ce75ec0528090f2e1306b9c2\n","web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003dbb996e9e72c500bf3bf0086fddeb29a4853d89b5"}],"resolve_conflicts_web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003dbb996e9e72c500bf3bf0086fddeb29a4853d89b5"}]},"parents_data":[{"branch_name":"refs/heads/canon","commit_id":"ca96638ffabe10945b8d4e7568b0d65b52ac7461","is_merged_in_target_branch":false,"change_id":"Ifcb09279c963f8a39e0dbabe145990263f3d7cf9","change_number":10041,"patch_set_number":2,"change_status":"MERGED"}],"branch":"refs/heads/canon"},"8e068519fd332ed8f86edd60797bf135d21c630d":{"kind":"REWORK","_number":3,"created":"2023-11-15 21:37:51.000000000","uploader":{"_account_id":1000036,"name":"flokli","email":"flokli@flokli.de","username":"flokli"},"ref":"refs/changes/43/10043/3","fetch":{"anonymous http":{"url":"https://cl.tvl.fyi/depot","ref":"refs/changes/43/10043/3","commands":{"Checkout":"git fetch https://cl.tvl.fyi/depot refs/changes/43/10043/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://cl.tvl.fyi/depot refs/changes/43/10043/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://cl.tvl.fyi/depot refs/changes/43/10043/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://cl.tvl.fyi/depot refs/changes/43/10043/3"}}},"commit":{"parents":[{"commit":"935f5f10af333841521c7e23df099b2802fcae78","subject":"refactor(tvix/castore/tonic): use match in channel_from_url","web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003d935f5f10af333841521c7e23df099b2802fcae78"}]}],"author":{"name":"Florian Klink","email":"flokli@flokli.de","date":"2023-11-15 16:49:16.000000000","tz":120},"committer":{"name":"Florian Klink","email":"flokli@flokli.de","date":"2023-11-15 21:36:15.000000000","tz":120},"subject":"feat(tvix/castore/tonic): add support for `grpc+inetd:` scheme","message":"feat(tvix/castore/tonic): add support for `grpc+inetd:` scheme\n\nPart of b/308. This allows plugging in external store backends without\nrequiring them to already listen on a tcp port or unix socket, allowing\nto \"spin up\" the process on demand.\n\nIn fact, the process isn\u0027t even executed at all in case no request to\nit is made, similar to how the connection is only established on the\nfirst request (change-able by setting `wait-connect` parameter to `1`).\n\nSome calling conventions still need to be worked out:\n - Should there be a way to configure command arguments to pass to the\n   binary from the URL?\n - Should a magic env var be set to enable the mode?\n - Do env vars from the parent process get propagated?\n\nThis can be tested as following:\n\n```\n❯ cargo build --profile\u003drelease-with-debug\n   Compiling tvix-castore v0.1.0 (/home/flokli/dev/nixos/code.tvl.fyi/tvix/castore)\n   Compiling tvix-store v0.1.0 (/home/flokli/dev/nixos/code.tvl.fyi/tvix/store)\n   Compiling tvix-glue v0.1.0 (/home/flokli/dev/nixos/code.tvl.fyi/tvix/glue)\n   Compiling tvix-cli v0.1.0 (/home/flokli/dev/nixos/code.tvl.fyi/tvix/cli)\n    Finished release-with-debug [optimized + debuginfo] target(s) in 43.29s\n❯ BLOB_SERVICE_ADDR\u003dmemory:// \\\n  DIRECTORY_SERVICE_ADDR\u003dmemory:// \\\n  PATH_INFO_SERVICE_ADDR\u003dgrpc+inetd:target/release-with-debug/tvix-store \\\n  target/release-with-debug/tvix-store daemon\n  2023-11-15T17:01:39.049086Z  INFO tvix_store: tvix-store listening on [::]:8000\n    at store/src/bin/tvix-store.rs:233\n```\n\nFrom another shell:\n```\n❯ evans -p 8000 -r --host localhost\nlocalhost:8000\u003e package tvix.store.v1\n\ntvix.store.v1@localhost:8000\u003e service PathInfoService\n\ntvix.store.v1.PathInfoService@localhost:8000\u003e call List\n\n[brrr…]\n```\n\nAs soon as the `List` call is executed (which works), another log line\nis printed in the first terminal:\n\n```\n  2023-11-15T17:05:09.062945Z  INFO tvix_store: tvix-store listening on inetd\n    at store/src/bin/tvix-store.rs:233\n```\n\n… confirming a second tvix-store daemon is spun up, which doesn\u0027t bind\nany ports, but talks to the parent process over stdin and stdout,\nand the listing that evans shows us is served through that machinery.\n\nChange-Id: Ie831b98d195f0f76ce75ec0528090f2e1306b9c2\n","web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003d8e068519fd332ed8f86edd60797bf135d21c630d"}],"resolve_conflicts_web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003d8e068519fd332ed8f86edd60797bf135d21c630d"}]},"parents_data":[{"branch_name":"refs/heads/canon","commit_id":"935f5f10af333841521c7e23df099b2802fcae78","is_merged_in_target_branch":false,"change_id":"Ifcb09279c963f8a39e0dbabe145990263f3d7cf9","change_number":10041,"patch_set_number":3,"change_status":"MERGED"}],"branch":"refs/heads/canon"},"40c65adaa331c3ef498a8ece6eef2068fab59156":{"kind":"NO_CHANGE","_number":4,"created":"2023-11-15 21:48:19.000000000","uploader":{"_account_id":1000036,"name":"flokli","email":"flokli@flokli.de","username":"flokli"},"ref":"refs/changes/43/10043/4","fetch":{"anonymous http":{"url":"https://cl.tvl.fyi/depot","ref":"refs/changes/43/10043/4","commands":{"Checkout":"git fetch https://cl.tvl.fyi/depot refs/changes/43/10043/4 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://cl.tvl.fyi/depot refs/changes/43/10043/4 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://cl.tvl.fyi/depot refs/changes/43/10043/4 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://cl.tvl.fyi/depot refs/changes/43/10043/4"}}},"commit":{"parents":[{"commit":"3df3c3583191b41940c0ec8201b9e8ebff69489d","subject":"refactor(tvix/castore/tonic): use match in channel_from_url","web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003d3df3c3583191b41940c0ec8201b9e8ebff69489d"}]}],"author":{"name":"Florian Klink","email":"flokli@flokli.de","date":"2023-11-15 16:49:16.000000000","tz":120},"committer":{"name":"Florian Klink","email":"flokli@flokli.de","date":"2023-11-15 21:47:51.000000000","tz":120},"subject":"feat(tvix/castore/tonic): add support for `grpc+inetd:` scheme","message":"feat(tvix/castore/tonic): add support for `grpc+inetd:` scheme\n\nPart of b/308. This allows plugging in external store backends without\nrequiring them to already listen on a tcp port or unix socket, allowing\nto \"spin up\" the process on demand.\n\nIn fact, the process isn\u0027t even executed at all in case no request to\nit is made, similar to how the connection is only established on the\nfirst request (change-able by setting `wait-connect` parameter to `1`).\n\nSome calling conventions still need to be worked out:\n - Should there be a way to configure command arguments to pass to the\n   binary from the URL?\n - Should a magic env var be set to enable the mode?\n - Do env vars from the parent process get propagated?\n\nThis can be tested as following:\n\n```\n❯ cargo build --profile\u003drelease-with-debug\n   Compiling tvix-castore v0.1.0 (/home/flokli/dev/nixos/code.tvl.fyi/tvix/castore)\n   Compiling tvix-store v0.1.0 (/home/flokli/dev/nixos/code.tvl.fyi/tvix/store)\n   Compiling tvix-glue v0.1.0 (/home/flokli/dev/nixos/code.tvl.fyi/tvix/glue)\n   Compiling tvix-cli v0.1.0 (/home/flokli/dev/nixos/code.tvl.fyi/tvix/cli)\n    Finished release-with-debug [optimized + debuginfo] target(s) in 43.29s\n❯ BLOB_SERVICE_ADDR\u003dmemory:// \\\n  DIRECTORY_SERVICE_ADDR\u003dmemory:// \\\n  PATH_INFO_SERVICE_ADDR\u003dgrpc+inetd:target/release-with-debug/tvix-store \\\n  target/release-with-debug/tvix-store daemon\n  2023-11-15T17:01:39.049086Z  INFO tvix_store: tvix-store listening on [::]:8000\n    at store/src/bin/tvix-store.rs:233\n```\n\nFrom another shell:\n```\n❯ evans -p 8000 -r --host localhost\nlocalhost:8000\u003e package tvix.store.v1\n\ntvix.store.v1@localhost:8000\u003e service PathInfoService\n\ntvix.store.v1.PathInfoService@localhost:8000\u003e call List\n\n[brrr…]\n```\n\nAs soon as the `List` call is executed (which works), another log line\nis printed in the first terminal:\n\n```\n  2023-11-15T17:05:09.062945Z  INFO tvix_store: tvix-store listening on inetd\n    at store/src/bin/tvix-store.rs:233\n```\n\n… confirming a second tvix-store daemon is spun up, which doesn\u0027t bind\nany ports, but talks to the parent process over stdin and stdout,\nand the listing that evans shows us is served through that machinery.\n\nChange-Id: Ie831b98d195f0f76ce75ec0528090f2e1306b9c2\n","web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003d40c65adaa331c3ef498a8ece6eef2068fab59156"}],"resolve_conflicts_web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003d40c65adaa331c3ef498a8ece6eef2068fab59156"}]},"parents_data":[{"branch_name":"refs/heads/canon","commit_id":"3df3c3583191b41940c0ec8201b9e8ebff69489d","is_merged_in_target_branch":false,"change_id":"Ifcb09279c963f8a39e0dbabe145990263f3d7cf9","change_number":10041,"patch_set_number":4,"change_status":"MERGED"}],"branch":"refs/heads/canon"},"97ca3b11a79735d9b86187a95b9f91879e13eea9":{"kind":"NO_CHANGE","_number":5,"created":"2023-11-15 21:51:10.000000000","uploader":{"_account_id":1000036,"name":"flokli","email":"flokli@flokli.de","username":"flokli"},"ref":"refs/changes/43/10043/5","fetch":{"anonymous http":{"url":"https://cl.tvl.fyi/depot","ref":"refs/changes/43/10043/5","commands":{"Checkout":"git fetch https://cl.tvl.fyi/depot refs/changes/43/10043/5 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://cl.tvl.fyi/depot refs/changes/43/10043/5 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://cl.tvl.fyi/depot refs/changes/43/10043/5 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://cl.tvl.fyi/depot refs/changes/43/10043/5"}}},"commit":{"parents":[{"commit":"045fc227d01e54dbbbea29a646cea84fbd161d1a","subject":"feat(tvix/castore): add RWMerger","web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003d045fc227d01e54dbbbea29a646cea84fbd161d1a"}]}],"author":{"name":"Florian Klink","email":"flokli@flokli.de","date":"2023-11-15 16:49:16.000000000","tz":120},"committer":{"name":"Florian Klink","email":"flokli@flokli.de","date":"2023-11-15 21:51:06.000000000","tz":120},"subject":"feat(tvix/castore/tonic): add support for `grpc+inetd:` scheme","message":"feat(tvix/castore/tonic): add support for `grpc+inetd:` scheme\n\nPart of b/308. This allows plugging in external store backends without\nrequiring them to already listen on a tcp port or unix socket, allowing\nto \"spin up\" the process on demand.\n\nIn fact, the process isn\u0027t even executed at all in case no request to\nit is made, similar to how the connection is only established on the\nfirst request (change-able by setting `wait-connect` parameter to `1`).\n\nSome calling conventions still need to be worked out:\n - Should there be a way to configure command arguments to pass to the\n   binary from the URL?\n - Should a magic env var be set to enable the mode?\n - Do env vars from the parent process get propagated?\n\nThis can be tested as following:\n\n```\n❯ cargo build --profile\u003drelease-with-debug\n   Compiling tvix-castore v0.1.0 (/home/flokli/dev/nixos/code.tvl.fyi/tvix/castore)\n   Compiling tvix-store v0.1.0 (/home/flokli/dev/nixos/code.tvl.fyi/tvix/store)\n   Compiling tvix-glue v0.1.0 (/home/flokli/dev/nixos/code.tvl.fyi/tvix/glue)\n   Compiling tvix-cli v0.1.0 (/home/flokli/dev/nixos/code.tvl.fyi/tvix/cli)\n    Finished release-with-debug [optimized + debuginfo] target(s) in 43.29s\n❯ BLOB_SERVICE_ADDR\u003dmemory:// \\\n  DIRECTORY_SERVICE_ADDR\u003dmemory:// \\\n  PATH_INFO_SERVICE_ADDR\u003dgrpc+inetd:target/release-with-debug/tvix-store \\\n  target/release-with-debug/tvix-store daemon\n  2023-11-15T17:01:39.049086Z  INFO tvix_store: tvix-store listening on [::]:8000\n    at store/src/bin/tvix-store.rs:233\n```\n\nFrom another shell:\n```\n❯ evans -p 8000 -r --host localhost\nlocalhost:8000\u003e package tvix.store.v1\n\ntvix.store.v1@localhost:8000\u003e service PathInfoService\n\ntvix.store.v1.PathInfoService@localhost:8000\u003e call List\n\n[brrr…]\n```\n\nAs soon as the `List` call is executed (which works), another log line\nis printed in the first terminal:\n\n```\n  2023-11-15T17:05:09.062945Z  INFO tvix_store: tvix-store listening on inetd\n    at store/src/bin/tvix-store.rs:233\n```\n\n… confirming a second tvix-store daemon is spun up, which doesn\u0027t bind\nany ports, but talks to the parent process over stdin and stdout,\nand the listing that evans shows us is served through that machinery.\n\nChange-Id: Ie831b98d195f0f76ce75ec0528090f2e1306b9c2\n","web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003d97ca3b11a79735d9b86187a95b9f91879e13eea9"}],"resolve_conflicts_web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003d97ca3b11a79735d9b86187a95b9f91879e13eea9"}]},"parents_data":[{"branch_name":"refs/heads/canon","commit_id":"045fc227d01e54dbbbea29a646cea84fbd161d1a","is_merged_in_target_branch":false,"change_id":"I5771724394cfa98f028ab424f361644ff4d6c933","change_number":10040,"patch_set_number":5,"change_status":"ABANDONED"}],"branch":"refs/heads/canon"},"3245dc56a7badde431caec04a522f6e00ff1f64d":{"kind":"REWORK","_number":6,"created":"2023-11-15 22:00:27.000000000","uploader":{"_account_id":1000036,"name":"flokli","email":"flokli@flokli.de","username":"flokli"},"ref":"refs/changes/43/10043/6","fetch":{"anonymous http":{"url":"https://cl.tvl.fyi/depot","ref":"refs/changes/43/10043/6","commands":{"Checkout":"git fetch https://cl.tvl.fyi/depot refs/changes/43/10043/6 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://cl.tvl.fyi/depot refs/changes/43/10043/6 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://cl.tvl.fyi/depot refs/changes/43/10043/6 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://cl.tvl.fyi/depot refs/changes/43/10043/6"}}},"commit":{"parents":[{"commit":"de11a9e758676f0ad275722b9ec1b1740afb256f","subject":"feat(tvix/castore): add RWMerger","web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003dde11a9e758676f0ad275722b9ec1b1740afb256f"}]}],"author":{"name":"Florian Klink","email":"flokli@flokli.de","date":"2023-11-15 16:49:16.000000000","tz":120},"committer":{"name":"Florian Klink","email":"flokli@flokli.de","date":"2023-11-15 22:00:13.000000000","tz":120},"subject":"feat(tvix/castore/tonic): add support for `grpc+inetd:` scheme","message":"feat(tvix/castore/tonic): add support for `grpc+inetd:` scheme\n\nPart of b/308. This allows plugging in external store backends without\nrequiring them to already listen on a tcp port or unix socket, allowing\nto \"spin up\" the process on demand.\n\nIn fact, the process isn\u0027t even executed at all in case no request to\nit is made, similar to how the connection is only established on the\nfirst request (change-able by setting `wait-connect` parameter to `1`).\n\nSome calling conventions still need to be worked out:\n - Should there be a way to configure command arguments to pass to the\n   binary from the URL?\n - Should a magic env var be set to enable the mode?\n - Do env vars from the parent process get propagated?\n\nThis can be tested as following:\n\n```\n❯ cargo build --profile\u003drelease-with-debug\n   Compiling tvix-castore v0.1.0 (/home/flokli/dev/nixos/code.tvl.fyi/tvix/castore)\n   Compiling tvix-store v0.1.0 (/home/flokli/dev/nixos/code.tvl.fyi/tvix/store)\n   Compiling tvix-glue v0.1.0 (/home/flokli/dev/nixos/code.tvl.fyi/tvix/glue)\n   Compiling tvix-cli v0.1.0 (/home/flokli/dev/nixos/code.tvl.fyi/tvix/cli)\n    Finished release-with-debug [optimized + debuginfo] target(s) in 43.29s\n❯ BLOB_SERVICE_ADDR\u003dmemory:// \\\n  DIRECTORY_SERVICE_ADDR\u003dmemory:// \\\n  PATH_INFO_SERVICE_ADDR\u003dgrpc+inetd:target/release-with-debug/tvix-store \\\n  target/release-with-debug/tvix-store daemon\n  2023-11-15T17:01:39.049086Z  INFO tvix_store: tvix-store listening on [::]:8000\n    at store/src/bin/tvix-store.rs:233\n```\n\nFrom another shell:\n```\n❯ evans -p 8000 -r --host localhost\nlocalhost:8000\u003e package tvix.store.v1\n\ntvix.store.v1@localhost:8000\u003e service PathInfoService\n\ntvix.store.v1.PathInfoService@localhost:8000\u003e call List\n\n[brrr…]\n```\n\nAs soon as the `List` call is executed (which works), another log line\nis printed in the first terminal:\n\n```\n  2023-11-15T17:05:09.062945Z  INFO tvix_store: tvix-store listening on inetd\n    at store/src/bin/tvix-store.rs:233\n```\n\n… confirming a second tvix-store daemon is spun up, which doesn\u0027t bind\nany ports, but talks to the parent process over stdin and stdout,\nand the listing that evans shows us is served through that machinery.\n\nChange-Id: Ie831b98d195f0f76ce75ec0528090f2e1306b9c2\n","web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003d3245dc56a7badde431caec04a522f6e00ff1f64d"}],"resolve_conflicts_web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003d3245dc56a7badde431caec04a522f6e00ff1f64d"}]},"parents_data":[{"branch_name":"refs/heads/canon","commit_id":"de11a9e758676f0ad275722b9ec1b1740afb256f","is_merged_in_target_branch":false,"change_id":"I5771724394cfa98f028ab424f361644ff4d6c933","change_number":10040,"patch_set_number":6,"change_status":"ABANDONED"}],"branch":"refs/heads/canon"}},"requirements":[],"submit_records":[],"submit_requirements":[]}
