)]}'
{"id":"snix~31162","triplet_id":"snix~canon~I02407ab11ca106a92637bf01492b7e82db3e66fd","project":"snix","branch":"canon","attention_set":{},"removed_from_attention_set":{"1000089":{"account":{"_account_id":1000089,"name":"Vladimir Fetisov","email":"vladimir.fetisov@pm.me","username":"3timeslazy"},"last_update":"2026-04-17 11:20:57.000000000","reason":"Change was submitted"}},"hashtags":[],"change_id":"I02407ab11ca106a92637bf01492b7e82db3e66fd","subject":"fix(eval): handle url without trailing slash in fetchurl","status":"MERGED","created":"2026-04-17 00:33:15.000000000","updated":"2026-04-17 11:20:57.000000000","submitted":"2026-04-17 11:20:57.000000000","submitter":{"_account_id":1000089,"name":"Vladimir Fetisov","email":"vladimir.fetisov@pm.me","username":"3timeslazy"},"total_comment_count":0,"unresolved_comment_count":0,"has_review_started":true,"submission_id":"31162","meta_rev_id":"1878a817618177a3dc4cac41c5ad0f2270def89b","_number":31162,"virtual_id_number":31162,"owner":{"_account_id":1000089,"name":"Vladimir Fetisov","email":"vladimir.fetisov@pm.me","username":"3timeslazy"},"actions":{},"labels":{"Code-Review":{"approved":{"_account_id":1000004,"name":"Florian Klink","email":"flokli@flokli.de","username":"flokli"},"all":[{"value":0,"_account_id":1000002,"name":"besadii","username":"besadii","tags":["SERVICE_USER"]},{"tag":"autogenerated:gerrit:merged","value":2,"date":"2026-04-17 11:20:57.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":1000004,"name":"Florian Klink","email":"flokli@flokli.de","username":"flokli"},{"value":0,"_account_id":1000089,"name":"Vladimir Fetisov","email":"vladimir.fetisov@pm.me","username":"3timeslazy"}],"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,"optional":true},"Verified":{"approved":{"_account_id":1000002,"name":"besadii","username":"besadii","tags":["SERVICE_USER"]},"all":[{"tag":"autogenerated:gerrit:merged","value":1,"date":"2026-04-17 11:20:57.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":1000002,"name":"besadii","username":"besadii","tags":["SERVICE_USER"]},{"value":0,"_account_id":1000004,"name":"Florian Klink","email":"flokli@flokli.de","username":"flokli"},{"value":0,"_account_id":1000089,"name":"Vladimir Fetisov","email":"vladimir.fetisov@pm.me","username":"3timeslazy"}],"values":{"-1":"Fails"," 0":"No score","+1":"Verified"},"description":"","default_value":0,"optional":true},"Autosubmit":{"all":[{"value":0,"_account_id":1000002,"name":"besadii","username":"besadii","tags":["SERVICE_USER"]},{"value":0,"_account_id":1000004,"name":"Florian Klink","email":"flokli@flokli.de","username":"flokli"},{"value":0,"_account_id":1000089,"name":"Vladimir Fetisov","email":"vladimir.fetisov@pm.me","username":"3timeslazy"}],"values":{" 0":"Submit manually","+1":"Submit automatically"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":1000002,"name":"besadii","username":"besadii","tags":["SERVICE_USER"]},{"_account_id":1000004,"name":"Florian Klink","email":"flokli@flokli.de","username":"flokli"},{"_account_id":1000089,"name":"Vladimir Fetisov","email":"vladimir.fetisov@pm.me","username":"3timeslazy"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2026-04-17 00:33:16.000000000","updated_by":{"_account_id":1000002,"name":"besadii","username":"besadii","tags":["SERVICE_USER"]},"reviewer":{"_account_id":1000002,"name":"besadii","username":"besadii","tags":["SERVICE_USER"]},"state":"CC"},{"updated":"2026-04-17 00:59:06.000000000","updated_by":{"_account_id":1000002,"name":"besadii","username":"besadii","tags":["SERVICE_USER"]},"reviewer":{"_account_id":1000002,"name":"besadii","username":"besadii","tags":["SERVICE_USER"]},"state":"REVIEWER"},{"updated":"2026-04-17 09:26:19.000000000","updated_by":{"_account_id":1000004,"name":"Florian Klink","email":"flokli@flokli.de","username":"flokli"},"reviewer":{"_account_id":1000004,"name":"Florian Klink","email":"flokli@flokli.de","username":"flokli"},"state":"REVIEWER"}],"messages":[{"id":"6a858b6616118b01d5ca2550434b11f8addef0f6","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000089,"name":"Vladimir Fetisov","email":"vladimir.fetisov@pm.me","username":"3timeslazy"},"date":"2026-04-17 00:33:15.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"15bac0c3b2dfeee9f69b0aae00657f43dd695d7c","tag":"autogenerated:buildkite~trigger","author":{"_account_id":1000002,"name":"besadii","username":"besadii","tags":["SERVICE_USER"]},"date":"2026-04-17 00:33:16.000000000","message":"Patch Set 1:\n\nStarted build for patchset #1 on: https://buildkite.com/snix/snix/builds/2861","accounts_in_message":[],"_revision_number":1},{"id":"f20625b287e5bb4486b613790d6e3962130e09b5","tag":"autogenerated:buildkite~result","author":{"_account_id":1000002,"name":"besadii","username":"besadii","tags":["SERVICE_USER"]},"date":"2026-04-17 00:59:06.000000000","message":"Patch Set 1: Verified+1\n\nBuild of patchset 1 passed: https://buildkite.com/snix/snix/builds/2861","accounts_in_message":[],"_revision_number":1},{"id":"d793bb7237c345107b5f0a5cb569adbd0c30911d","author":{"_account_id":1000004,"name":"Florian Klink","email":"flokli@flokli.de","username":"flokli"},"date":"2026-04-17 09:26:19.000000000","message":"Patch Set 1: Code-Review+2","accounts_in_message":[],"_revision_number":1},{"id":"1878a817618177a3dc4cac41c5ad0f2270def89b","tag":"autogenerated:gerrit:merged","author":{"_account_id":1000089,"name":"Vladimir Fetisov","email":"vladimir.fetisov@pm.me","username":"3timeslazy"},"date":"2026-04-17 11:20:57.000000000","message":"Change has been successfully rebased and submitted as e952b5ae99242baed8f6ffa1b98aa80f4f02911e","accounts_in_message":[],"_revision_number":2}],"current_revision_number":2,"current_revision":"e952b5ae99242baed8f6ffa1b98aa80f4f02911e","revisions":{"12523e61649b1e9c051ecf6d287246c3e526308a":{"kind":"REWORK","_number":1,"created":"2026-04-17 00:33:15.000000000","uploader":{"_account_id":1000089,"name":"Vladimir Fetisov","email":"vladimir.fetisov@pm.me","username":"3timeslazy"},"ref":"refs/changes/62/31162/1","fetch":{"anonymous http":{"url":"https://cl.snix.dev/snix","ref":"refs/changes/62/31162/1","commands":{"Checkout":"git fetch https://cl.snix.dev/snix refs/changes/62/31162/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://cl.snix.dev/snix refs/changes/62/31162/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://cl.snix.dev/snix refs/changes/62/31162/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://cl.snix.dev/snix refs/changes/62/31162/1"}}},"commit":{"parents":[{"commit":"a6fd04300ed4048f18e8f201a911b4eb0219fec3","subject":"chore(snix): patch tonic and hyper for HTTP2 GOAWAY fixes"}],"author":{"name":"Vladimir Fetisov","email":"vladimir.fetisov@pm.me","date":"2026-04-17 00:27:48.000000000","tz":120},"committer":{"name":"Vladimir Fetisov","email":"vladimir.fetisov@pm.me","date":"2026-04-17 00:28:22.000000000","tz":120},"subject":"fix(eval): handle url without trailing slash in fetchurl","message":"fix(eval): handle url without trailing slash in fetchurl\n\nWhen the URL path is empty CppNix uses host as basename, but Snix uses\nan empty string which fails evaluation for URLs without a path\n\nExample:\n\n```\n$ snix-eval -E \u0027builtins.fetchurl \"https://snix.dev\"\u0027\nError calculating store path for fetcher output: Invalid Store Path: Invalid length\n\n$ nix-instantiate --eval -E \u0027builtins.fetchurl \"https://snix.dev\"\u0027\n\"/nix/store/g6ikcrbag08rzpm7dyq2f8assngsgjvv-snix.dev\"\n```\n\nChange-Id: I02407ab11ca106a92637bf01492b7e82db3e66fd\n"},"branch":"refs/heads/canon"},"e952b5ae99242baed8f6ffa1b98aa80f4f02911e":{"kind":"NO_CODE_CHANGE","_number":2,"created":"2026-04-17 11:20:57.000000000","uploader":{"_account_id":1000089,"name":"Vladimir Fetisov","email":"vladimir.fetisov@pm.me","username":"3timeslazy"},"ref":"refs/changes/62/31162/2","fetch":{"anonymous http":{"url":"https://cl.snix.dev/snix","ref":"refs/changes/62/31162/2","commands":{"Checkout":"git fetch https://cl.snix.dev/snix refs/changes/62/31162/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://cl.snix.dev/snix refs/changes/62/31162/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://cl.snix.dev/snix refs/changes/62/31162/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://cl.snix.dev/snix refs/changes/62/31162/2"}}},"commit":{"parents":[{"commit":"a6fd04300ed4048f18e8f201a911b4eb0219fec3","subject":"chore(snix): patch tonic and hyper for HTTP2 GOAWAY fixes"}],"author":{"name":"Vladimir Fetisov","email":"vladimir.fetisov@pm.me","date":"2026-04-17 00:27:48.000000000","tz":120},"committer":{"name":"Vladimir Fetisov","email":"vladimir.fetisov@pm.me","date":"2026-04-17 11:20:57.000000000","tz":0},"subject":"fix(eval): handle url without trailing slash in fetchurl","message":"fix(eval): handle url without trailing slash in fetchurl\n\nWhen the URL path is empty CppNix uses host as basename, but Snix uses\nan empty string which fails evaluation for URLs without a path\n\nExample:\n\n```\n$ snix-eval -E \u0027builtins.fetchurl \"https://snix.dev\"\u0027\nError calculating store path for fetcher output: Invalid Store Path: Invalid length\n\n$ nix-instantiate --eval -E \u0027builtins.fetchurl \"https://snix.dev\"\u0027\n\"/nix/store/g6ikcrbag08rzpm7dyq2f8assngsgjvv-snix.dev\"\n```\n\nChange-Id: I02407ab11ca106a92637bf01492b7e82db3e66fd\nReviewed-on: https://cl.snix.dev/c/snix/+/31162\nTested-by: besadii\nReviewed-by: Florian Klink \u003cflokli@flokli.de\u003e\n"},"branch":"refs/heads/canon","description":"Rebase","conflicts":{"ours":"12523e61649b1e9c051ecf6d287246c3e526308a","theirs":"a6fd04300ed4048f18e8f201a911b4eb0219fec3","contains_conflicts":false}}},"requirements":[],"submit_records":[{"rule_name":"gerrit~DefaultSubmitRule","status":"CLOSED","labels":[{"label":"Code-Review","status":"MAY","applied_by":{"_account_id":1000004,"name":"Florian Klink","email":"flokli@flokli.de","username":"flokli"}},{"label":"Verified","status":"MAY","applied_by":{"_account_id":1000002,"name":"besadii","username":"besadii","tags":["SERVICE_USER"]}},{"label":"Autosubmit","status":"MAY"}]},{"rule_name":"Code-Owners","status":"CLOSED"}],"submit_requirements":[{"name":"Verified","description":"Label \u0027Verified+1\u0027 is required","status":"SATISFIED","is_legacy":false,"applicability_expression_result":{"fulfilled":true,"status":"PASS"},"submittability_expression_result":{"expression":"label:Verified\u003dMAX,user\u003dnon_uploader","fulfilled":true,"status":"PASS","passing_atoms":["label:Verified\u003dMAX,user\u003dnon_uploader"],"failing_atoms":[],"atom_explanations":{"label:Verified\u003dMAX,user\u003dnon_uploader":""}}},{"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":[],"atom_explanations":{}}},{"name":"Code-Review","description":"At least one maximum vote for label \u0027Code-Review\u0027 is required, minimum votes block submits","status":"SATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Code-Review\u003dMAX,user\u003dnon_uploader AND -label:Code-Review\u003dMIN","fulfilled":true,"status":"PASS","passing_atoms":["label:Code-Review\u003dMAX,user\u003dnon_uploader"],"failing_atoms":["label:Code-Review\u003dMIN"],"atom_explanations":{"label:Code-Review\u003dMAX,user\u003dnon_uploader":"","label:Code-Review\u003dMIN":""}}},{"name":"No-Unresolved-Comments","description":"Changes that have unresolved comments are not submittable.","status":"NOT_APPLICABLE","is_legacy":false,"applicability_expression_result":{"fulfilled":false,"status":"FAIL"},"submittability_expression_result":{"expression":"-has:unresolved","fulfilled":true,"status":"NOT_EVALUATED","passing_atoms":[],"failing_atoms":[],"atom_explanations":{}}}]}
