)]}'
{"id":"depot~13189","triplet_id":"depot~canon~I153e6de57939c0eeca1f9e479d807862ab69b2de","project":"depot","branch":"canon","attention_set":{},"removed_from_attention_set":{"1000107":{"account":{"_account_id":1000107,"name":"benjaminedwardwebb","display_name":"benwebb","email":"benjaminedwardwebb@gmail.com","username":"benjaminedwardwebb","status":"https://benwebb.site"},"last_update":"2025-03-03 02:14:08.000000000","reason":"Change was submitted"}},"hashtags":[],"change_id":"I153e6de57939c0eeca1f9e479d807862ab69b2de","subject":"fix(tvix/cli): make -I prepend to lookup paths provided by NIX_PATH","status":"MERGED","created":"2025-03-01 22:44:09.000000000","updated":"2025-03-03 02:14:08.000000000","submitted":"2025-03-03 02:14:08.000000000","submitter":{"_account_id":1000107,"name":"benjaminedwardwebb","display_name":"benwebb","email":"benjaminedwardwebb@gmail.com","username":"benjaminedwardwebb","status":"https://benwebb.site"},"total_comment_count":4,"unresolved_comment_count":0,"has_review_started":true,"submission_id":"13189","meta_rev_id":"a8215925b6a3418ab87cb2539ead9ce1b6509506","_number":13189,"virtual_id_number":13189,"owner":{"_account_id":1000107,"name":"benjaminedwardwebb","display_name":"benwebb","email":"benjaminedwardwebb@gmail.com","username":"benjaminedwardwebb","status":"https://benwebb.site"},"actions":{},"labels":{"Code-Review":{"approved":{"_account_id":1000036,"name":"flokli","email":"flokli@flokli.de","username":"flokli"},"all":[{"tag":"autogenerated:gerrit:merged","value":2,"date":"2025-03-03 02:14:08.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":1000036,"name":"flokli","email":"flokli@flokli.de","username":"flokli"},{"value":0,"_account_id":1000107,"name":"benjaminedwardwebb","display_name":"benwebb","email":"benjaminedwardwebb@gmail.com","username":"benjaminedwardwebb","status":"https://benwebb.site"},{"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":1000036,"name":"flokli","email":"flokli@flokli.de","username":"flokli"},{"value":0,"_account_id":1000107,"name":"benjaminedwardwebb","display_name":"benwebb","email":"benjaminedwardwebb@gmail.com","username":"benjaminedwardwebb","status":"https://benwebb.site"},{"tag":"autogenerated:gerrit:merged","value":1,"date":"2025-03-03 02:14:08.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":[{"value":0,"_account_id":1000036,"name":"flokli","email":"flokli@flokli.de","username":"flokli"},{"value":0,"_account_id":1000107,"name":"benjaminedwardwebb","display_name":"benwebb","email":"benjaminedwardwebb@gmail.com","username":"benjaminedwardwebb","status":"https://benwebb.site"},{"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":1000107,"name":"benjaminedwardwebb","display_name":"benwebb","email":"benjaminedwardwebb@gmail.com","username":"benjaminedwardwebb","status":"https://benwebb.site"},"all":[{"value":0,"_account_id":1000036,"name":"flokli","email":"flokli@flokli.de","username":"flokli"},{"value":0,"_account_id":1000107,"name":"benjaminedwardwebb","display_name":"benwebb","email":"benjaminedwardwebb@gmail.com","username":"benjaminedwardwebb","status":"https://benwebb.site"},{"value":0,"_account_id":1000014,"name":"BuildkiteCI","username":"buildkite","tags":["SERVICE_USER"]}]},"Conformant-Commit-Message":{"approved":{"_account_id":1000107,"name":"benjaminedwardwebb","display_name":"benwebb","email":"benjaminedwardwebb@gmail.com","username":"benjaminedwardwebb","status":"https://benwebb.site"},"all":[{"value":0,"_account_id":1000036,"name":"flokli","email":"flokli@flokli.de","username":"flokli"},{"value":0,"_account_id":1000107,"name":"benjaminedwardwebb","display_name":"benwebb","email":"benjaminedwardwebb@gmail.com","username":"benjaminedwardwebb","status":"https://benwebb.site"},{"value":0,"_account_id":1000014,"name":"BuildkiteCI","username":"buildkite","tags":["SERVICE_USER"]}]}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":1000014,"name":"BuildkiteCI","username":"buildkite","tags":["SERVICE_USER"]},{"_account_id":1000036,"name":"flokli","email":"flokli@flokli.de","username":"flokli"},{"_account_id":1000107,"name":"benjaminedwardwebb","display_name":"benwebb","email":"benjaminedwardwebb@gmail.com","username":"benjaminedwardwebb","status":"https://benwebb.site"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2025-03-01 22:44:11.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":"2025-03-01 22:49:40.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":"2025-03-02 03:04:27.000000000","updated_by":{"_account_id":1000036,"name":"flokli","email":"flokli@flokli.de","username":"flokli"},"reviewer":{"_account_id":1000036,"name":"flokli","email":"flokli@flokli.de","username":"flokli"},"state":"REVIEWER"}],"messages":[{"id":"07909685474b442bb0cbbf800f964cfb19f13915","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000107,"name":"benjaminedwardwebb","display_name":"benwebb","email":"benjaminedwardwebb@gmail.com","username":"benjaminedwardwebb","status":"https://benwebb.site"},"date":"2025-03-01 22:44:09.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"3d81c6a7140f12450b5e9eedb44578294f76a98e","tag":"autogenerated:buildkite~trigger","author":{"_account_id":1000014,"name":"BuildkiteCI","username":"buildkite","tags":["SERVICE_USER"]},"date":"2025-03-01 22:44:11.000000000","message":"Patch Set 1:\n\nStarted build for patchset #1 on: https://buildkite.com/tvl/depot/builds/38794","accounts_in_message":[],"_revision_number":1},{"id":"d5ff0a31a70d3210eac7b234df5ae571bc2e75f4","tag":"autogenerated:buildkite~result","author":{"_account_id":1000014,"name":"BuildkiteCI","username":"buildkite","tags":["SERVICE_USER"]},"date":"2025-03-01 22:49:40.000000000","message":"Patch Set 1: Verified-1\n\nBuild of patchset 1 failed: https://buildkite.com/tvl/depot/builds/38794","accounts_in_message":[],"_revision_number":1},{"id":"cdd054e1d278fdfd24da3845368b4d29412a5a6d","author":{"_account_id":1000036,"name":"flokli","email":"flokli@flokli.de","username":"flokli"},"date":"2025-03-02 03:04:27.000000000","message":"Patch Set 1: Code-Review+2","accounts_in_message":[],"_revision_number":1},{"id":"d2ce956da98a9a8dc299c1cf5fcc327a41b60cde","tag":"autogenerated:buildkite~result","author":{"_account_id":1000014,"name":"BuildkiteCI","username":"buildkite","tags":["SERVICE_USER"]},"date":"2025-03-02 03:07:42.000000000","message":"Patch Set 1:\n\nBuild of patchset 1 failed: https://buildkite.com/tvl/depot/builds/38795","accounts_in_message":[],"_revision_number":1},{"id":"6fec23860bd28484f753433cce723ff7cdaea5e6","tag":"autogenerated:buildkite~result","author":{"_account_id":1000014,"name":"BuildkiteCI","username":"buildkite","tags":["SERVICE_USER"]},"date":"2025-03-02 03:50:32.000000000","message":"Patch Set 1:\n\nBuild of patchset 1 failed: https://buildkite.com/tvl/depot/builds/38796","accounts_in_message":[],"_revision_number":1},{"id":"af1018822153e6b3a5987884d3618e7465af2dff","author":{"_account_id":1000036,"name":"flokli","email":"flokli@flokli.de","username":"flokli"},"date":"2025-03-02 03:57:19.000000000","message":"Patch Set 1:\n\n(1 comment)","accounts_in_message":[],"_revision_number":1},{"id":"002dabd3c0cbb88b4708e8b7757a5bf4e1743136","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000107,"name":"benjaminedwardwebb","display_name":"benwebb","email":"benjaminedwardwebb@gmail.com","username":"benjaminedwardwebb","status":"https://benwebb.site"},"date":"2025-03-02 20:24:23.000000000","message":"Uploaded patch set 2.\n\nCopied Votes:\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":"afd74ce2f4f128114bceaff3c6f5b12b2aca5845","tag":"autogenerated:buildkite~trigger","author":{"_account_id":1000014,"name":"BuildkiteCI","username":"buildkite","tags":["SERVICE_USER"]},"date":"2025-03-02 20:24:24.000000000","message":"Patch Set 2:\n\nStarted build for patchset #2 on: https://buildkite.com/tvl/depot/builds/38841","accounts_in_message":[],"_revision_number":2},{"id":"660e1a9324598b986d8dd57052b522f85e1c1199","tag":"autogenerated:buildkite~result","author":{"_account_id":1000014,"name":"BuildkiteCI","username":"buildkite","tags":["SERVICE_USER"]},"date":"2025-03-02 20:29:38.000000000","message":"Patch Set 2: Verified+1\n\nBuild of patchset 2 passed: https://buildkite.com/tvl/depot/builds/38841","accounts_in_message":[],"_revision_number":2},{"id":"f07baecd286fcfbda67e04d9c73a5aab060548c9","author":{"_account_id":1000107,"name":"benjaminedwardwebb","display_name":"benwebb","email":"benjaminedwardwebb@gmail.com","username":"benjaminedwardwebb","status":"https://benwebb.site"},"date":"2025-03-02 20:30:05.000000000","message":"Patch Set 2:\n\n(2 comments)","accounts_in_message":[],"_revision_number":2},{"id":"109a737006e08a75351507e3f1048a9ff5b485b4","author":{"_account_id":1000036,"name":"flokli","email":"flokli@flokli.de","username":"flokli"},"date":"2025-03-03 01:16:12.000000000","message":"Patch Set 2: Code-Review+2\n\n(1 comment)","accounts_in_message":[],"_revision_number":2},{"id":"a8215925b6a3418ab87cb2539ead9ce1b6509506","tag":"autogenerated:gerrit:merged","author":{"_account_id":1000107,"name":"benjaminedwardwebb","display_name":"benwebb","email":"benjaminedwardwebb@gmail.com","username":"benjaminedwardwebb","status":"https://benwebb.site"},"date":"2025-03-03 02:14:08.000000000","message":"Change has been successfully rebased and submitted as 2daa4832490eddcfb2b9a19d7f651252ec766062","accounts_in_message":[],"_revision_number":3}],"current_revision_number":3,"current_revision":"2daa4832490eddcfb2b9a19d7f651252ec766062","revisions":{"42a49291285457bcaa1b28e8f96a4bdd95d55994":{"kind":"REWORK","_number":1,"created":"2025-03-01 22:44:09.000000000","uploader":{"_account_id":1000107,"name":"benjaminedwardwebb","display_name":"benwebb","email":"benjaminedwardwebb@gmail.com","username":"benjaminedwardwebb","status":"https://benwebb.site"},"ref":"refs/changes/89/13189/1","fetch":{"anonymous http":{"url":"https://cl.tvl.fyi/depot","ref":"refs/changes/89/13189/1","commands":{"Checkout":"git fetch https://cl.tvl.fyi/depot refs/changes/89/13189/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://cl.tvl.fyi/depot refs/changes/89/13189/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://cl.tvl.fyi/depot refs/changes/89/13189/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://cl.tvl.fyi/depot refs/changes/89/13189/1"}}},"commit":{"parents":[{"commit":"b42cb7b3074096d3ff4741db950e6abb5c576542","subject":"docs(tvix): fix typo and remove stale todo","web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003db42cb7b3074096d3ff4741db950e6abb5c576542"}]}],"author":{"name":"Ben Webb","email":"benjaminedwardwebb@gmail.com","date":"2025-03-01 22:26:10.000000000","tz":-360},"committer":{"name":"Ben Webb","email":"benjaminedwardwebb@gmail.com","date":"2025-03-01 22:26:10.000000000","tz":-360},"subject":"fix(tvix/cli): make -I prepend to lookup paths provided by NIX_PATH","message":"fix(tvix/cli): make -I prepend to lookup paths provided by NIX_PATH\n\nUpdate the tvix cli\u0027s -I option so that it aligns more closely with\nnix\u0027s behavior: prepending entries to the list of lookup paths provided\nby the NIX_PATH environment variable. Before this commit, using the -I\noption would instead override and ignore the NIX_PATH variable.\nAdditionally, update the option\u0027s long name and help text to match the\nnew behavior.\n\nWhile the tvix cli\u0027s interface does not appear to be attempting to mimic\nnix exactly, I think this particular case of the -I option\u0027s diverging\nbehavior will inevitably surprise users because it\u0027s name, presumably\nshort for \"include\" and being similar to gcc\u0027s flag, evokes additivity.\nThe prior implementation hinted at this difference with with the help\ntext and the long name, --nix-search-path, but I still suspect users\nwill be confused on first usage (at least I was). If we\u0027re willing to\npay the maintenance costs of additional code, we can avoid this and\nprovide a slightly smoother user experience.\n\nChanges were tested by buiding the tvix cli, adding it to the PATH, and\nexecuting simple tests as in the following bash script\n\n    mg build //tvix/cli\n    PATH\u003d\"$PWD/result/bin:$PATH\"\n    one\u003d$(mktemp) \u0026\u0026 echo \"\u003d\u003e $one :: path\" \u003e \"$one\"\n    two\u003d$(mktemp) \u0026\u0026 echo \"\u003d\u003e $two :: path\" \u003e \"$two\"\n    dir1\u003d$(mktemp -d) \u0026\u0026 file1\u003d\"$dir1/file1\" \u0026\u0026 echo \"\u003d\u003e $file1 :: path\" \u003e \"$file1\"\n    dir2\u003d$(mktemp -d) \u0026\u0026 file2\u003d\"$dir2/file2\" \u0026\u0026 echo \"\u003d\u003e $file2 :: path\" \u003e \"$file2\"\n    NIX_PATH\u003d\"$dir1\" tvix -E \"\u003cfile1\u003e\" | cmp - \"$file1\" # NIX_PATH works with a single non-prefixed lookup path.\n    NIX_PATH\u003d\"$dir1:$dir2\" tvix -E \"\u003cfile2\u003e\" | cmp - \"$file2\" # NIX_PATH works with multiple non-prefixed lookup paths.\n    NIX_PATH\u003d\"one\u003d$one\" tvix -E \"\u003cone\u003e\" | cmp - \"$one\" # NIX_PATH works with a single prefixed lookup path.\n    NIX_PATH\u003d\"one\u003d$one:two\u003d$two\" tvix -E \"\u003cone\u003e\" | cmp - \"$one\"\n    NIX_PATH\u003d\"one\u003d$one:two\u003d$two\" tvix -E \"\u003ctwo\u003e\" | cmp - \"$two\" # NIX_PATH works with multiple prefixed lookup paths.\n    NIX_PATH\u003d\"one\u003d$one:one\u003d$two\" tvix -E \"\u003cone\u003e\" | cmp - \"$one\" # NIX_PATH first entry takes precedence.\n    tvix -I \"$dir1\" -E \"\u003cfile1\u003e\" | cmp - \"$file1\" # The -I option works with a single non-prefixed lookup path.\n    tvix -I \"$dir1\" -I \"$dir2\" -E \"\u003cfile2\u003e\" | cmp - \"$file2\" # The -I option works with multiple non-prefixed lookup paths.\n    tvix -I \"one\u003d$one\" -E \"\u003cone\u003e\" | cmp - \"$one\" # The -I option works with a single prefixed lookup path.\n    tvix --extra-nix-path \"one\u003d$one\" -E \"\u003cone\u003e\" | cmp - \"$one\" # The --extra-nix-path option works with a single prefixed lookup path.\n    tvix -I \"one\u003d$one\" -I \"two\u003d$two\" -E \"\u003cone\u003e\" | cmp - \"$one\"\n    tvix -I \"one\u003d$one\" -I \"two\u003d$two\" -E \"\u003ctwo\u003e\" | cmp - \"$two\" # The -I options works when passed multiple times with prefixed lookup paths.\n    tvix -I \"one\u003d$one\" -I \"one\u003d$two\" -E \"\u003cone\u003e\" | cmp - \"$one\" # The first -I option takes precedence.\n    NIX_PATH\u003d\"one\u003d$one\" tvix -I \"two\u003d$two\" -E \"\u003cone\u003e\" | cmp - \"$one\"\n    NIX_PATH\u003d\"one\u003d$one\" tvix -I \"two\u003d$two\" -E \"\u003ctwo\u003e\" | cmp - \"$two\" # Both NIX_PATH and the -I option work together and are additive.\n    NIX_PATH\u003d\"one\u003d$one\" tvix -I \"one\u003d$two\" -E \"\u003cone\u003e\" | cmp - \"$two\" # The -I option takes precedence over NIX_PATH.\n    rm \"$one\"\n    rm \"$two\"\n    rm \"$file1\" \u0026\u0026 rmdir \"$dir1\"\n    rm \"$file2\" \u0026\u0026 rmdir \"$dir2\"\n\nThe above script assumes it\u0027s being run from inside the depot.\n\nChange-Id: I153e6de57939c0eeca1f9e479d807862ab69b2de\n","web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003d42a49291285457bcaa1b28e8f96a4bdd95d55994"}],"resolve_conflicts_web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003d42a49291285457bcaa1b28e8f96a4bdd95d55994"}]},"parents_data":[{"branch_name":"refs/heads/canon","commit_id":"b42cb7b3074096d3ff4741db950e6abb5c576542","is_merged_in_target_branch":false,"change_id":"I64aaa7cc93c8c6978cedd3bfacf756dacb4c7fc7","change_number":13188,"patch_set_number":1,"change_status":"MERGED"}],"branch":"refs/heads/canon"},"daadd56039c207af4e238e1c076ae49250c73422":{"kind":"REWORK","_number":2,"created":"2025-03-02 20:24:23.000000000","uploader":{"_account_id":1000107,"name":"benjaminedwardwebb","display_name":"benwebb","email":"benjaminedwardwebb@gmail.com","username":"benjaminedwardwebb","status":"https://benwebb.site"},"ref":"refs/changes/89/13189/2","fetch":{"anonymous http":{"url":"https://cl.tvl.fyi/depot","ref":"refs/changes/89/13189/2","commands":{"Checkout":"git fetch https://cl.tvl.fyi/depot refs/changes/89/13189/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://cl.tvl.fyi/depot refs/changes/89/13189/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://cl.tvl.fyi/depot refs/changes/89/13189/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://cl.tvl.fyi/depot refs/changes/89/13189/2"}}},"commit":{"parents":[{"commit":"0fd8aa8b0d38b6452567eaed1ec88095c4b43f0c","subject":"chore(users/edef): regenerate Cargo lock files","web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003d0fd8aa8b0d38b6452567eaed1ec88095c4b43f0c"}]}],"author":{"name":"Ben Webb","email":"benjaminedwardwebb@gmail.com","date":"2025-03-02 20:17:40.000000000","tz":-360},"committer":{"name":"Ben Webb","email":"benjaminedwardwebb@gmail.com","date":"2025-03-02 20:17:40.000000000","tz":-360},"subject":"fix(tvix/cli): make -I prepend to lookup paths provided by NIX_PATH","message":"fix(tvix/cli): make -I prepend to lookup paths provided by NIX_PATH\n\nUpdate the tvix cli\u0027s -I option so that it aligns more closely with\nnix\u0027s behavior: prepending entries to the list of lookup paths provided\nby the NIX_PATH environment variable. Before this commit, using the -I\noption would instead override and ignore the NIX_PATH variable.\nAdditionally, update the option\u0027s long name and help text to match the\nnew behavior.\n\nWhile the tvix cli\u0027s interface does not appear to be attempting to mimic\nnix exactly, I think this particular case of the -I option\u0027s diverging\nbehavior will inevitably surprise users because it\u0027s name, presumably\nshort for \"include\" and being similar to gcc\u0027s flag, evokes additivity.\nThe prior implementation hinted at this difference with the help text\nand the long name, --nix-search-path, but I still suspect users will be\nconfused on first usage (at least I was). If we\u0027re willing to pay the\nmaintenance costs of additional code, we can avoid this and provide a\nslightly smoother user experience.\n\nChanges were tested by buiding the tvix cli, adding it to the PATH, and\nexecuting simple tests as in the following bash script\n\n    mg build //tvix/cli\n    PATH\u003d\"$PWD/result/bin:$PATH\"\n    one\u003d$(mktemp) \u0026\u0026 echo \"\u003d\u003e $one :: path\" \u003e \"$one\"\n    two\u003d$(mktemp) \u0026\u0026 echo \"\u003d\u003e $two :: path\" \u003e \"$two\"\n    dir1\u003d$(mktemp -d) \u0026\u0026 file1\u003d\"$dir1/file1\" \u0026\u0026 echo \"\u003d\u003e $file1 :: path\" \u003e \"$file1\"\n    dir2\u003d$(mktemp -d) \u0026\u0026 file2\u003d\"$dir2/file2\" \u0026\u0026 echo \"\u003d\u003e $file2 :: path\" \u003e \"$file2\"\n    # NIX_PATH works with a single non-prefixed lookup path.\n    NIX_PATH\u003d\"$dir1\" tvix -E \"\u003cfile1\u003e\" | cmp - \"$file1\"\n    # NIX_PATH works with multiple non-prefixed lookup paths.\n    NIX_PATH\u003d\"$dir1:$dir2\" tvix -E \"\u003cfile2\u003e\" | cmp - \"$file2\"\n    # NIX_PATH works with a single prefixed lookup path.\n    NIX_PATH\u003d\"one\u003d$one\" tvix -E \"\u003cone\u003e\" | cmp - \"$one\"\n    # NIX_PATH works with multiple prefixed lookup paths.\n    NIX_PATH\u003d\"one\u003d$one:two\u003d$two\" tvix -E \"\u003cone\u003e\" | cmp - \"$one\"\n    NIX_PATH\u003d\"one\u003d$one:two\u003d$two\" tvix -E \"\u003ctwo\u003e\" | cmp - \"$two\"\n    # NIX_PATH first entry takes precedence.\n    NIX_PATH\u003d\"one\u003d$one:one\u003d$two\" tvix -E \"\u003cone\u003e\" | cmp - \"$one\"\n    # The -I option works with a single non-prefixed lookup path.\n    tvix -I \"$dir1\" -E \"\u003cfile1\u003e\" | cmp - \"$file1\"\n    # The -I option works with multiple non-prefixed lookup paths.\n    tvix -I \"$dir1\" -I \"$dir2\" -E \"\u003cfile2\u003e\" | cmp - \"$file2\"\n    # The -I option works with a single prefixed lookup path.\n    tvix -I \"one\u003d$one\" -E \"\u003cone\u003e\" | cmp - \"$one\"\n    # The --extra-nix-path option works with a single prefixed lookup path.\n    tvix --extra-nix-path \"one\u003d$one\" -E \"\u003cone\u003e\" | cmp - \"$one\"\n    # The -I options works when passed multiple times with prefixed lookup paths.\n    tvix -I \"one\u003d$one\" -I \"two\u003d$two\" -E \"\u003cone\u003e\" | cmp - \"$one\"\n    tvix -I \"one\u003d$one\" -I \"two\u003d$two\" -E \"\u003ctwo\u003e\" | cmp - \"$two\"\n    # The first -I option takes precedence.\n    tvix -I \"one\u003d$one\" -I \"one\u003d$two\" -E \"\u003cone\u003e\" | cmp - \"$one\"\n    # Both NIX_PATH and the -I option work together and are additive.\n    NIX_PATH\u003d\"one\u003d$one\" tvix -I \"two\u003d$two\" -E \"\u003cone\u003e\" | cmp - \"$one\"\n    NIX_PATH\u003d\"one\u003d$one\" tvix -I \"two\u003d$two\" -E \"\u003ctwo\u003e\" | cmp - \"$two\"\n    # The -I option takes precedence over NIX_PATH.\n    NIX_PATH\u003d\"one\u003d$one\" tvix -I \"one\u003d$two\" -E \"\u003cone\u003e\" | cmp - \"$two\"\n    rm \"$one\"\n    rm \"$two\"\n    rm \"$file1\" \u0026\u0026 rmdir \"$dir1\"\n    rm \"$file2\" \u0026\u0026 rmdir \"$dir2\"\n\nThe above script assumes it\u0027s being run from inside the depot.\n\nChange-Id: I153e6de57939c0eeca1f9e479d807862ab69b2de\n","web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003ddaadd56039c207af4e238e1c076ae49250c73422"}],"resolve_conflicts_web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003ddaadd56039c207af4e238e1c076ae49250c73422"}]},"parents_data":[{"branch_name":"refs/heads/canon","commit_id":"0fd8aa8b0d38b6452567eaed1ec88095c4b43f0c","is_merged_in_target_branch":true,"change_id":"I379c9ad147e46ff218fed7256f52b960a105abe7","change_number":13191,"patch_set_number":3,"change_status":"MERGED"}],"branch":"refs/heads/canon"},"2daa4832490eddcfb2b9a19d7f651252ec766062":{"kind":"REWORK","_number":3,"created":"2025-03-03 02:14:08.000000000","uploader":{"_account_id":1000107,"name":"benjaminedwardwebb","display_name":"benwebb","email":"benjaminedwardwebb@gmail.com","username":"benjaminedwardwebb","status":"https://benwebb.site"},"ref":"refs/changes/89/13189/3","fetch":{"anonymous http":{"url":"https://cl.tvl.fyi/depot","ref":"refs/changes/89/13189/3","commands":{"Checkout":"git fetch https://cl.tvl.fyi/depot refs/changes/89/13189/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://cl.tvl.fyi/depot refs/changes/89/13189/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://cl.tvl.fyi/depot refs/changes/89/13189/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://cl.tvl.fyi/depot refs/changes/89/13189/3"}}},"commit":{"parents":[{"commit":"d76d699a539e9898354219ffe656a871dfe80b15","subject":"fix(3p/overlays): work around buildkite agent issues with nixpkgs","web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003dd76d699a539e9898354219ffe656a871dfe80b15"}]}],"author":{"name":"Ben Webb","email":"benjaminedwardwebb@gmail.com","date":"2025-03-02 20:17:40.000000000","tz":-360},"committer":{"name":"benjaminedwardwebb","email":"benjaminedwardwebb@gmail.com","date":"2025-03-03 02:14:08.000000000","tz":0},"subject":"fix(tvix/cli): make -I prepend to lookup paths provided by NIX_PATH","message":"fix(tvix/cli): make -I prepend to lookup paths provided by NIX_PATH\n\nUpdate the tvix cli\u0027s -I option so that it aligns more closely with\nnix\u0027s behavior: prepending entries to the list of lookup paths provided\nby the NIX_PATH environment variable. Before this commit, using the -I\noption would instead override and ignore the NIX_PATH variable.\nAdditionally, update the option\u0027s long name and help text to match the\nnew behavior.\n\nWhile the tvix cli\u0027s interface does not appear to be attempting to mimic\nnix exactly, I think this particular case of the -I option\u0027s diverging\nbehavior will inevitably surprise users because it\u0027s name, presumably\nshort for \"include\" and being similar to gcc\u0027s flag, evokes additivity.\nThe prior implementation hinted at this difference with the help text\nand the long name, --nix-search-path, but I still suspect users will be\nconfused on first usage (at least I was). If we\u0027re willing to pay the\nmaintenance costs of additional code, we can avoid this and provide a\nslightly smoother user experience.\n\nChanges were tested by buiding the tvix cli, adding it to the PATH, and\nexecuting simple tests as in the following bash script\n\n    mg build //tvix/cli\n    PATH\u003d\"$PWD/result/bin:$PATH\"\n    one\u003d$(mktemp) \u0026\u0026 echo \"\u003d\u003e $one :: path\" \u003e \"$one\"\n    two\u003d$(mktemp) \u0026\u0026 echo \"\u003d\u003e $two :: path\" \u003e \"$two\"\n    dir1\u003d$(mktemp -d) \u0026\u0026 file1\u003d\"$dir1/file1\" \u0026\u0026 echo \"\u003d\u003e $file1 :: path\" \u003e \"$file1\"\n    dir2\u003d$(mktemp -d) \u0026\u0026 file2\u003d\"$dir2/file2\" \u0026\u0026 echo \"\u003d\u003e $file2 :: path\" \u003e \"$file2\"\n    # NIX_PATH works with a single non-prefixed lookup path.\n    NIX_PATH\u003d\"$dir1\" tvix -E \"\u003cfile1\u003e\" | cmp - \"$file1\"\n    # NIX_PATH works with multiple non-prefixed lookup paths.\n    NIX_PATH\u003d\"$dir1:$dir2\" tvix -E \"\u003cfile2\u003e\" | cmp - \"$file2\"\n    # NIX_PATH works with a single prefixed lookup path.\n    NIX_PATH\u003d\"one\u003d$one\" tvix -E \"\u003cone\u003e\" | cmp - \"$one\"\n    # NIX_PATH works with multiple prefixed lookup paths.\n    NIX_PATH\u003d\"one\u003d$one:two\u003d$two\" tvix -E \"\u003cone\u003e\" | cmp - \"$one\"\n    NIX_PATH\u003d\"one\u003d$one:two\u003d$two\" tvix -E \"\u003ctwo\u003e\" | cmp - \"$two\"\n    # NIX_PATH first entry takes precedence.\n    NIX_PATH\u003d\"one\u003d$one:one\u003d$two\" tvix -E \"\u003cone\u003e\" | cmp - \"$one\"\n    # The -I option works with a single non-prefixed lookup path.\n    tvix -I \"$dir1\" -E \"\u003cfile1\u003e\" | cmp - \"$file1\"\n    # The -I option works with multiple non-prefixed lookup paths.\n    tvix -I \"$dir1\" -I \"$dir2\" -E \"\u003cfile2\u003e\" | cmp - \"$file2\"\n    # The -I option works with a single prefixed lookup path.\n    tvix -I \"one\u003d$one\" -E \"\u003cone\u003e\" | cmp - \"$one\"\n    # The --extra-nix-path option works with a single prefixed lookup path.\n    tvix --extra-nix-path \"one\u003d$one\" -E \"\u003cone\u003e\" | cmp - \"$one\"\n    # The -I options works when passed multiple times with prefixed lookup paths.\n    tvix -I \"one\u003d$one\" -I \"two\u003d$two\" -E \"\u003cone\u003e\" | cmp - \"$one\"\n    tvix -I \"one\u003d$one\" -I \"two\u003d$two\" -E \"\u003ctwo\u003e\" | cmp - \"$two\"\n    # The first -I option takes precedence.\n    tvix -I \"one\u003d$one\" -I \"one\u003d$two\" -E \"\u003cone\u003e\" | cmp - \"$one\"\n    # Both NIX_PATH and the -I option work together and are additive.\n    NIX_PATH\u003d\"one\u003d$one\" tvix -I \"two\u003d$two\" -E \"\u003cone\u003e\" | cmp - \"$one\"\n    NIX_PATH\u003d\"one\u003d$one\" tvix -I \"two\u003d$two\" -E \"\u003ctwo\u003e\" | cmp - \"$two\"\n    # The -I option takes precedence over NIX_PATH.\n    NIX_PATH\u003d\"one\u003d$one\" tvix -I \"one\u003d$two\" -E \"\u003cone\u003e\" | cmp - \"$two\"\n    rm \"$one\"\n    rm \"$two\"\n    rm \"$file1\" \u0026\u0026 rmdir \"$dir1\"\n    rm \"$file2\" \u0026\u0026 rmdir \"$dir2\"\n\nThe above script assumes it\u0027s being run from inside the depot.\n\nChange-Id: I153e6de57939c0eeca1f9e479d807862ab69b2de\nReviewed-on: https://cl.tvl.fyi/c/depot/+/13189\nTested-by: BuildkiteCI\nReviewed-by: flokli \u003cflokli@flokli.de\u003e\n","web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003d2daa4832490eddcfb2b9a19d7f651252ec766062"}],"resolve_conflicts_web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003d2daa4832490eddcfb2b9a19d7f651252ec766062"}]},"parents_data":[{"branch_name":"refs/heads/canon","commit_id":"d76d699a539e9898354219ffe656a871dfe80b15","is_merged_in_target_branch":true,"change_id":"I794861aeaf63764689148cae841ce56f88752186","change_number":13205,"patch_set_number":5,"change_status":"MERGED"}],"branch":"refs/heads/canon","description":"Rebase"}},"requirements":[],"submit_records":[{"rule_name":"gerrit~PrologRule","status":"CLOSED","labels":[{"label":"Autosubmit","status":"MAY"},{"label":"Conformant-Commit-Message","status":"OK","applied_by":{"_account_id":1000107,"name":"benjaminedwardwebb","display_name":"benwebb","email":"benjaminedwardwebb@gmail.com","username":"benjaminedwardwebb","status":"https://benwebb.site"}},{"label":"All-Comments-Resolved","status":"OK","applied_by":{"_account_id":1000107,"name":"benjaminedwardwebb","display_name":"benwebb","email":"benjaminedwardwebb@gmail.com","username":"benjaminedwardwebb","status":"https://benwebb.site"}},{"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":1000036,"name":"flokli","email":"flokli@flokli.de","username":"flokli"}}]},{"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":[]}}]}
