)]}'
{"id":"depot~2434","triplet_id":"depot~canon~Ia335ca8b0881447fbbcb6bcd80f49feb835f1715","project":"depot","branch":"canon","attention_set":{},"removed_from_attention_set":{"1000034":{"account":{"_account_id":1000034,"name":"sterni","email":"sternenseemann@systemli.org","username":"sterni"},"last_update":"2021-01-30 15:33:39.000000000","reason":"sterni replied on the change"},"1000013":{"account":{"_account_id":1000013,"name":"Profpatsch","email":"mail@profpatsch.de","username":"Profpatsch"},"last_update":"2021-01-30 15:38:46.000000000","reason":"Profpatsch replied on the change"}},"hashtags":[],"change_id":"Ia335ca8b0881447fbbcb6bcd80f49feb835f1715","subject":"feat(nix): add nix.tag, a way of discriminating via tagged unions","status":"MERGED","created":"2021-01-23 18:04:53.000000000","updated":"2021-01-30 15:42:11.000000000","submitted":"2021-01-30 15:41:08.000000000","submitter":{"_account_id":1000013,"name":"Profpatsch","email":"mail@profpatsch.de","username":"Profpatsch"},"total_comment_count":15,"unresolved_comment_count":0,"has_review_started":true,"submission_id":"2434","meta_rev_id":"6a068939f9d5d6d875c0d1802011f0c804906ab8","_number":2434,"virtual_id_number":2434,"owner":{"_account_id":1000013,"name":"Profpatsch","email":"mail@profpatsch.de","username":"Profpatsch"},"actions":{},"labels":{"Code-Review":{"approved":{"_account_id":1000034,"name":"sterni","email":"sternenseemann@systemli.org","username":"sterni"},"all":[{"tag":"autogenerated:gerrit:merged","value":2,"date":"2021-01-30 15:41:08.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":1000034,"name":"sterni","email":"sternenseemann@systemli.org","username":"sterni"},{"value":0,"_account_id":1000014,"name":"BuildkiteCI","username":"buildkite","tags":["SERVICE_USER"]},{"value":0,"_account_id":1000013,"name":"Profpatsch","email":"mail@profpatsch.de","username":"Profpatsch"}],"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":1000034,"name":"sterni","email":"sternenseemann@systemli.org","username":"sterni"},{"tag":"autogenerated:gerrit:merged","value":1,"date":"2021-01-30 15:41:08.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":1000014,"name":"BuildkiteCI","username":"buildkite","tags":["SERVICE_USER"]},{"value":0,"_account_id":1000013,"name":"Profpatsch","email":"mail@profpatsch.de","username":"Profpatsch"}],"values":{"-1":"Fails"," 0":"No score","+1":"Verified"},"description":"","default_value":0},"Autosubmit":{"all":[{"value":0,"_account_id":1000034,"name":"sterni","email":"sternenseemann@systemli.org","username":"sterni"},{"value":0,"_account_id":1000014,"name":"BuildkiteCI","username":"buildkite","tags":["SERVICE_USER"]},{"value":0,"_account_id":1000013,"name":"Profpatsch","email":"mail@profpatsch.de","username":"Profpatsch"}],"values":{" 0":"Submit manually","+1":"Submit automatically"},"description":"","default_value":0,"optional":true},"All-Comments-Resolved":{"approved":{"_account_id":1000013,"name":"Profpatsch","email":"mail@profpatsch.de","username":"Profpatsch"},"all":[{"value":0,"_account_id":1000034,"name":"sterni","email":"sternenseemann@systemli.org","username":"sterni"},{"value":0,"_account_id":1000014,"name":"BuildkiteCI","username":"buildkite","tags":["SERVICE_USER"]},{"value":0,"_account_id":1000013,"name":"Profpatsch","email":"mail@profpatsch.de","username":"Profpatsch"}]},"Conformant-Commit-Message":{"approved":{"_account_id":1000013,"name":"Profpatsch","email":"mail@profpatsch.de","username":"Profpatsch"},"all":[{"value":0,"_account_id":1000034,"name":"sterni","email":"sternenseemann@systemli.org","username":"sterni"},{"value":0,"_account_id":1000014,"name":"BuildkiteCI","username":"buildkite","tags":["SERVICE_USER"]},{"value":0,"_account_id":1000013,"name":"Profpatsch","email":"mail@profpatsch.de","username":"Profpatsch"}]}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":1000013,"name":"Profpatsch","email":"mail@profpatsch.de","username":"Profpatsch"},{"_account_id":1000014,"name":"BuildkiteCI","username":"buildkite","tags":["SERVICE_USER"]},{"_account_id":1000034,"name":"sterni","email":"sternenseemann@systemli.org","username":"sterni"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2021-01-23 18:06:32.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":"2021-01-23 18:30:58.000000000","updated_by":{"_account_id":1000034,"name":"sterni","email":"sternenseemann@systemli.org","username":"sterni"},"reviewer":{"_account_id":1000034,"name":"sterni","email":"sternenseemann@systemli.org","username":"sterni"},"state":"CC"},{"updated":"2021-01-27 14:26:52.000000000","updated_by":{"_account_id":1000034,"name":"sterni","email":"sternenseemann@systemli.org","username":"sterni"},"reviewer":{"_account_id":1000034,"name":"sterni","email":"sternenseemann@systemli.org","username":"sterni"},"state":"REVIEWER"}],"messages":[{"id":"9368c28ca3dd9c7fd761c7e8554bf182a75162cf","tag":"autogenerated:gerrit:newWipPatchSet","author":{"_account_id":1000013,"name":"Profpatsch","email":"mail@profpatsch.de","username":"Profpatsch"},"date":"2021-01-23 18:04:53.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"ca92a556787deb9583bc8319efe78a5461e51f19","author":{"_account_id":1000014,"name":"BuildkiteCI","username":"buildkite","tags":["SERVICE_USER"]},"date":"2021-01-23 18:06:32.000000000","message":"Patch Set 1: Verified+1\n\nBuild of patchset 1 passed: https://buildkite.com/tvl/depot/builds/4763","accounts_in_message":[],"_revision_number":1},{"id":"f5275fa91dc01ec94c920771b50c8cc2fd1e91ec","author":{"_account_id":1000034,"name":"sterni","email":"sternenseemann@systemli.org","username":"sterni"},"date":"2021-01-23 18:30:58.000000000","message":"Patch Set 1:\n\n(1 comment)","accounts_in_message":[],"_revision_number":1},{"id":"16ddd1b4a24941a2199bb4cc56ffc0df3c04c770","author":{"_account_id":1000013,"name":"Profpatsch","email":"mail@profpatsch.de","username":"Profpatsch"},"date":"2021-01-27 13:42:19.000000000","message":"Patch Set 1:\n\n(1 comment)\n\nThis change is ready for review.","accounts_in_message":[],"_revision_number":1},{"id":"87f9adc7f18028c0e543d80d4b0487c1825aceed","author":{"_account_id":1000034,"name":"sterni","email":"sternenseemann@systemli.org","username":"sterni"},"date":"2021-01-27 14:26:52.000000000","message":"Patch Set 1: Code-Review-2\n\n(4 comments)","accounts_in_message":[],"_revision_number":1},{"id":"3f881187a6322dc1e6d609716d84d80ccce29539","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000013,"name":"Profpatsch","email":"mail@profpatsch.de","username":"Profpatsch"},"date":"2021-01-30 15:07:57.000000000","message":"Uploaded patch set 2.","accounts_in_message":[],"_revision_number":2},{"id":"19835823dcc57896240acd6ad1f36d4327fb7fcf","author":{"_account_id":1000014,"name":"BuildkiteCI","username":"buildkite","tags":["SERVICE_USER"]},"date":"2021-01-30 15:09:33.000000000","message":"Patch Set 2: Verified+1\n\nBuild of patchset 2 passed: https://buildkite.com/tvl/depot/builds/4892","accounts_in_message":[],"_revision_number":2},{"id":"a4d82d56af1c9a0d289e83c21396971aba49c0f3","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000013,"name":"Profpatsch","email":"mail@profpatsch.de","username":"Profpatsch"},"date":"2021-01-30 15:16:10.000000000","message":"Uploaded patch set 3.","accounts_in_message":[],"_revision_number":3},{"id":"d8d748dd9f8fb79633a1bb1ea554f5f6d66f02bb","author":{"_account_id":1000013,"name":"Profpatsch","email":"mail@profpatsch.de","username":"Profpatsch"},"date":"2021-01-30 15:17:09.000000000","message":"Patch Set 3:\n\n(4 comments)","accounts_in_message":[],"_revision_number":3},{"id":"c15774f59e8b925ba6271c1ee9dbd67f334de793","author":{"_account_id":1000014,"name":"BuildkiteCI","username":"buildkite","tags":["SERVICE_USER"]},"date":"2021-01-30 15:17:15.000000000","message":"Patch Set 3: Verified+1\n\nBuild of patchset 3 passed: https://buildkite.com/tvl/depot/builds/4894","accounts_in_message":[],"_revision_number":3},{"id":"25a74ea8a4a53eaf633c1933cef6bd6bfb6dbaad","author":{"_account_id":1000034,"name":"sterni","email":"sternenseemann@systemli.org","username":"sterni"},"date":"2021-01-30 15:25:36.000000000","message":"Patch Set 3: -Code-Review\n\n(1 comment)","accounts_in_message":[],"_revision_number":3},{"id":"63e2a7510d6e53067ab4a373cb105eff6ac50a2e","author":{"_account_id":1000013,"name":"Profpatsch","email":"mail@profpatsch.de","username":"Profpatsch"},"date":"2021-01-30 15:31:00.000000000","message":"Patch Set 3:\n\n(1 comment)","accounts_in_message":[],"_revision_number":3},{"id":"a2289c50755d5e996401296729529a01bf325915","author":{"_account_id":1000034,"name":"sterni","email":"sternenseemann@systemli.org","username":"sterni"},"date":"2021-01-30 15:33:39.000000000","message":"Patch Set 3: Code-Review-1\n\n(1 comment)","accounts_in_message":[],"_revision_number":3},{"id":"2220bf4b6034a277373011ddf4a8e94b719342db","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000013,"name":"Profpatsch","email":"mail@profpatsch.de","username":"Profpatsch"},"date":"2021-01-30 15:36:45.000000000","message":"Uploaded patch set 4.","accounts_in_message":[],"_revision_number":4},{"id":"8a1c19d76142fe50b901a4beb2e79d8376fb1eb3","author":{"_account_id":1000014,"name":"BuildkiteCI","username":"buildkite","tags":["SERVICE_USER"]},"date":"2021-01-30 15:37:47.000000000","message":"Patch Set 4: Verified+1\n\nBuild of patchset 4 passed: https://buildkite.com/tvl/depot/builds/4897","accounts_in_message":[],"_revision_number":4},{"id":"bc98f115beae3b570521886e84493c5a55a00034","author":{"_account_id":1000034,"name":"sterni","email":"sternenseemann@systemli.org","username":"sterni"},"date":"2021-01-30 15:38:06.000000000","message":"Patch Set 4: Code-Review+2","accounts_in_message":[],"_revision_number":4},{"id":"fa1c242119a46cd67acda7a9f9d7d9816b1bfff7","author":{"_account_id":1000034,"name":"sterni","email":"sternenseemann@systemli.org","username":"sterni"},"date":"2021-01-30 15:38:25.000000000","message":"Patch Set 4:\n\n(1 comment)","accounts_in_message":[],"_revision_number":4},{"id":"0330775f208ff6f7294b77d05dfd6f5698c2a06e","author":{"_account_id":1000013,"name":"Profpatsch","email":"mail@profpatsch.de","username":"Profpatsch"},"date":"2021-01-30 15:38:46.000000000","message":"Patch Set 4:\n\n(1 comment)","accounts_in_message":[],"_revision_number":4},{"id":"820d9f1f082e3b2fe0370bb6bd79010094472095","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000013,"name":"Profpatsch","email":"mail@profpatsch.de","username":"Profpatsch"},"date":"2021-01-30 15:39:43.000000000","message":"Uploaded patch set 5: Patch Set 4 was rebased.","accounts_in_message":[],"_revision_number":5},{"id":"f8445e09b7998cfd9d7078816397e47bd97804c9","author":{"_account_id":1000014,"name":"BuildkiteCI","username":"buildkite","tags":["SERVICE_USER"]},"date":"2021-01-30 15:40:42.000000000","message":"Patch Set 5: Verified+1\n\nBuild of patchset 5 passed: https://buildkite.com/tvl/depot/builds/4899","accounts_in_message":[],"_revision_number":5},{"id":"a720d525499ce37cb4ef912b2283f98f08494883","tag":"autogenerated:gerrit:merged","author":{"_account_id":1000013,"name":"Profpatsch","email":"mail@profpatsch.de","username":"Profpatsch"},"date":"2021-01-30 15:41:08.000000000","message":"Change has been successfully rebased and submitted as e4a7704583812786d90ddc1f3aa639b2866e18e2","accounts_in_message":[],"_revision_number":6},{"id":"6a068939f9d5d6d875c0d1802011f0c804906ab8","author":{"_account_id":1000014,"name":"BuildkiteCI","username":"buildkite","tags":["SERVICE_USER"]},"date":"2021-01-30 15:42:11.000000000","message":"Patch Set 6:\n\nBuild of patchset 6 passed: https://buildkite.com/tvl/depot/builds/4900","accounts_in_message":[],"_revision_number":6}],"current_revision_number":6,"current_revision":"e4a7704583812786d90ddc1f3aa639b2866e18e2","revisions":{"c770604e09978280031a163cefc6c8a9d964a3f6":{"kind":"REWORK","_number":1,"created":"2021-01-23 18:04:53.000000000","uploader":{"_account_id":1000013,"name":"Profpatsch","email":"mail@profpatsch.de","username":"Profpatsch"},"ref":"refs/changes/34/2434/1","fetch":{"anonymous http":{"url":"https://cl.tvl.fyi/depot","ref":"refs/changes/34/2434/1","commands":{"Checkout":"git fetch https://cl.tvl.fyi/depot refs/changes/34/2434/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://cl.tvl.fyi/depot refs/changes/34/2434/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://cl.tvl.fyi/depot refs/changes/34/2434/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://cl.tvl.fyi/depot refs/changes/34/2434/1"}}},"commit":{"parents":[{"commit":"9c71969ec5580aaecb03ade416f65bbe77fa21d2","subject":"feat(nix): add mapAttrsMaybe","web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003d9c71969ec5580aaecb03ade416f65bbe77fa21d2"}]}],"author":{"name":"Profpatsch","email":"mail@profpatsch.de","date":"2021-01-23 16:23:39.000000000","tz":60},"committer":{"name":"Profpatsch","email":"mail@profpatsch.de","date":"2021-01-23 16:31:33.000000000","tz":60},"subject":"feat(nix): add nix.tag, a way of discriminating via tagged unions","message":"feat(nix): add nix.tag, a way of discriminating via tagged unions\n\nIntroduces the concept of a “tag”, a single-keyed attrset which\nannotates a nix value with a name.\nThis can be used to implement tagged unions (by implying the list of\npossible tags is well-known), which has some overlap with how\n`nix.yants` does it.\n\nHowever, the more fascinating use-case is in concert with a\nso-called discriminator, `match` and hylomorphisms.\n\nThe discriminator can take a nix value, and add tags to it based on\nsome predicate.\nWith `match`, we can then use that information to convert the\ndiscriminated values again.\nWith `hylo`, we can combine both the “constructive” discriminator step\nwith the “destructive” match step to recursively walk over a nix data\nstructure (based on a description of how to recurse, e.g. through attrset\nvalues or list values), and then apply a transformation in one go.\n\nChange-Id: Ia335ca8b0881447fbbcb6bcd80f49feb835f1715\n","web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003dc770604e09978280031a163cefc6c8a9d964a3f6"}],"resolve_conflicts_web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003dc770604e09978280031a163cefc6c8a9d964a3f6"}]},"parents_data":[{"branch_name":"refs/heads/canon","commit_id":"9c71969ec5580aaecb03ade416f65bbe77fa21d2","is_merged_in_target_branch":false,"change_id":"Ibd2fb4fa40c645d12ceda46894047d5c9bda1c9e","change_number":2306,"patch_set_number":9,"change_status":"NEW"}],"branch":"refs/heads/canon"},"2b13a7007f1dec783dde2b8b7a23b39e0e0b5bcf":{"kind":"REWORK","_number":2,"created":"2021-01-30 15:07:57.000000000","uploader":{"_account_id":1000013,"name":"Profpatsch","email":"mail@profpatsch.de","username":"Profpatsch"},"ref":"refs/changes/34/2434/2","fetch":{"anonymous http":{"url":"https://cl.tvl.fyi/depot","ref":"refs/changes/34/2434/2","commands":{"Checkout":"git fetch https://cl.tvl.fyi/depot refs/changes/34/2434/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://cl.tvl.fyi/depot refs/changes/34/2434/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://cl.tvl.fyi/depot refs/changes/34/2434/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://cl.tvl.fyi/depot refs/changes/34/2434/2"}}},"commit":{"parents":[{"commit":"81503f4a7e8d7c2bfe5d781f09c1267f4b949e7b","subject":"feat(nix): add mapAttrsMaybe","web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003d81503f4a7e8d7c2bfe5d781f09c1267f4b949e7b"}]}],"author":{"name":"Profpatsch","email":"mail@profpatsch.de","date":"2021-01-23 16:23:39.000000000","tz":60},"committer":{"name":"Profpatsch","email":"mail@profpatsch.de","date":"2021-01-30 15:07:51.000000000","tz":60},"subject":"feat(nix): add nix.tag, a way of discriminating via tagged unions","message":"feat(nix): add nix.tag, a way of discriminating via tagged unions\n\nIntroduces the concept of a “tag”, a single-keyed attrset which\nannotates a nix value with a name.\nThis can be used to implement tagged unions (by implying the list of\npossible tags is well-known), which has some overlap with how\n`nix.yants` does it.\n\nHowever, the more fascinating use-case is in concert with a\nso-called discriminator, `match` and hylomorphisms.\n\nThe discriminator can take a nix value, and add tags to it based on\nsome predicate.\nWith `match`, we can then use that information to convert the\ndiscriminated values again.\nWith `hylo`, we can combine both the “constructive” discriminator step\nwith the “destructive” match step to recursively walk over a nix data\nstructure (based on a description of how to recurse, e.g. through attrset\nvalues or list values), and then apply a transformation in one go.\n\nChange-Id: Ia335ca8b0881447fbbcb6bcd80f49feb835f1715\n","web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003d2b13a7007f1dec783dde2b8b7a23b39e0e0b5bcf"}],"resolve_conflicts_web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003d2b13a7007f1dec783dde2b8b7a23b39e0e0b5bcf"}]},"parents_data":[{"branch_name":"refs/heads/canon","commit_id":"81503f4a7e8d7c2bfe5d781f09c1267f4b949e7b","is_merged_in_target_branch":false,"change_id":"Ibd2fb4fa40c645d12ceda46894047d5c9bda1c9e","change_number":2306,"patch_set_number":10,"change_status":"NEW"}],"branch":"refs/heads/canon"},"2f6ac057ba251accc3bffd8cc6c4df3b44fb0976":{"kind":"REWORK","_number":3,"created":"2021-01-30 15:16:10.000000000","uploader":{"_account_id":1000013,"name":"Profpatsch","email":"mail@profpatsch.de","username":"Profpatsch"},"ref":"refs/changes/34/2434/3","fetch":{"anonymous http":{"url":"https://cl.tvl.fyi/depot","ref":"refs/changes/34/2434/3","commands":{"Checkout":"git fetch https://cl.tvl.fyi/depot refs/changes/34/2434/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://cl.tvl.fyi/depot refs/changes/34/2434/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://cl.tvl.fyi/depot refs/changes/34/2434/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://cl.tvl.fyi/depot refs/changes/34/2434/3"}}},"commit":{"parents":[{"commit":"81503f4a7e8d7c2bfe5d781f09c1267f4b949e7b","subject":"feat(nix): add mapAttrsMaybe","web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003d81503f4a7e8d7c2bfe5d781f09c1267f4b949e7b"}]}],"author":{"name":"Profpatsch","email":"mail@profpatsch.de","date":"2021-01-23 16:23:39.000000000","tz":60},"committer":{"name":"Profpatsch","email":"mail@profpatsch.de","date":"2021-01-30 15:16:09.000000000","tz":60},"subject":"feat(nix): add nix.tag, a way of discriminating via tagged unions","message":"feat(nix): add nix.tag, a way of discriminating via tagged unions\n\nIntroduces the concept of a “tag”, a single-keyed attrset which\nannotates a nix value with a name.\nThis can be used to implement tagged unions (by implying the list of\npossible tags is well-known), which has some overlap with how\n`nix.yants` does it.\n\nHowever, the more fascinating use-case is in concert with a\nso-called discriminator, `match` and hylomorphisms.\n\nThe discriminator can take a nix value, and add tags to it based on\nsome predicate.\nWith `match`, we can then use that information to convert the\ndiscriminated values again.\nWith `hylo`, we can combine both the “constructive” discriminator step\nwith the “destructive” match step to recursively walk over a nix data\nstructure (based on a description of how to recurse, e.g. through attrset\nvalues or list values), and then apply a transformation in one go.\n\nChange-Id: Ia335ca8b0881447fbbcb6bcd80f49feb835f1715\n","web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003d2f6ac057ba251accc3bffd8cc6c4df3b44fb0976"}],"resolve_conflicts_web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003d2f6ac057ba251accc3bffd8cc6c4df3b44fb0976"}]},"parents_data":[{"branch_name":"refs/heads/canon","commit_id":"81503f4a7e8d7c2bfe5d781f09c1267f4b949e7b","is_merged_in_target_branch":false,"change_id":"Ibd2fb4fa40c645d12ceda46894047d5c9bda1c9e","change_number":2306,"patch_set_number":10,"change_status":"NEW"}],"branch":"refs/heads/canon"},"d24d8a4a4f45b09849de630df9b3cfd79b77c848":{"kind":"REWORK","_number":4,"created":"2021-01-30 15:36:45.000000000","uploader":{"_account_id":1000013,"name":"Profpatsch","email":"mail@profpatsch.de","username":"Profpatsch"},"ref":"refs/changes/34/2434/4","fetch":{"anonymous http":{"url":"https://cl.tvl.fyi/depot","ref":"refs/changes/34/2434/4","commands":{"Checkout":"git fetch https://cl.tvl.fyi/depot refs/changes/34/2434/4 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://cl.tvl.fyi/depot refs/changes/34/2434/4 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://cl.tvl.fyi/depot refs/changes/34/2434/4 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://cl.tvl.fyi/depot refs/changes/34/2434/4"}}},"commit":{"parents":[{"commit":"81503f4a7e8d7c2bfe5d781f09c1267f4b949e7b","subject":"feat(nix): add mapAttrsMaybe","web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003d81503f4a7e8d7c2bfe5d781f09c1267f4b949e7b"}]}],"author":{"name":"Profpatsch","email":"mail@profpatsch.de","date":"2021-01-23 16:23:39.000000000","tz":60},"committer":{"name":"Profpatsch","email":"mail@profpatsch.de","date":"2021-01-30 15:36:42.000000000","tz":60},"subject":"feat(nix): add nix.tag, a way of discriminating via tagged unions","message":"feat(nix): add nix.tag, a way of discriminating via tagged unions\n\nIntroduces the concept of a “tag”, a single-keyed attrset which\nannotates a nix value with a name.\nThis can be used to implement tagged unions (by implying the list of\npossible tags is well-known), which has some overlap with how\n`nix.yants` does it.\n\nHowever, the more fascinating use-case is in concert with a\nso-called discriminator, `match` and hylomorphisms.\n\nThe discriminator can take a nix value, and add tags to it based on\nsome predicate.\nWith `match`, we can then use that information to convert the\ndiscriminated values again.\nWith `hylo`, we can combine both the “constructive” discriminator step\nwith the “destructive” match step to recursively walk over a nix data\nstructure (based on a description of how to recurse, e.g. through attrset\nvalues or list values), and then apply a transformation in one go.\n\nChange-Id: Ia335ca8b0881447fbbcb6bcd80f49feb835f1715\n","web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003dd24d8a4a4f45b09849de630df9b3cfd79b77c848"}],"resolve_conflicts_web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003dd24d8a4a4f45b09849de630df9b3cfd79b77c848"}]},"parents_data":[{"branch_name":"refs/heads/canon","commit_id":"81503f4a7e8d7c2bfe5d781f09c1267f4b949e7b","is_merged_in_target_branch":false,"change_id":"Ibd2fb4fa40c645d12ceda46894047d5c9bda1c9e","change_number":2306,"patch_set_number":10,"change_status":"NEW"}],"branch":"refs/heads/canon"},"4310f715bd5efe3af792441aa6d3eb95c1da30fa":{"kind":"TRIVIAL_REBASE","_number":5,"created":"2021-01-30 15:39:43.000000000","uploader":{"_account_id":1000013,"name":"Profpatsch","email":"mail@profpatsch.de","username":"Profpatsch"},"ref":"refs/changes/34/2434/5","fetch":{"anonymous http":{"url":"https://cl.tvl.fyi/depot","ref":"refs/changes/34/2434/5","commands":{"Checkout":"git fetch https://cl.tvl.fyi/depot refs/changes/34/2434/5 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://cl.tvl.fyi/depot refs/changes/34/2434/5 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://cl.tvl.fyi/depot refs/changes/34/2434/5 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://cl.tvl.fyi/depot refs/changes/34/2434/5"}}},"commit":{"parents":[{"commit":"5da7ee9e8a7e3e790963b52f6427027a8823d75a","subject":"feat(nix/readTree): add tests of the traversal logic in README","web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003d5da7ee9e8a7e3e790963b52f6427027a8823d75a"}]}],"author":{"name":"Profpatsch","email":"mail@profpatsch.de","date":"2021-01-23 16:23:39.000000000","tz":60},"committer":{"name":"Profpatsch","email":"mail@profpatsch.de","date":"2021-01-30 15:39:41.000000000","tz":60},"subject":"feat(nix): add nix.tag, a way of discriminating via tagged unions","message":"feat(nix): add nix.tag, a way of discriminating via tagged unions\n\nIntroduces the concept of a “tag”, a single-keyed attrset which\nannotates a nix value with a name.\nThis can be used to implement tagged unions (by implying the list of\npossible tags is well-known), which has some overlap with how\n`nix.yants` does it.\n\nHowever, the more fascinating use-case is in concert with a\nso-called discriminator, `match` and hylomorphisms.\n\nThe discriminator can take a nix value, and add tags to it based on\nsome predicate.\nWith `match`, we can then use that information to convert the\ndiscriminated values again.\nWith `hylo`, we can combine both the “constructive” discriminator step\nwith the “destructive” match step to recursively walk over a nix data\nstructure (based on a description of how to recurse, e.g. through attrset\nvalues or list values), and then apply a transformation in one go.\n\nChange-Id: Ia335ca8b0881447fbbcb6bcd80f49feb835f1715\n","web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003d4310f715bd5efe3af792441aa6d3eb95c1da30fa"}],"resolve_conflicts_web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003d4310f715bd5efe3af792441aa6d3eb95c1da30fa"}]},"parents_data":[{"branch_name":"refs/heads/canon","commit_id":"5da7ee9e8a7e3e790963b52f6427027a8823d75a","is_merged_in_target_branch":true,"change_id":"I5c75fa045d5f3be8cf5eab787a02644500c14522","change_number":2466,"patch_set_number":6,"change_status":"MERGED"}],"branch":"refs/heads/canon"},"e4a7704583812786d90ddc1f3aa639b2866e18e2":{"kind":"NO_CODE_CHANGE","_number":6,"created":"2021-01-30 15:41:08.000000000","uploader":{"_account_id":1000013,"name":"Profpatsch","email":"mail@profpatsch.de","username":"Profpatsch"},"ref":"refs/changes/34/2434/6","fetch":{"anonymous http":{"url":"https://cl.tvl.fyi/depot","ref":"refs/changes/34/2434/6","commands":{"Checkout":"git fetch https://cl.tvl.fyi/depot refs/changes/34/2434/6 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://cl.tvl.fyi/depot refs/changes/34/2434/6 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://cl.tvl.fyi/depot refs/changes/34/2434/6 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://cl.tvl.fyi/depot refs/changes/34/2434/6"}}},"commit":{"parents":[{"commit":"5da7ee9e8a7e3e790963b52f6427027a8823d75a","subject":"feat(nix/readTree): add tests of the traversal logic in README","web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003d5da7ee9e8a7e3e790963b52f6427027a8823d75a"}]}],"author":{"name":"Profpatsch","email":"mail@profpatsch.de","date":"2021-01-23 16:23:39.000000000","tz":60},"committer":{"name":"Profpatsch","email":"mail@profpatsch.de","date":"2021-01-30 15:41:08.000000000","tz":0},"subject":"feat(nix): add nix.tag, a way of discriminating via tagged unions","message":"feat(nix): add nix.tag, a way of discriminating via tagged unions\n\nIntroduces the concept of a “tag”, a single-keyed attrset which\nannotates a nix value with a name.\nThis can be used to implement tagged unions (by implying the list of\npossible tags is well-known), which has some overlap with how\n`nix.yants` does it.\n\nHowever, the more fascinating use-case is in concert with a\nso-called discriminator, `match` and hylomorphisms.\n\nThe discriminator can take a nix value, and add tags to it based on\nsome predicate.\nWith `match`, we can then use that information to convert the\ndiscriminated values again.\nWith `hylo`, we can combine both the “constructive” discriminator step\nwith the “destructive” match step to recursively walk over a nix data\nstructure (based on a description of how to recurse, e.g. through attrset\nvalues or list values), and then apply a transformation in one go.\n\nChange-Id: Ia335ca8b0881447fbbcb6bcd80f49feb835f1715\nReviewed-on: https://cl.tvl.fyi/c/depot/+/2434\nTested-by: BuildkiteCI\nReviewed-by: sterni \u003csternenseemann@systemli.org\u003e\n","web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003de4a7704583812786d90ddc1f3aa639b2866e18e2"}],"resolve_conflicts_web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003de4a7704583812786d90ddc1f3aa639b2866e18e2"}]},"parents_data":[{"branch_name":"refs/heads/canon","commit_id":"5da7ee9e8a7e3e790963b52f6427027a8823d75a","is_merged_in_target_branch":true,"change_id":"I5c75fa045d5f3be8cf5eab787a02644500c14522","change_number":2466,"patch_set_number":6,"change_status":"MERGED"}],"branch":"refs/heads/canon"}},"requirements":[],"submit_records":[{"status":"CLOSED","labels":[{"label":"Conformant-Commit-Message","status":"OK","applied_by":{"_account_id":1000013,"name":"Profpatsch","email":"mail@profpatsch.de","username":"Profpatsch"}},{"label":"All-Comments-Resolved","status":"OK","applied_by":{"_account_id":1000013,"name":"Profpatsch","email":"mail@profpatsch.de","username":"Profpatsch"}},{"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":1000034,"name":"sterni","email":"sternenseemann@systemli.org","username":"sterni"}}]},{"status":"CLOSED"}],"submit_requirements":[{"name":"Verified","status":"SATISFIED","is_legacy":true,"submittability_expression_result":{"expression":"label:Verified\u003dCustom-Rule","fulfilled":true,"status":"PASS","passing_atoms":["label:Verified\u003dCustom-Rule"],"failing_atoms":[]}},{"name":"All-Comments-Resolved","status":"SATISFIED","is_legacy":true,"submittability_expression_result":{"expression":"label:All-Comments-Resolved\u003dCustom-Rule","fulfilled":true,"status":"PASS","passing_atoms":["label:All-Comments-Resolved\u003dCustom-Rule"],"failing_atoms":[]}},{"name":"Code-Review","status":"SATISFIED","is_legacy":true,"submittability_expression_result":{"expression":"label:Code-Review\u003dCustom-Rule","fulfilled":true,"status":"PASS","passing_atoms":["label:Code-Review\u003dCustom-Rule"],"failing_atoms":[]}},{"name":"Custom-Rule","status":"SATISFIED","is_legacy":true,"submittability_expression_result":{"expression":"rule:Custom-Rule","fulfilled":true,"status":"PASS","passing_atoms":["Custom-Rule"],"failing_atoms":[]}},{"name":"Conformant-Commit-Message","status":"SATISFIED","is_legacy":true,"submittability_expression_result":{"expression":"label:Conformant-Commit-Message\u003dCustom-Rule","fulfilled":true,"status":"PASS","passing_atoms":["label:Conformant-Commit-Message\u003dCustom-Rule"],"failing_atoms":[]}}]}
