{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":45069467,"defaultBranch":"main","name":"hail","ownerLogin":"hail-is","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2015-10-27T20:55:42.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/20861792?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1717609684.0","currentOid":""},"activityList":{"items":[{"before":"291a876015fa9fdd2b5d63d5d4cc5cb8fb2038db","after":"e2a420cfe44f0e8896f9423ba01ca45ce061b18e","ref":"refs/heads/main","pushedAt":"2024-06-07T23:09:50.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"hail-ci-robot","name":null,"path":"/hail-ci-robot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/161749420?s=80&v=4"},"commit":{"message":"[ci] fix mount paths for `start_hail_benchmark` task (#14575)\n\nFixes paths missed by https://github.com/hail-is/hail/pull/14565","shortMessageHtmlLink":"[ci] fix mount paths for start_hail_benchmark task (#14575)"}},{"before":"09437c531b47c9af2faa196817c6edeaba17fced","after":"291a876015fa9fdd2b5d63d5d4cc5cb8fb2038db","ref":"refs/heads/main","pushedAt":"2024-06-07T15:06:38.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"hail-ci-robot","name":null,"path":"/hail-ci-robot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/161749420?s=80&v=4"},"commit":{"message":"[query] Fix backend arg typecheck in init (#14574)\n\nFixes #14573","shortMessageHtmlLink":"[query] Fix backend arg typecheck in init (#14574)"}},{"before":"433f84f3a39336bd4de810310da0144be7f192ad","after":"09437c531b47c9af2faa196817c6edeaba17fced","ref":"refs/heads/main","pushedAt":"2024-06-06T16:16:17.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"hail-ci-robot","name":null,"path":"/hail-ci-robot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/161749420?s=80&v=4"},"commit":{"message":"[benchmark] pytest-ify hail benchmarks (#14565)\n\nHail's benchmarks were kind of their own thing and a little neglected.\nThis change moves the benchmarks into the `hail/python` folder and\nupdates them to use pytest with a custom plugin/set of pytest hooks.\nNow, benchmarks can be run from the command line like any pytest.\nThis change removes the `benchmark-hail` (or `hailbench`) utility.\n\nBenchmarks are marked by `pytest.mark.benchmark` (via the `@benchmark`\ndecorator).\nBy convention, benchmarks are python tests whose names are prefixed by\n`benchmark_` and are located in files with the same prefix.\nNothing enforces this, however, so you could name your benchmarks\n`test_*` and put them in files named `test_*.py`.\nBenchmarks may import and use any test code or utilities defined in\n`test/`.\nThe results of each benchmark are outputted as json lines (`.jsonl`) to\nthe file specified by the `--output` pytest arg or stdout.\n\nThe folder structure should be familiar, resembling our `test/`\ndirectory.\nI believe this is flexible enough to add `hailtop` benchmarks should we\nso wish:\n```\npytest.ini - hoisted from `test/` to include benchmark marks\nbenchmark/\n- conftest.py for custom pytest command line args \n- hail/\n - confest.py for custom plugin that runs hail benchmarks\n - benchmark_*.py hail query benchmark code\n- tools/\n - shared utilites, including the `@benchmark`\n```\nSupporting pytest fixtures required writing a custom plugin to run\nbenchmarks, as using off-the-shelf\nsolutions like `pytest-benchmark` would forbid method level fixtures\nlike `tmp_path` etc.\nThe plugin is designed to run \"macro-benchmarks\" (ie long-running tests)\nand fully supports pytest parameterisation.\nFor each benchmark, the plugin initialises hail and then repeats (for a\nnumber of iterations defined by the pytest mark)\nacquiring fixtures, timing invocation and tearing-down fixtures, finally\nstopping hail. It is therefore unsuitable for\nmicrobenchmarks, for which we currenly have none in python. If we add\nthem we'd need to tweak this so support them.\nPerhaps an inner loop or something.\n\nThe process of submitting benchmarks to batch is greatly simplified as\nthe old `Makefile` infrastructure for\nbuilding wheels and docker images etc has been replaced with the script\n`benchmark_in_batch.py`.\nBenchmark images are now based off the `hail-dev` image built in CI (or\nvia the `hail-dev-image` make target).\nFurthermore, you can control the number of \"replicate\" jobs created for\neach benchmark at the benchmark level using\nthe `@benchmark(batch_jobs=N)` decotator.\n\nLimitations/shortcomings:\n- Output is currently jsonl only. Some more human friendly output might\nbe nice on a per iteration basis.\n- Old `benchmark-hail` utilities are broken. I'll restore these in\nsubsequent changes.\n\n---------\n\nCo-authored-by: Daniel Goldstein \nCo-authored-by: Christopher Vittal ","shortMessageHtmlLink":"[benchmark] pytest-ify hail benchmarks (#14565)"}},{"before":"545fa5b4485a3f3e637a3aefc9c4c1ac95c6ebc7","after":"433f84f3a39336bd4de810310da0144be7f192ad","ref":"refs/heads/main","pushedAt":"2024-06-06T15:38:38.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"hail-ci-robot","name":null,"path":"/hail-ci-robot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/161749420?s=80&v=4"},"commit":{"message":"[query] add `StringExpression.find` (#14572)\n\nResolves #14515","shortMessageHtmlLink":"[query] add StringExpression.find (#14572)"}},{"before":"11d9b2ff89da9ef6a4f576be89f1f06959580ea4","after":"545fa5b4485a3f3e637a3aefc9c4c1ac95c6ebc7","ref":"refs/heads/main","pushedAt":"2024-06-06T14:29:18.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"hail-ci-robot","name":null,"path":"/hail-ci-robot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/161749420?s=80&v=4"},"commit":{"message":"[query] Let-Bind Input Collection Parameter In `hl.nd.array`. (#14571)\n\nFixes: #14559\n`hl.nd.array`s constructed from stream pipelines can cause out of memory\nexceptions owing to a limitation in the python CSE algorithm that does\nnot eliminate partially redundant expressions in if-expressions.\nExplicitly `let`-binding the input collection prevents it from being\nevaluated twice: once for the flattened data stream and once for the\noriginal shape.","shortMessageHtmlLink":"[query] Let-Bind Input Collection Parameter In hl.nd.array. (#14571)"}},{"before":"d9d85d547b1cb0a53a84e734b7d1a6f783446471","after":"11d9b2ff89da9ef6a4f576be89f1f06959580ea4","ref":"refs/heads/main","pushedAt":"2024-06-03T19:12:03.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"hail-ci-robot","name":null,"path":"/hail-ci-robot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/161749420?s=80&v=4"},"commit":{"message":"[release] v0.2.131 (#14569)","shortMessageHtmlLink":"[release] v0.2.131 (#14569)"}},{"before":"208d69b1fdbe9196f674574c508359929e20d1a0","after":"d9d85d547b1cb0a53a84e734b7d1a6f783446471","ref":"refs/heads/main","pushedAt":"2024-05-31T19:32:38.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"hail-ci-robot","name":null,"path":"/hail-ci-robot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/161749420?s=80&v=4"},"commit":{"message":"[vds/combiner] Stop dropping GT in reference data during gvcf import (#14560)\n\nCHANGELOG: The gvcf import stage of the VDS combiner now preserves the\nGT of reference blocks. Some datasets have haploid calls on sex\nchromosomes, and the fact that the reference was haploid should be\npreserved.","shortMessageHtmlLink":"[vds/combiner] Stop dropping GT in reference data during gvcf import (#…"}},{"before":"cb4bb0dd55b2097564c62bee8227b120a4115f89","after":"208d69b1fdbe9196f674574c508359929e20d1a0","ref":"refs/heads/main","pushedAt":"2024-05-30T17:29:44.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"hail-ci-robot","name":null,"path":"/hail-ci-robot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/161749420?s=80&v=4"},"commit":{"message":"[qob] Always send the git revision from the python service backend instead of jar_url (#14541)\n\nInstead of doing anything fancy with custom JAR urls, the hail python\nclient always just sends its git revision for QoB jobs. When the batch\nfront end receives the request, it resolves that git revision to either\na production JAR or a dev JAR under a `/dev/` directory.\n\nResolves #14539","shortMessageHtmlLink":"[qob] Always send the git revision from the python service backend in…"}},{"before":"6f4a551afdd476a8560bd480ab8cdcfecfe0dd00","after":"cb4bb0dd55b2097564c62bee8227b120a4115f89","ref":"refs/heads/main","pushedAt":"2024-05-29T19:34:32.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"hail-ci-robot","name":null,"path":"/hail-ci-robot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/161749420?s=80&v=4"},"commit":{"message":"[infra] Update GCP DB terraform to reflect backup region change (#14568)\n\nI manually changed the Cloud SQL automated backups storage from the `us`\nmulti-region to `us-central1`. There's no reason to store it in a\nmulti-region and it's more expensive. What I didn't realize is that this\nconfiguration is actually owned by the terraform that we have managing\nthe lifecycle of the database and other infra, so we need to update the\nterraform to reflect the desired (and current) state.","shortMessageHtmlLink":"[infra] Update GCP DB terraform to reflect backup region change (#14568)"}},{"before":"f7c6d62a84987e7520486ec41e8a1edb4aae8a1c","after":"6f4a551afdd476a8560bd480ab8cdcfecfe0dd00","ref":"refs/heads/main","pushedAt":"2024-05-27T13:29:57.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"hail-ci-robot","name":null,"path":"/hail-ci-robot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/161749420?s=80&v=4"},"commit":{"message":"Metadata server updates: scopes endpoint and allow omission of trailing slashes (#14566)\n\nCo-authored-by: Michael Franklin <22381693+illusional@users.noreply.github.com>","shortMessageHtmlLink":"Metadata server updates: scopes endpoint and allow omission of traili…"}},{"before":"dd9d5b4912c908a656f9d770eec2d20cd16df0bd","after":"f7c6d62a84987e7520486ec41e8a1edb4aae8a1c","ref":"refs/heads/main","pushedAt":"2024-05-24T19:38:08.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"hail-ci-robot","name":null,"path":"/hail-ci-robot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/161749420?s=80&v=4"},"commit":{"message":"[query] Add more transient error handling (#14516)\n\nAdditional transient errors from GCS","shortMessageHtmlLink":"[query] Add more transient error handling (#14516)"}},{"before":"80d7106ba37ef021b2eb8e14baa15a9063568d95","after":"dd9d5b4912c908a656f9d770eec2d20cd16df0bd","ref":"refs/heads/main","pushedAt":"2024-05-23T21:07:24.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"hail-ci-robot","name":null,"path":"/hail-ci-robot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/161749420?s=80&v=4"},"commit":{"message":"[dataproc] bumps version of notebook (#14563)\n\nWhen trying to create a dataproc cluster using the results of `make -C\nhail install-editable` and `make -C hail install-hailctl`, the Jupyter\nserver can't be connected to because it runs into the error described\n[here](https://stackoverflow.com/questions/77549493/modulenotfounderror-no-module-named-jupyter-server-contents).\nThis change bumps the version of `notebook` that we use in the\n`init_notebook.py` script in order to make that work again.","shortMessageHtmlLink":"[dataproc] bumps version of notebook (#14563)"}},{"before":"d63c91e7f1a316e89fbe72525d9e54bb12001954","after":"80d7106ba37ef021b2eb8e14baa15a9063568d95","ref":"refs/heads/main","pushedAt":"2024-05-23T15:13:44.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"hail-ci-robot","name":null,"path":"/hail-ci-robot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/161749420?s=80&v=4"},"commit":{"message":"[internal-gateway] Fix bootstrap invocation (#14561)\n\n#14524 changed the argv for `envoy.py` and I missed the invocation in\nthe bootstrapping process for `internal-gateway`. A grep for `envoy.py`\nshows both usages now using the correct arguments","shortMessageHtmlLink":"[internal-gateway] Fix bootstrap invocation (#14561)"}},{"before":"9822e7d0e12273f8ba183271b225dc2600fc63b5","after":"d63c91e7f1a316e89fbe72525d9e54bb12001954","ref":"refs/heads/main","pushedAt":"2024-05-22T16:27:01.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"hail-ci-robot","name":null,"path":"/hail-ci-robot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/161749420?s=80&v=4"},"commit":{"message":"[pip] Resolve security vulns in pymysql and requests (#14558)","shortMessageHtmlLink":"[pip] Resolve security vulns in pymysql and requests (#14558)"}},{"before":"4ef911485d5b829713fe6ff341118eb963649c11","after":null,"ref":"refs/heads/dependabot/pip/ci/requests-2.32.0","pushedAt":"2024-05-22T15:07:42.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"dependabot[bot]","name":null,"path":"/apps/dependabot","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/29110?s=80&v=4"}},{"before":"fab5d1ff7734031f2bbedbab290b592120fa8568","after":null,"ref":"refs/heads/dependabot/pip/gear/pymysql-1.1.1","pushedAt":"2024-05-22T15:07:22.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"dependabot[bot]","name":null,"path":"/apps/dependabot","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/29110?s=80&v=4"}},{"before":null,"after":"fab5d1ff7734031f2bbedbab290b592120fa8568","ref":"refs/heads/dependabot/pip/gear/pymysql-1.1.1","pushedAt":"2024-05-21T19:54:35.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"dependabot[bot]","name":null,"path":"/apps/dependabot","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/29110?s=80&v=4"},"commit":{"message":"---\nupdated-dependencies:\n- dependency-name: pymysql\n dependency-type: direct:production\n...\n\nSigned-off-by: dependabot[bot] ","shortMessageHtmlLink":"---"}},{"before":null,"after":"4ef911485d5b829713fe6ff341118eb963649c11","ref":"refs/heads/dependabot/pip/ci/requests-2.32.0","pushedAt":"2024-05-21T05:48:17.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"dependabot[bot]","name":null,"path":"/apps/dependabot","primaryAvatarUrl":"https://avatars.githubusercontent.com/in/29110?s=80&v=4"},"commit":{"message":"---\nupdated-dependencies:\n- dependency-name: requests\n dependency-type: direct:production\n...\n\nSigned-off-by: dependabot[bot] ","shortMessageHtmlLink":"---"}},{"before":"edf40c10710954d1c447bfdb2375a7f5b8313ed4","after":null,"ref":"refs/heads/ps-04-26-simplify_PruneDeadFields","pushedAt":"2024-05-17T11:46:14.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"hail-ci-robot","name":null,"path":"/hail-ci-robot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/161749420?s=80&v=4"}},{"before":"e1e42c0bbe07a26bc5c77337a471012ae9852c62","after":"9822e7d0e12273f8ba183271b225dc2600fc63b5","ref":"refs/heads/main","pushedAt":"2024-05-17T11:46:13.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"hail-ci-robot","name":null,"path":"/hail-ci-robot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/161749420?s=80&v=4"},"commit":{"message":"[compiler] simplify PruneDeadFields (#14509)\n\nMakes some further progress on simplifying the `PruneDeadFields` pass,\nwith the primary goal of decoupling it from the details of the binding\nstructure.\n\nThe primary change is to `memoizeValueIR`. Before, it passed in only the\nrequested type of the node, and returned and environment containing all\nfree variables and their requested types. Any bound variables would then\nneed to be removed, and the environments of all children then merged.\nThis low-level manipulation of environments made it closely tied to the\nbinding structure, essentially redundantly encoding everything in\n`Binds.scala`.\n\nNow we pass an environment down into the children, which maps variables\nto a mutable state tracking the requested type. Each `Ref` node unions\nthe requested type at the reference with the state in the environment.\nThis lets us use the general environment infrastructure.\n\nI didn't do an assertion directly comparing the old and new\nimplementations, as I've done with some other pass rewrites. But\n`PruneDeadFields` has pretty good test coverage.","shortMessageHtmlLink":"[compiler] simplify PruneDeadFields (#14509)"}},{"before":"1e5d6afd14825b76d59084be73d938db511e901d","after":null,"ref":"refs/heads/ps-05-14-delete_old_NormalizeNames","pushedAt":"2024-05-17T11:05:24.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"hail-ci-robot","name":null,"path":"/hail-ci-robot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/161749420?s=80&v=4"}},{"before":"e4d9e733ee82beb3d2a103c03a4cbbdd6d3e3d6f","after":"e1e42c0bbe07a26bc5c77337a471012ae9852c62","ref":"refs/heads/main","pushedAt":"2024-05-17T11:05:23.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"hail-ci-robot","name":null,"path":"/hail-ci-robot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/161749420?s=80&v=4"},"commit":{"message":"[compiler] delete old NormalizeNames (#14554)","shortMessageHtmlLink":"[compiler] delete old NormalizeNames (#14554)"}},{"before":"60955f094523af465bd0a0271a450d8d5749acbb","after":"edf40c10710954d1c447bfdb2375a7f5b8313ed4","ref":"refs/heads/ps-04-26-simplify_PruneDeadFields","pushedAt":"2024-05-16T19:22:26.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"patrick-schultz","name":"Patrick Schultz","path":"/patrick-schultz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3430459?s=80&v=4"},"commit":{"message":"simplify PruneDeadFields","shortMessageHtmlLink":"simplify PruneDeadFields"}},{"before":"ac26a03c6fb4c1001f9ca3c18260879f9b548725","after":"e4d9e733ee82beb3d2a103c03a4cbbdd6d3e3d6f","ref":"refs/heads/main","pushedAt":"2024-05-16T19:06:32.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"hail-ci-robot","name":null,"path":"/hail-ci-robot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/161749420?s=80&v=4"},"commit":{"message":"[batch] Add resource_usage endpoint for jobs (#14328)\n\nHi! \n\nI know this is out of the blue, but we would like the ability to fetch\nresource_usage data from an endpoint programmatically to evaluate our\njob performance. I thought it might be worth suggesting this upstream to\nsee if it's something you'd like too :)\n\nThis PR:\n1. Use the internal method to fetch the dataframes for a job\n2. Transform the data frame to dictionary with `orient='split'`\n\nAnd FWIW, here's how to convert it back into a dataframe:\n\n```python\nimport pandas as pd\n\nresponse = {} # response from Hail Batch\ndataframes = {\n key: pd.DataFrame(data=values['data'], columns=values['columns'])\n for key, values in response.items()\n}\n```\n\nI tested this in on a dev deploy and it worked pretty well, but happy to\nadd testing if you can direct me to a place to add it.\n\n---------\n\nCo-authored-by: Michael Franklin \nCo-authored-by: John Marshall ","shortMessageHtmlLink":"[batch] Add resource_usage endpoint for jobs (#14328)"}},{"before":"cb112bb04b9baf0dbcf8bd5ccf6b6ef67c06da5f","after":"60955f094523af465bd0a0271a450d8d5749acbb","ref":"refs/heads/ps-04-26-simplify_PruneDeadFields","pushedAt":"2024-05-16T19:05:56.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"patrick-schultz","name":"Patrick Schultz","path":"/patrick-schultz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3430459?s=80&v=4"},"commit":{"message":"simplify PruneDeadFields","shortMessageHtmlLink":"simplify PruneDeadFields"}},{"before":"4ea526fd18fb21a6d56b2ac007a0a355c0f1599e","after":"cb112bb04b9baf0dbcf8bd5ccf6b6ef67c06da5f","ref":"refs/heads/ps-04-26-simplify_PruneDeadFields","pushedAt":"2024-05-16T19:05:31.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"patrick-schultz","name":"Patrick Schultz","path":"/patrick-schultz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3430459?s=80&v=4"},"commit":{"message":"simplify PruneDeadFields","shortMessageHtmlLink":"simplify PruneDeadFields"}},{"before":"d3c311ef8d2a8469e6babb4bfcdd0c13ddc00448","after":"1e5d6afd14825b76d59084be73d938db511e901d","ref":"refs/heads/ps-05-14-delete_old_NormalizeNames","pushedAt":"2024-05-16T19:04:59.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"patrick-schultz","name":"Patrick Schultz","path":"/patrick-schultz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3430459?s=80&v=4"},"commit":{"message":"delete old NormalizeNames","shortMessageHtmlLink":"delete old NormalizeNames"}},{"before":"fcffa3710f9f21b298a8378cd315f343e9c3075e","after":null,"ref":"refs/heads/ps-04-24-simplify_NormalizeNames","pushedAt":"2024-05-16T18:25:59.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"hail-ci-robot","name":null,"path":"/hail-ci-robot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/161749420?s=80&v=4"}},{"before":"8a3c60db2849a308082ae676cb2c5ebb2bbbb464","after":"ac26a03c6fb4c1001f9ca3c18260879f9b548725","ref":"refs/heads/main","pushedAt":"2024-05-16T18:25:57.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"hail-ci-robot","name":null,"path":"/hail-ci-robot","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/161749420?s=80&v=4"},"commit":{"message":"[compiler] simplify NormalizeNames (#14514)\n\nGreatly simplifies the `NormalizeNames` pass to be logically independent\nof the binding structure. This leaves the old implementation, and\nasserts that they agree. Will delete the old implementation in a follow\nup.","shortMessageHtmlLink":"[compiler] simplify NormalizeNames (#14514)"}},{"before":"e706b0e4f0c4f7bedcbd67c4c71fa5cce344da66","after":"4ea526fd18fb21a6d56b2ac007a0a355c0f1599e","ref":"refs/heads/ps-04-26-simplify_PruneDeadFields","pushedAt":"2024-05-16T17:39:11.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"patrick-schultz","name":"Patrick Schultz","path":"/patrick-schultz","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3430459?s=80&v=4"},"commit":{"message":"simplify PruneDeadFields","shortMessageHtmlLink":"simplify PruneDeadFields"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEX6d-GAA","startCursor":null,"endCursor":null}},"title":"Activity · hail-is/hail"}