)]}'
{"id":"snix~30655","triplet_id":"snix~canon~I6a6a6964a720fee8110606b11cb3a30f0d8b23f8","project":"snix","branch":"canon","attention_set":{},"removed_from_attention_set":{"1000004":{"account":{"_account_id":1000004,"name":"Florian Klink","email":"flokli@flokli.de","username":"flokli"},"last_update":"2025-08-05 16:53:07.000000000","reason":"removed on reply"},"1000056":{"account":{"_account_id":1000056,"name":"Oleksandr Knyshuk","email":"olk@disr.it","username":"k1gen"},"last_update":"2025-08-05 17:08:04.000000000","reason":"Change was submitted"}},"hashtags":[],"change_id":"I6a6a6964a720fee8110606b11cb3a30f0d8b23f8","subject":"feat(builtins/placeholder): enforce derivation output‐name rules","status":"MERGED","created":"2025-08-05 16:30:50.000000000","updated":"2025-08-05 17:08:04.000000000","submitted":"2025-08-05 17:08:04.000000000","submitter":{"_account_id":1000003,"name":"clbot","username":"clbot","tags":["SERVICE_USER"]},"total_comment_count":0,"unresolved_comment_count":0,"has_review_started":true,"submission_id":"30655","meta_rev_id":"b05204eb467678e1803025a6672b8716c895f539","_number":30655,"virtual_id_number":30655,"owner":{"_account_id":1000056,"name":"Oleksandr Knyshuk","email":"olk@disr.it","username":"k1gen"},"actions":{},"labels":{"Code-Review":{"approved":{"_account_id":1000004,"name":"Florian Klink","email":"flokli@flokli.de","username":"flokli"},"all":[{"value":0,"_account_id":1000003,"name":"clbot","username":"clbot","tags":["SERVICE_USER"]},{"value":0,"_account_id":1000002,"name":"besadii","username":"besadii","tags":["SERVICE_USER"]},{"tag":"autogenerated:gerrit:merged","value":2,"date":"2025-08-05 17:08:04.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":1000004,"name":"Florian Klink","email":"flokli@flokli.de","username":"flokli"},{"value":0,"_account_id":1000056,"name":"Oleksandr Knyshuk","email":"olk@disr.it","username":"k1gen"}],"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":[{"value":0,"_account_id":1000003,"name":"clbot","username":"clbot","tags":["SERVICE_USER"]},{"tag":"autogenerated:gerrit:merged","value":1,"date":"2025-08-05 17:08:04.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":1000056,"name":"Oleksandr Knyshuk","email":"olk@disr.it","username":"k1gen"}],"values":{"-1":"Fails"," 0":"No score","+1":"Verified"},"description":"","default_value":0,"optional":true},"Autosubmit":{"approved":{"_account_id":1000056,"name":"Oleksandr Knyshuk","email":"olk@disr.it","username":"k1gen"},"all":[{"value":0,"_account_id":1000003,"name":"clbot","username":"clbot","tags":["SERVICE_USER"]},{"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"},{"tag":"autogenerated:gerrit:merged","value":1,"date":"2025-08-05 17:08:04.000000000","_account_id":1000056,"name":"Oleksandr Knyshuk","email":"olk@disr.it","username":"k1gen"}],"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":1000003,"name":"clbot","username":"clbot","tags":["SERVICE_USER"]},{"_account_id":1000004,"name":"Florian Klink","email":"flokli@flokli.de","username":"flokli"},{"_account_id":1000056,"name":"Oleksandr Knyshuk","email":"olk@disr.it","username":"k1gen"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2025-08-05 16:30:50.000000000","updated_by":{"_account_id":1000056,"name":"Oleksandr Knyshuk","email":"olk@disr.it","username":"k1gen"},"reviewer":{"_account_id":1000004,"name":"Florian Klink","email":"flokli@flokli.de","username":"flokli"},"state":"REVIEWER"},{"updated":"2025-08-05 16:30:51.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":"2025-08-05 16:47:10.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":"2025-08-05 17:08:04.000000000","updated_by":{"_account_id":1000003,"name":"clbot","username":"clbot","tags":["SERVICE_USER"]},"reviewer":{"_account_id":1000003,"name":"clbot","username":"clbot","tags":["SERVICE_USER"]},"state":"REVIEWER"}],"messages":[{"id":"1ca7d262c4a5f516daa206dbd7fe088778a4ef4b","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000056,"name":"Oleksandr Knyshuk","email":"olk@disr.it","username":"k1gen"},"date":"2025-08-05 16:30:50.000000000","message":"Uploaded patch set 1: Autosubmit+1.","accounts_in_message":[],"_revision_number":1},{"id":"234701c5f6eaa47442cd9288025b1d8ced098417","tag":"autogenerated:gerrit:code-owners:addReviewer","author":{"_account_id":1000056,"name":"Oleksandr Knyshuk","email":"olk@disr.it","username":"k1gen"},"date":"2025-08-05 16:30:50.000000000","message":"\u003cGERRIT_ACCOUNT_1000004\u003e, who was added as reviewer owns the following files:\n* `snix/glue/src/builtins/derivation.rs`\n* `snix/glue/src/tests/snix_tests/eval-fail-placeholder-drv-name.nix`\n* `snix/glue/src/tests/snix_tests/eval-fail-placeholder-empty-name.nix`\n* `snix/glue/src/tests/snix_tests/eval-fail-placeholder-invalid-chars.nix`\n* `snix/glue/src/tests/snix_tests/eval-okay-placeholder-valid.exp`\n* `snix/glue/src/tests/snix_tests/eval-okay-placeholder-valid.nix`\n* `snix/nix-compat/src/derivation/mod.rs`\n* `snix/nix-compat/src/derivation/validate.rs`\n","accounts_in_message":[{"_account_id":1000004,"name":"Florian Klink","email":"flokli@flokli.de","username":"flokli"}],"_revision_number":1},{"id":"48c0fced132f9a4a75314d416c7746ffd2570063","tag":"autogenerated:buildkite~trigger","author":{"_account_id":1000002,"name":"besadii","username":"besadii","tags":["SERVICE_USER"]},"date":"2025-08-05 16:30:51.000000000","message":"Patch Set 1:\n\nStarted build for patchset #1 on: https://buildkite.com/snix/snix/builds/1546","accounts_in_message":[],"_revision_number":1},{"id":"b30e79a2ce15afda8051d1febba12dee40c7cb35","tag":"autogenerated:buildkite~result","author":{"_account_id":1000002,"name":"besadii","username":"besadii","tags":["SERVICE_USER"]},"date":"2025-08-05 16:47:10.000000000","message":"Patch Set 1: Verified-1\n\nBuild of patchset 1 failed: https://buildkite.com/snix/snix/builds/1546","accounts_in_message":[],"_revision_number":1},{"id":"95d342a5bb1545285e7a01e666b20a63e1860fd1","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000056,"name":"Oleksandr Knyshuk","email":"olk@disr.it","username":"k1gen"},"date":"2025-08-05 16:51:15.000000000","message":"Uploaded patch set 2.\n\nCopied Votes:\n* Autosubmit+1 (copy condition: \"changekind:NO_CHANGE OR **is:ANY**\")\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":"46e8e12964435c588e5e8cbffad4c3882760835b","tag":"autogenerated:buildkite~trigger","author":{"_account_id":1000002,"name":"besadii","username":"besadii","tags":["SERVICE_USER"]},"date":"2025-08-05 16:51:16.000000000","message":"Patch Set 2:\n\nStarted build for patchset #2 on: https://buildkite.com/snix/snix/builds/1548","accounts_in_message":[],"_revision_number":2},{"id":"375cd5a0db60057320f64f38c6e9caf5e387f211","author":{"_account_id":1000004,"name":"Florian Klink","email":"flokli@flokli.de","username":"flokli"},"date":"2025-08-05 16:53:07.000000000","message":"Patch Set 2: Code-Review+2","accounts_in_message":[],"_revision_number":2},{"id":"44a5a1f4837de67503afaec771de3fb0f41f8a3d","tag":"autogenerated:buildkite~result","author":{"_account_id":1000002,"name":"besadii","username":"besadii","tags":["SERVICE_USER"]},"date":"2025-08-05 17:07:57.000000000","message":"Patch Set 2: Verified+1\n\nBuild of patchset 2 passed: https://buildkite.com/snix/snix/builds/1548","accounts_in_message":[],"_revision_number":2},{"id":"b05204eb467678e1803025a6672b8716c895f539","tag":"autogenerated:gerrit:merged","author":{"_account_id":1000003,"name":"clbot","username":"clbot","tags":["SERVICE_USER"]},"date":"2025-08-05 17:08:04.000000000","message":"Change has been successfully rebased and submitted as 0ff37a72174fefe467fe9aeee86467ca30c9c24b","accounts_in_message":[],"_revision_number":3}],"current_revision_number":3,"current_revision":"0ff37a72174fefe467fe9aeee86467ca30c9c24b","revisions":{"d7db1dd4f8fd7941c7ab70d8c784c8a51cbf92f8":{"kind":"REWORK","_number":1,"created":"2025-08-05 16:30:50.000000000","uploader":{"_account_id":1000056,"name":"Oleksandr Knyshuk","email":"olk@disr.it","username":"k1gen"},"ref":"refs/changes/55/30655/1","fetch":{"anonymous http":{"url":"https://cl.snix.dev/snix","ref":"refs/changes/55/30655/1","commands":{"Checkout":"git fetch https://cl.snix.dev/snix refs/changes/55/30655/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://cl.snix.dev/snix refs/changes/55/30655/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://cl.snix.dev/snix refs/changes/55/30655/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://cl.snix.dev/snix refs/changes/55/30655/1"}}},"commit":{"parents":[{"commit":"a1cfdeb0efc338c69e0fe8f0b52bfde3f23da1b1","subject":"fix(nix-compat-derive-tests): Get rid of compile-tests flag"}],"author":{"name":"Oleksandr Knyshuk","email":"olk@disr.it","date":"2025-08-05 15:57:13.000000000","tz":120},"committer":{"name":"Oleksandr Knyshuk","email":"olk@disr.it","date":"2025-08-05 16:28:01.000000000","tz":120},"subject":"feat(builtins/placeholder): enforce derivation output‐name rules","message":"feat(builtins/placeholder): enforce derivation output‐name rules\n\n- factor out output‐name checks into `nix_compat::derivation::validate_output_name`\n- re-export `validate_output_name` in `nix-compat/src/derivation/mod.rs`\n- import and invoke `validate_output_name` in `builtins.placeholder`\n- add Nix tests to cover empty, reserved “drv”, invalid chars, and valid names\n\nCloses #38.\n\nChange-Id: I6a6a6964a720fee8110606b11cb3a30f0d8b23f8\n"},"branch":"refs/heads/canon"},"3241d38085f06ec6c11d6275c1f2731511aa972e":{"kind":"REWORK","_number":2,"created":"2025-08-05 16:51:15.000000000","uploader":{"_account_id":1000056,"name":"Oleksandr Knyshuk","email":"olk@disr.it","username":"k1gen"},"ref":"refs/changes/55/30655/2","fetch":{"anonymous http":{"url":"https://cl.snix.dev/snix","ref":"refs/changes/55/30655/2","commands":{"Checkout":"git fetch https://cl.snix.dev/snix refs/changes/55/30655/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://cl.snix.dev/snix refs/changes/55/30655/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://cl.snix.dev/snix refs/changes/55/30655/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://cl.snix.dev/snix refs/changes/55/30655/2"}}},"commit":{"parents":[{"commit":"a1cfdeb0efc338c69e0fe8f0b52bfde3f23da1b1","subject":"fix(nix-compat-derive-tests): Get rid of compile-tests flag"}],"author":{"name":"Oleksandr Knyshuk","email":"olk@disr.it","date":"2025-08-05 15:57:13.000000000","tz":120},"committer":{"name":"Oleksandr Knyshuk","email":"olk@disr.it","date":"2025-08-05 16:50:52.000000000","tz":120},"subject":"feat(builtins/placeholder): enforce derivation output‐name rules","message":"feat(builtins/placeholder): enforce derivation output‐name rules\n\n- factor out output‐name checks into `nix_compat::derivation::validate_output_name`\n- re-export `validate_output_name` in `nix-compat/src/derivation/mod.rs`\n- import and invoke `validate_output_name` in `builtins.placeholder`\n- add Nix tests to cover empty, reserved “drv”, invalid chars, and valid names\n\nCloses #38.\n\nChange-Id: I6a6a6964a720fee8110606b11cb3a30f0d8b23f8\n"},"branch":"refs/heads/canon"},"0ff37a72174fefe467fe9aeee86467ca30c9c24b":{"kind":"NO_CODE_CHANGE","_number":3,"created":"2025-08-05 17:08:04.000000000","uploader":{"_account_id":1000003,"name":"clbot","username":"clbot","tags":["SERVICE_USER"]},"ref":"refs/changes/55/30655/3","fetch":{"anonymous http":{"url":"https://cl.snix.dev/snix","ref":"refs/changes/55/30655/3","commands":{"Checkout":"git fetch https://cl.snix.dev/snix refs/changes/55/30655/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://cl.snix.dev/snix refs/changes/55/30655/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://cl.snix.dev/snix refs/changes/55/30655/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://cl.snix.dev/snix refs/changes/55/30655/3"}}},"commit":{"parents":[{"commit":"a1cfdeb0efc338c69e0fe8f0b52bfde3f23da1b1","subject":"fix(nix-compat-derive-tests): Get rid of compile-tests flag"}],"author":{"name":"Oleksandr Knyshuk","email":"olk@disr.it","date":"2025-08-05 15:57:13.000000000","tz":120},"committer":{"name":"clbot","email":"clbot@cl.snix.dev","date":"2025-08-05 17:08:04.000000000","tz":0},"subject":"feat(builtins/placeholder): enforce derivation output‐name rules","message":"feat(builtins/placeholder): enforce derivation output‐name rules\n\n- factor out output‐name checks into `nix_compat::derivation::validate_output_name`\n- re-export `validate_output_name` in `nix-compat/src/derivation/mod.rs`\n- import and invoke `validate_output_name` in `builtins.placeholder`\n- add Nix tests to cover empty, reserved “drv”, invalid chars, and valid names\n\nCloses #38.\n\nChange-Id: I6a6a6964a720fee8110606b11cb3a30f0d8b23f8\nReviewed-on: https://cl.snix.dev/c/snix/+/30655\nReviewed-by: Florian Klink \u003cflokli@flokli.de\u003e\nTested-by: besadii\nAutosubmit: Oleksandr Knyshuk \u003colk@disr.it\u003e\n"},"branch":"refs/heads/canon","description":"Rebase","conflicts":{"ours":"3241d38085f06ec6c11d6275c1f2731511aa972e","theirs":"a1cfdeb0efc338c69e0fe8f0b52bfde3f23da1b1","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","applied_by":{"_account_id":1000056,"name":"Oleksandr Knyshuk","email":"olk@disr.it","username":"k1gen"}}]},{"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":{}}}]}
