)]}'
{"id":"depot~252","triplet_id":"depot~master~I572c43f7175067ecb1b85cdf40dda13a52de1439","project":"depot","branch":"master","hashtags":[],"change_id":"I572c43f7175067ecb1b85cdf40dda13a52de1439","subject":"feat(gerrit): Create Gerrit derivation.","status":"MERGED","created":"2020-06-14 12:01:06.000000000","updated":"2020-06-14 16:35:55.000000000","submitted":"2020-06-14 16:35:55.000000000","submitter":{"_account_id":1000000,"name":"lukegb","email":"lukegb@tvl.fyi","username":"lukegb","status":"zzz"},"total_comment_count":6,"unresolved_comment_count":0,"has_review_started":true,"submission_id":"252-1592152555257-b56dac72","meta_rev_id":"b19d847d3a21044c8fdea426ccd4d2b5732dd181","_number":252,"virtual_id_number":252,"owner":{"_account_id":1000000,"name":"lukegb","email":"lukegb@tvl.fyi","username":"lukegb","status":"zzz"},"actions":{},"labels":{"Code-Review":{"approved":{"_account_id":1000001,"name":"tazjin","email":"tazjin@tvl.su","username":"tazjin"},"all":[{"tag":"autogenerated:gerrit:merged","value":2,"date":"2020-06-14 16:35:55.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":1000001,"name":"tazjin","email":"tazjin@tvl.su","username":"tazjin"},{"value":0,"_account_id":1000000,"name":"lukegb","email":"lukegb@tvl.fyi","username":"lukegb","status":"zzz"}],"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":{"all":[{"value":0,"_account_id":1000001,"name":"tazjin","email":"tazjin@tvl.su","username":"tazjin"},{"value":0,"_account_id":1000000,"name":"lukegb","email":"lukegb@tvl.fyi","username":"lukegb","status":"zzz"}],"values":{"-1":"Fails"," 0":"No score","+1":"Verified"},"description":"","default_value":0},"Autosubmit":{"all":[{"value":0,"_account_id":1000001,"name":"tazjin","email":"tazjin@tvl.su","username":"tazjin"},{"value":0,"_account_id":1000000,"name":"lukegb","email":"lukegb@tvl.fyi","username":"lukegb","status":"zzz"}],"values":{" 0":"Submit manually","+1":"Submit automatically"},"description":"","default_value":0,"optional":true},"All-Comments-Resolved":{"approved":{"_account_id":1000000,"name":"lukegb","email":"lukegb@tvl.fyi","username":"lukegb","status":"zzz"},"all":[{"value":0,"_account_id":1000001,"name":"tazjin","email":"tazjin@tvl.su","username":"tazjin"},{"value":0,"_account_id":1000000,"name":"lukegb","email":"lukegb@tvl.fyi","username":"lukegb","status":"zzz"}]},"Conformant-Commit-Message":{"approved":{"_account_id":1000000,"name":"lukegb","email":"lukegb@tvl.fyi","username":"lukegb","status":"zzz"},"all":[{"value":0,"_account_id":1000001,"name":"tazjin","email":"tazjin@tvl.su","username":"tazjin"},{"value":0,"_account_id":1000000,"name":"lukegb","email":"lukegb@tvl.fyi","username":"lukegb","status":"zzz"}]}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":1000000,"name":"lukegb","email":"lukegb@tvl.fyi","username":"lukegb","status":"zzz"},{"_account_id":1000001,"name":"tazjin","email":"tazjin@tvl.su","username":"tazjin"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2020-06-14 12:01:44.000000000","updated_by":{"_account_id":1000000,"name":"lukegb","email":"lukegb@tvl.fyi","username":"lukegb","status":"zzz"},"reviewer":{"_account_id":1000001,"name":"tazjin","email":"tazjin@tvl.su","username":"tazjin"},"state":"REVIEWER"}],"messages":[{"id":"764ba22efb2e44a1b2d3f51eb6819ea1453db36b","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000000,"name":"lukegb","email":"lukegb@tvl.fyi","username":"lukegb","status":"zzz"},"date":"2020-06-14 12:01:06.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"90421df77accea9b5dec6cf0f70ee17255d7da4e","author":{"_account_id":1000001,"name":"tazjin","email":"tazjin@tvl.su","username":"tazjin"},"date":"2020-06-14 13:30:38.000000000","message":"Patch Set 1:\n\n(3 comments)\n\nMostly LGTM, should be moved to `//third_party/gerrit`.","accounts_in_message":[],"_revision_number":1},{"id":"63a87bf3e17f01ae8498b4bd03f00ffd8c31312a","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000000,"name":"lukegb","email":"lukegb@tvl.fyi","username":"lukegb","status":"zzz"},"date":"2020-06-14 15:11:31.000000000","message":"Uploaded patch set 2.","accounts_in_message":[],"_revision_number":2},{"id":"1a4f7aa5aaf29886efc75d4abd1a7c375aede6b3","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000000,"name":"lukegb","email":"lukegb@tvl.fyi","username":"lukegb","status":"zzz"},"date":"2020-06-14 15:15:56.000000000","message":"Uploaded patch set 3: Patch Set 2 was rebased.","accounts_in_message":[],"_revision_number":3},{"id":"2ee3509192172eaa181bcdeb7e960f32cc6866ca","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000000,"name":"lukegb","email":"lukegb@tvl.fyi","username":"lukegb","status":"zzz"},"date":"2020-06-14 15:17:57.000000000","message":"Uploaded patch set 4: Commit message was updated.","accounts_in_message":[],"_revision_number":4},{"id":"97d0e4b367ef699bdbd62052005a2de419aacb6b","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1000000,"name":"lukegb","email":"lukegb@tvl.fyi","username":"lukegb","status":"zzz"},"date":"2020-06-14 15:35:55.000000000","message":"Uploaded patch set 5.\n\n(1 comment)","accounts_in_message":[],"_revision_number":5},{"id":"82a2099bcc2726214d8da1240cdd4f00366aee45","author":{"_account_id":1000000,"name":"lukegb","email":"lukegb@tvl.fyi","username":"lukegb","status":"zzz"},"date":"2020-06-14 15:36:36.000000000","message":"Patch Set 5:\n\n(2 comments)","accounts_in_message":[],"_revision_number":5},{"id":"52bf8438cdbb2fcbab9f7483266a67948ba87fdf","author":{"_account_id":1000001,"name":"tazjin","email":"tazjin@tvl.su","username":"tazjin"},"date":"2020-06-14 16:13:25.000000000","message":"Patch Set 5:\n\nWe need to update the plugins before deploying this.","accounts_in_message":[],"_revision_number":5},{"id":"6f86d24ed02c554b6cca3dd9cdfc3b0230697815","author":{"_account_id":1000001,"name":"tazjin","email":"tazjin@tvl.su","username":"tazjin"},"date":"2020-06-14 16:23:58.000000000","message":"Patch Set 5: Code-Review+2","accounts_in_message":[],"_revision_number":5},{"id":"b19d847d3a21044c8fdea426ccd4d2b5732dd181","tag":"autogenerated:gerrit:merged","author":{"_account_id":1000000,"name":"lukegb","email":"lukegb@tvl.fyi","username":"lukegb","status":"zzz"},"date":"2020-06-14 16:35:55.000000000","message":"Change has been successfully rebased and submitted as a73ca3f43dbf6b179509d6e5e3933be4cf99d989 by lukegb","accounts_in_message":[],"_revision_number":6}],"current_revision_number":6,"current_revision":"a73ca3f43dbf6b179509d6e5e3933be4cf99d989","revisions":{"5261385b1962a823100094a1880d796612e3e68b":{"kind":"REWORK","_number":1,"created":"2020-06-14 12:01:06.000000000","uploader":{"_account_id":1000000,"name":"lukegb","email":"lukegb@tvl.fyi","username":"lukegb","status":"zzz"},"ref":"refs/changes/52/252/1","fetch":{"anonymous http":{"url":"https://cl.tvl.fyi/depot","ref":"refs/changes/52/252/1","commands":{"Checkout":"git fetch https://cl.tvl.fyi/depot refs/changes/52/252/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://cl.tvl.fyi/depot refs/changes/52/252/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://cl.tvl.fyi/depot refs/changes/52/252/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://cl.tvl.fyi/depot refs/changes/52/252/1"}}},"commit":{"parents":[{"commit":"7e303c8f53829ac3711a803be34035cb503790fd","subject":"feat(gerrit): Create detzip, a small helper utility for packing zips determinstically.","web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003d7e303c8f53829ac3711a803be34035cb503790fd"}]}],"author":{"name":"Luke Granger-Brown","email":"git@lukegb.com","date":"2020-06-14 11:23:47.000000000","tz":60},"committer":{"name":"Luke Granger-Brown","email":"git@lukegb.com","date":"2020-06-14 11:30:15.000000000","tz":60},"subject":"feat(gerrit): Create Gerrit derivation.","message":"feat(gerrit): Create Gerrit derivation.\n\nThis uses the actual Bazel build, using a variety of tricks and hacks to make\nit actually work.\n\nBazel really wants to download linux binaries from the internet and run them.\nIn lieu of trying to fix the build system to not do this, we instead put bazel\ninside an FHS environment, which allows the binaries to find their dependencies.\n\nWe also have to patch a few things:\n\n* We use build --nobuild instead of fetch, so we only fetch the dependencies we\n  actually need for the build and not, say, Windows binaries.\n* We don\u0027t remove rules_cc, because we need it as an external dependency, not\n  bundled.\n* We do some manual fixes on the cache before packing, because we need to remove\n  some in-tree sources (so they don\u0027t cause the hash to break, since the hashes\n  differ each time they\u0027re generated), and also remove some extraneous files.\n* We explicitly turn off the repository and disk caches, because the .bazelrc\n  at the root of the Gerrit tree turns them on, with paths pointing into the\n  user\u0027s home directory.\n* detzip is used instead of the zip binary for packing bower_components into an\n  archive. detzip doesn\u0027t create entries for directories, and also doesn\u0027t store\n  most metadata (timestamps, etc.), and uses store (i.e. uncompressed) compression\n  only. It also sorts the file tree before writing them into the file.\n\nChange-Id: I572c43f7175067ecb1b85cdf40dda13a52de1439\n","web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003d5261385b1962a823100094a1880d796612e3e68b"}],"resolve_conflicts_web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003d5261385b1962a823100094a1880d796612e3e68b"}]},"parents_data":[{"branch_name":"refs/heads/master","commit_id":"7e303c8f53829ac3711a803be34035cb503790fd","is_merged_in_target_branch":false,"change_id":"I6c87b19815b9d747064108aecbb57ed875d2623b","change_number":251,"patch_set_number":1,"change_status":"MERGED"}],"branch":"refs/heads/master"},"a0177574c9b05e42bbf6a107e600ce24bed00d62":{"kind":"REWORK","_number":2,"created":"2020-06-14 15:11:31.000000000","uploader":{"_account_id":1000000,"name":"lukegb","email":"lukegb@tvl.fyi","username":"lukegb","status":"zzz"},"ref":"refs/changes/52/252/2","fetch":{"anonymous http":{"url":"https://cl.tvl.fyi/depot","ref":"refs/changes/52/252/2","commands":{"Checkout":"git fetch https://cl.tvl.fyi/depot refs/changes/52/252/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://cl.tvl.fyi/depot refs/changes/52/252/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://cl.tvl.fyi/depot refs/changes/52/252/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://cl.tvl.fyi/depot refs/changes/52/252/2"}}},"commit":{"parents":[{"commit":"7e303c8f53829ac3711a803be34035cb503790fd","subject":"feat(gerrit): Create detzip, a small helper utility for packing zips determinstically.","web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003d7e303c8f53829ac3711a803be34035cb503790fd"}]}],"author":{"name":"Luke Granger-Brown","email":"git@lukegb.com","date":"2020-06-14 11:23:47.000000000","tz":60},"committer":{"name":"Luke Granger-Brown","email":"git@lukegb.com","date":"2020-06-14 15:10:44.000000000","tz":60},"subject":"feat(gerrit): Create Gerrit derivation.","message":"feat(gerrit): Create Gerrit derivation.\n\nThis uses the actual Bazel build, using a variety of tricks and hacks to make\nit actually work.\n\nBazel really wants to download linux binaries from the internet and run them.\nIn lieu of trying to fix the build system to not do this, we instead put bazel\ninside an FHS environment, which allows the binaries to find their dependencies.\n\nWe also have to patch a few things:\n\n* We use build --nobuild instead of fetch, so we only fetch the dependencies we\n  actually need for the build and not, say, Windows binaries.\n* We don\u0027t remove rules_cc, because we need it as an external dependency, not\n  bundled.\n* We do some manual fixes on the cache before packing, because we need to remove\n  some in-tree sources (so they don\u0027t cause the hash to break, since the hashes\n  differ each time they\u0027re generated), and also remove some extraneous files.\n* We explicitly turn off the repository and disk caches, because the .bazelrc\n  at the root of the Gerrit tree turns them on, with paths pointing into the\n  user\u0027s home directory.\n* detzip is used instead of the zip binary for packing bower_components into an\n  archive. detzip doesn\u0027t create entries for directories, and also doesn\u0027t store\n  most metadata (timestamps, etc.), and uses store (i.e. uncompressed) compression\n  only. It also sorts the file tree before writing them into the file.\n\nChange-Id: I572c43f7175067ecb1b85cdf40dda13a52de1439\n","web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003da0177574c9b05e42bbf6a107e600ce24bed00d62"}],"resolve_conflicts_web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003da0177574c9b05e42bbf6a107e600ce24bed00d62"}]},"parents_data":[{"branch_name":"refs/heads/master","commit_id":"7e303c8f53829ac3711a803be34035cb503790fd","is_merged_in_target_branch":false,"change_id":"I6c87b19815b9d747064108aecbb57ed875d2623b","change_number":251,"patch_set_number":1,"change_status":"MERGED"}],"branch":"refs/heads/master"},"4a1a2530c284dcb4b26cadebedcfa303af3c8713":{"kind":"TRIVIAL_REBASE","_number":3,"created":"2020-06-14 15:15:56.000000000","uploader":{"_account_id":1000000,"name":"lukegb","email":"lukegb@tvl.fyi","username":"lukegb","status":"zzz"},"ref":"refs/changes/52/252/3","fetch":{"anonymous http":{"url":"https://cl.tvl.fyi/depot","ref":"refs/changes/52/252/3","commands":{"Checkout":"git fetch https://cl.tvl.fyi/depot refs/changes/52/252/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://cl.tvl.fyi/depot refs/changes/52/252/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://cl.tvl.fyi/depot refs/changes/52/252/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://cl.tvl.fyi/depot refs/changes/52/252/3"}}},"commit":{"parents":[{"commit":"22e07efe4d9bde7d2b776033b51d11df29678296","subject":"feat(gerrit): Create detzip, a small helper utility for packing zips determinstically.","web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003d22e07efe4d9bde7d2b776033b51d11df29678296"}]}],"author":{"name":"Luke Granger-Brown","email":"git@lukegb.com","date":"2020-06-14 11:23:47.000000000","tz":60},"committer":{"name":"Luke Granger-Brown","email":"git@lukegb.com","date":"2020-06-14 15:15:48.000000000","tz":60},"subject":"feat(gerrit): Create Gerrit derivation.","message":"feat(gerrit): Create Gerrit derivation.\n\nThis uses the actual Bazel build, using a variety of tricks and hacks to make\nit actually work.\n\nBazel really wants to download linux binaries from the internet and run them.\nIn lieu of trying to fix the build system to not do this, we instead put bazel\ninside an FHS environment, which allows the binaries to find their dependencies.\n\nWe also have to patch a few things:\n\n* We use build --nobuild instead of fetch, so we only fetch the dependencies we\n  actually need for the build and not, say, Windows binaries.\n* We don\u0027t remove rules_cc, because we need it as an external dependency, not\n  bundled.\n* We do some manual fixes on the cache before packing, because we need to remove\n  some in-tree sources (so they don\u0027t cause the hash to break, since the hashes\n  differ each time they\u0027re generated), and also remove some extraneous files.\n* We explicitly turn off the repository and disk caches, because the .bazelrc\n  at the root of the Gerrit tree turns them on, with paths pointing into the\n  user\u0027s home directory.\n* detzip is used instead of the zip binary for packing bower_components into an\n  archive. detzip doesn\u0027t create entries for directories, and also doesn\u0027t store\n  most metadata (timestamps, etc.), and uses store (i.e. uncompressed) compression\n  only. It also sorts the file tree before writing them into the file.\n\nChange-Id: I572c43f7175067ecb1b85cdf40dda13a52de1439\n","web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003d4a1a2530c284dcb4b26cadebedcfa303af3c8713"}],"resolve_conflicts_web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003d4a1a2530c284dcb4b26cadebedcfa303af3c8713"}]},"parents_data":[{"branch_name":"refs/heads/master","commit_id":"22e07efe4d9bde7d2b776033b51d11df29678296","is_merged_in_target_branch":false,"change_id":"I6c87b19815b9d747064108aecbb57ed875d2623b","change_number":251,"patch_set_number":2,"change_status":"MERGED"}],"branch":"refs/heads/master"},"2e27d728f4a11f9a7a65031b342b4b4a164bbcd1":{"kind":"NO_CODE_CHANGE","_number":4,"created":"2020-06-14 15:17:57.000000000","uploader":{"_account_id":1000000,"name":"lukegb","email":"lukegb@tvl.fyi","username":"lukegb","status":"zzz"},"ref":"refs/changes/52/252/4","fetch":{"anonymous http":{"url":"https://cl.tvl.fyi/depot","ref":"refs/changes/52/252/4","commands":{"Checkout":"git fetch https://cl.tvl.fyi/depot refs/changes/52/252/4 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://cl.tvl.fyi/depot refs/changes/52/252/4 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://cl.tvl.fyi/depot refs/changes/52/252/4 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://cl.tvl.fyi/depot refs/changes/52/252/4"}}},"commit":{"parents":[{"commit":"22e07efe4d9bde7d2b776033b51d11df29678296","subject":"feat(gerrit): Create detzip, a small helper utility for packing zips determinstically.","web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003d22e07efe4d9bde7d2b776033b51d11df29678296"}]}],"author":{"name":"Luke Granger-Brown","email":"git@lukegb.com","date":"2020-06-14 11:23:47.000000000","tz":60},"committer":{"name":"Luke Granger-Brown","email":"git@lukegb.com","date":"2020-06-14 15:16:11.000000000","tz":60},"subject":"feat(gerrit): Create Gerrit derivation.","message":"feat(gerrit): Create Gerrit derivation.\n\nThis uses the actual Bazel build, using a variety of tricks and hacks to\nmake it actually work.\n\nBazel really wants to download linux binaries from the internet and run\nthem. In lieu of trying to fix the build system to not do this, we\ninstead put bazel inside an FHS environment, which allows the binaries\nto find their dependencies.\n\nWe also have to patch a few things:\n\n* We use build --nobuild instead of fetch, so we only fetch the\n  dependencies we actually need for the build and not, say, Windows\n  binaries.\n* We don\u0027t remove rules_cc, because we need it as an external\n  dependency, not bundled.\n* We do some manual fixes on the cache before packing, because we need\n  to remove some in-tree sources (so they don\u0027t cause the hash to break,\n  since the hashes differ each time they\u0027re generated), and also remove\n  some extraneous files.\n* We explicitly turn off the repository and disk caches, because the\n  .bazelrc at the root of the Gerrit tree turns them on, with paths\n  pointing into the user\u0027s home directory.\n* detzip is used instead of the zip binary for packing bower_components\n  into an archive. detzip doesn\u0027t create entries for directories, and\n  also doesn\u0027t store most metadata (timestamps, etc.), and uses store\n  (i.e. uncompressed) compression only. It also sorts the file tree\n  before writing them into the file.\n\nChange-Id: I572c43f7175067ecb1b85cdf40dda13a52de1439\n","web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003d2e27d728f4a11f9a7a65031b342b4b4a164bbcd1"}],"resolve_conflicts_web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003d2e27d728f4a11f9a7a65031b342b4b4a164bbcd1"}]},"parents_data":[{"branch_name":"refs/heads/master","commit_id":"22e07efe4d9bde7d2b776033b51d11df29678296","is_merged_in_target_branch":false,"change_id":"I6c87b19815b9d747064108aecbb57ed875d2623b","change_number":251,"patch_set_number":2,"change_status":"MERGED"}],"branch":"refs/heads/master"},"ead562d01d8db6a3a6d2d6febb16d6ef5ada5a68":{"kind":"REWORK","_number":5,"created":"2020-06-14 15:35:55.000000000","uploader":{"_account_id":1000000,"name":"lukegb","email":"lukegb@tvl.fyi","username":"lukegb","status":"zzz"},"ref":"refs/changes/52/252/5","fetch":{"anonymous http":{"url":"https://cl.tvl.fyi/depot","ref":"refs/changes/52/252/5","commands":{"Checkout":"git fetch https://cl.tvl.fyi/depot refs/changes/52/252/5 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://cl.tvl.fyi/depot refs/changes/52/252/5 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://cl.tvl.fyi/depot refs/changes/52/252/5 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://cl.tvl.fyi/depot refs/changes/52/252/5"}}},"commit":{"parents":[{"commit":"af167ff8d43786f285dc953195af332a970b1a2b","subject":"feat(gerrit): Create detzip, a small helper utility for packing zips determinstically.","web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003daf167ff8d43786f285dc953195af332a970b1a2b"}]}],"author":{"name":"Luke Granger-Brown","email":"git@lukegb.com","date":"2020-06-14 11:23:47.000000000","tz":60},"committer":{"name":"Luke Granger-Brown","email":"git@lukegb.com","date":"2020-06-14 15:35:53.000000000","tz":60},"subject":"feat(gerrit): Create Gerrit derivation.","message":"feat(gerrit): Create Gerrit derivation.\n\nThis uses the actual Bazel build, using a variety of tricks and hacks to\nmake it actually work.\n\nBazel really wants to download linux binaries from the internet and run\nthem. In lieu of trying to fix the build system to not do this, we\ninstead put bazel inside an FHS environment, which allows the binaries\nto find their dependencies.\n\nWe also have to patch a few things:\n\n* We use build --nobuild instead of fetch, so we only fetch the\n  dependencies we actually need for the build and not, say, Windows\n  binaries.\n* We don\u0027t remove rules_cc, because we need it as an external\n  dependency, not bundled.\n* We do some manual fixes on the cache before packing, because we need\n  to remove some in-tree sources (so they don\u0027t cause the hash to break,\n  since the hashes differ each time they\u0027re generated), and also remove\n  some extraneous files.\n* We explicitly turn off the repository and disk caches, because the\n  .bazelrc at the root of the Gerrit tree turns them on, with paths\n  pointing into the user\u0027s home directory.\n* detzip is used instead of the zip binary for packing bower_components\n  into an archive. detzip doesn\u0027t create entries for directories, and\n  also doesn\u0027t store most metadata (timestamps, etc.), and uses store\n  (i.e. uncompressed) compression only. It also sorts the file tree\n  before writing them into the file.\n\nChange-Id: I572c43f7175067ecb1b85cdf40dda13a52de1439\n","web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003dead562d01d8db6a3a6d2d6febb16d6ef5ada5a68"}],"resolve_conflicts_web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003dead562d01d8db6a3a6d2d6febb16d6ef5ada5a68"}]},"parents_data":[{"branch_name":"refs/heads/master","commit_id":"af167ff8d43786f285dc953195af332a970b1a2b","is_merged_in_target_branch":false,"change_id":"I6c87b19815b9d747064108aecbb57ed875d2623b","change_number":251,"patch_set_number":3,"change_status":"MERGED"}],"branch":"refs/heads/master"},"a73ca3f43dbf6b179509d6e5e3933be4cf99d989":{"kind":"REWORK","_number":6,"created":"2020-06-14 16:35:55.000000000","uploader":{"_account_id":1000000,"name":"lukegb","email":"lukegb@tvl.fyi","username":"lukegb","status":"zzz"},"ref":"refs/changes/52/252/6","fetch":{"anonymous http":{"url":"https://cl.tvl.fyi/depot","ref":"refs/changes/52/252/6","commands":{"Checkout":"git fetch https://cl.tvl.fyi/depot refs/changes/52/252/6 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://cl.tvl.fyi/depot refs/changes/52/252/6 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://cl.tvl.fyi/depot refs/changes/52/252/6 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://cl.tvl.fyi/depot refs/changes/52/252/6"}}},"commit":{"parents":[{"commit":"02adb10a96eb06a7c7a2c80b7c9f3e385004ec61","subject":"feat: Configure OWNERS file for the depot root","web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003d02adb10a96eb06a7c7a2c80b7c9f3e385004ec61"}]}],"author":{"name":"Luke Granger-Brown","email":"git@lukegb.com","date":"2020-06-14 11:23:47.000000000","tz":60},"committer":{"name":"lukegb","email":"lukegb@tvl.fyi","date":"2020-06-14 16:35:55.000000000","tz":0},"subject":"feat(gerrit): Create Gerrit derivation.","message":"feat(gerrit): Create Gerrit derivation.\n\nThis uses the actual Bazel build, using a variety of tricks and hacks to\nmake it actually work.\n\nBazel really wants to download linux binaries from the internet and run\nthem. In lieu of trying to fix the build system to not do this, we\ninstead put bazel inside an FHS environment, which allows the binaries\nto find their dependencies.\n\nWe also have to patch a few things:\n\n* We use build --nobuild instead of fetch, so we only fetch the\n  dependencies we actually need for the build and not, say, Windows\n  binaries.\n* We don\u0027t remove rules_cc, because we need it as an external\n  dependency, not bundled.\n* We do some manual fixes on the cache before packing, because we need\n  to remove some in-tree sources (so they don\u0027t cause the hash to break,\n  since the hashes differ each time they\u0027re generated), and also remove\n  some extraneous files.\n* We explicitly turn off the repository and disk caches, because the\n  .bazelrc at the root of the Gerrit tree turns them on, with paths\n  pointing into the user\u0027s home directory.\n* detzip is used instead of the zip binary for packing bower_components\n  into an archive. detzip doesn\u0027t create entries for directories, and\n  also doesn\u0027t store most metadata (timestamps, etc.), and uses store\n  (i.e. uncompressed) compression only. It also sorts the file tree\n  before writing them into the file.\n\nChange-Id: I572c43f7175067ecb1b85cdf40dda13a52de1439\nReviewed-on: https://cl.tvl.fyi/c/depot/+/252\nReviewed-by: tazjin \u003cmail@tazj.in\u003e\n","web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003da73ca3f43dbf6b179509d6e5e3933be4cf99d989"}],"resolve_conflicts_web_links":[{"name":"cgit","tooltip":"Open in GitWeb","url":"https://code.tvl.fyi/commit/?id\u003da73ca3f43dbf6b179509d6e5e3933be4cf99d989"}]},"parents_data":[{"branch_name":"refs/heads/master","commit_id":"02adb10a96eb06a7c7a2c80b7c9f3e385004ec61","is_merged_in_target_branch":false,"change_id":"I2a14092765ad484d329f5542ac052da59eb104c7","change_number":259,"patch_set_number":2,"change_status":"MERGED"}],"branch":"refs/heads/master","description":"Rebase"}},"requirements":[],"submit_records":[{"status":"CLOSED","labels":[{"label":"Conformant-Commit-Message","status":"OK","applied_by":{"_account_id":1000000,"name":"lukegb","email":"lukegb@tvl.fyi","username":"lukegb","status":"zzz"}},{"label":"All-Comments-Resolved","status":"OK","applied_by":{"_account_id":1000000,"name":"lukegb","email":"lukegb@tvl.fyi","username":"lukegb","status":"zzz"}},{"label":"Code-Review","status":"OK","applied_by":{"_account_id":1000001,"name":"tazjin","email":"tazjin@tvl.su","username":"tazjin"}}]}],"submit_requirements":[{"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":"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":[]}}]}
