{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":701494311,"defaultBranch":"canary","name":"baml","ownerLogin":"BoundaryML","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2023-10-06T18:57:41.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/124114301?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1727656948.0","currentOid":""},"activityList":{"items":[{"before":"0960ab2e0d16c50fef58772336b91297ddac6919","after":"d75004ff5b5b365933c1a3155f2761e586026fca","ref":"refs/heads/greg/type-attributes","pushedAt":"2024-09-30T04:07:55.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"imalsogreg","name":"Greg Hale","path":"/imalsogreg","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/993484?s=80&v=4"},"commit":{"message":"Allow types with attributes in more places","shortMessageHtmlLink":"Allow types with attributes in more places"}},{"before":"c177430bf555f7de1fd2d76875d580e47e960487","after":null,"ref":"refs/heads/extractapi2","pushedAt":"2024-09-30T00:42:28.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"aaronvg","name":null,"path":"/aaronvg","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5353992?s=80&v=4"}},{"before":"da1a5e876368074235f4474673a1ebfe632e11ed","after":null,"ref":"refs/heads/gh-readonly-queue/canary/pr-996-90b81df481c4aacff5319b4c052821d918d86961","pushedAt":"2024-09-30T00:42:27.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"github-merge-queue[bot]","name":null,"path":"/apps/github-merge-queue","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9919?s=80&v=4"}},{"before":"90b81df481c4aacff5319b4c052821d918d86961","after":"da1a5e876368074235f4474673a1ebfe632e11ed","ref":"refs/heads/canary","pushedAt":"2024-09-30T00:42:27.000Z","pushType":"merge_queue_merge","commitsCount":1,"pusher":{"login":"github-merge-queue[bot]","name":null,"path":"/apps/github-merge-queue","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9919?s=80&v=4"},"commit":{"message":"extractapi2 (#996)\n\n- **add extract api**\n- **Docs**\n- **add docs**\n\n\n\n----\n\n> [!IMPORTANT]\n> Introduces a new extraction API with documentation and examples,\nupdates OpenAPI spec, and reorganizes documentation structure.\n> \n> - **New Extraction API**:\n> - Added `POST /extract` endpoint in `openapi.yaml` for data extraction\nfrom files using prompts.\n> - Supports multiple file uploads and returns extracted data in JSON\nformat.\n> - **Documentation**:\n> - Added `examples.mdx` with code examples for Python, TypeScript,\nRuby, and Go.\n> - Updated `docs.yml` to include new `boundary-extraction-api` tab and\nnavigation structure.\n> - Added `summary.mdx` and `extraction-api.mdx` for API overview and\nusage.\n> - **Tests**:\n> - Minor changes in `test_functions.py` to accommodate new API\nfeatures.\n> - **Miscellaneous**:\n> - Updated `turbo.json` to include new build dependencies.\n> \n> This description was created by [\"Ellipsis\"\nsrc=\"https://img.shields.io/badge/Ellipsis-blue?color=175173\"](https://www.ellipsis.dev?ref=BoundaryML%2Fbaml&utm_source=github&utm_medium=referral)\nfor c177430bf555f7de1fd2d76875d580e47e960487. It will automatically\nupdate as commits are pushed.\n\n","shortMessageHtmlLink":"extractapi2 (#996)"}},{"before":null,"after":"da1a5e876368074235f4474673a1ebfe632e11ed","ref":"refs/heads/gh-readonly-queue/canary/pr-996-90b81df481c4aacff5319b4c052821d918d86961","pushedAt":"2024-09-30T00:40:35.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"github-merge-queue[bot]","name":null,"path":"/apps/github-merge-queue","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9919?s=80&v=4"},"commit":{"message":"extractapi2 (#996)\n\n- **add extract api**\n- **Docs**\n- **add docs**\n\n\n\n----\n\n> [!IMPORTANT]\n> Introduces a new extraction API with documentation and examples,\nupdates OpenAPI spec, and reorganizes documentation structure.\n> \n> - **New Extraction API**:\n> - Added `POST /extract` endpoint in `openapi.yaml` for data extraction\nfrom files using prompts.\n> - Supports multiple file uploads and returns extracted data in JSON\nformat.\n> - **Documentation**:\n> - Added `examples.mdx` with code examples for Python, TypeScript,\nRuby, and Go.\n> - Updated `docs.yml` to include new `boundary-extraction-api` tab and\nnavigation structure.\n> - Added `summary.mdx` and `extraction-api.mdx` for API overview and\nusage.\n> - **Tests**:\n> - Minor changes in `test_functions.py` to accommodate new API\nfeatures.\n> - **Miscellaneous**:\n> - Updated `turbo.json` to include new build dependencies.\n> \n> This description was created by [\"Ellipsis\"\nsrc=\"https://img.shields.io/badge/Ellipsis-blue?color=175173\"](https://www.ellipsis.dev?ref=BoundaryML%2Fbaml&utm_source=github&utm_medium=referral)\nfor c177430bf555f7de1fd2d76875d580e47e960487. It will automatically\nupdate as commits are pushed.\n\n","shortMessageHtmlLink":"extractapi2 (#996)"}},{"before":null,"after":"c177430bf555f7de1fd2d76875d580e47e960487","ref":"refs/heads/extractapi2","pushedAt":"2024-09-30T00:38:24.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"aaronvg","name":null,"path":"/aaronvg","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5353992?s=80&v=4"},"commit":{"message":"add docs","shortMessageHtmlLink":"add docs"}},{"before":"3dc6ba9745860e6bc8f0ee81a775bd67d2daacb9","after":null,"ref":"refs/heads/bump-version-0.57.1","pushedAt":"2024-09-29T21:04:21.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"aaronvg","name":null,"path":"/aaronvg","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5353992?s=80&v=4"}},{"before":"90b81df481c4aacff5319b4c052821d918d86961","after":null,"ref":"refs/heads/gh-readonly-queue/canary/pr-994-36af43f4f773e1565527916eff7d7837d9f8a983","pushedAt":"2024-09-29T21:04:20.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"github-merge-queue[bot]","name":null,"path":"/apps/github-merge-queue","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9919?s=80&v=4"}},{"before":"36af43f4f773e1565527916eff7d7837d9f8a983","after":"90b81df481c4aacff5319b4c052821d918d86961","ref":"refs/heads/canary","pushedAt":"2024-09-29T21:04:20.000Z","pushType":"merge_queue_merge","commitsCount":1,"pusher":{"login":"github-merge-queue[bot]","name":null,"path":"/apps/github-merge-queue","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9919?s=80&v=4"},"commit":{"message":"chore: Bump version to 0.57.1 (#994)\n\nBump version to 0.57.1\\n\\n❌ Typescript integ tests\\n❌ Python integ\ntests\\n\\nGenerated by bump-version script.\n\n\n----\n\n> [!IMPORTANT]\n> Bump `baml-schema-build` version to `0.57.1` in `Cargo.lock` without\nintegration tests for TypeScript and Python.\n> \n> - **Version Update**:\n> - Bump `baml-schema-build` version from `0.57.0` to `0.57.1` in\n`Cargo.lock`.\n> - **Testing**:\n> - Integration tests for TypeScript and Python are not included in this\nupdate.\n> \n> This description was created by [\"Ellipsis\"\nsrc=\"https://img.shields.io/badge/Ellipsis-blue?color=175173\"](https://www.ellipsis.dev?ref=BoundaryML%2Fbaml&utm_source=github&utm_medium=referral)\nfor 3dc6ba9745860e6bc8f0ee81a775bd67d2daacb9. It will automatically\nupdate as commits are pushed.\n\n","shortMessageHtmlLink":"chore: Bump version to 0.57.1 (#994)"}},{"before":null,"after":"90b81df481c4aacff5319b4c052821d918d86961","ref":"refs/heads/gh-readonly-queue/canary/pr-994-36af43f4f773e1565527916eff7d7837d9f8a983","pushedAt":"2024-09-29T21:02:47.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"github-merge-queue[bot]","name":null,"path":"/apps/github-merge-queue","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9919?s=80&v=4"},"commit":{"message":"chore: Bump version to 0.57.1 (#994)\n\nBump version to 0.57.1\\n\\n❌ Typescript integ tests\\n❌ Python integ\ntests\\n\\nGenerated by bump-version script.\n\n\n----\n\n> [!IMPORTANT]\n> Bump `baml-schema-build` version to `0.57.1` in `Cargo.lock` without\nintegration tests for TypeScript and Python.\n> \n> - **Version Update**:\n> - Bump `baml-schema-build` version from `0.57.0` to `0.57.1` in\n`Cargo.lock`.\n> - **Testing**:\n> - Integration tests for TypeScript and Python are not included in this\nupdate.\n> \n> This description was created by [\"Ellipsis\"\nsrc=\"https://img.shields.io/badge/Ellipsis-blue?color=175173\"](https://www.ellipsis.dev?ref=BoundaryML%2Fbaml&utm_source=github&utm_medium=referral)\nfor 3dc6ba9745860e6bc8f0ee81a775bd67d2daacb9. It will automatically\nupdate as commits are pushed.\n\n","shortMessageHtmlLink":"chore: Bump version to 0.57.1 (#994)"}},{"before":null,"after":"3dc6ba9745860e6bc8f0ee81a775bd67d2daacb9","ref":"refs/heads/bump-version-0.57.1","pushedAt":"2024-09-29T21:01:08.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"aaronvg","name":null,"path":"/aaronvg","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5353992?s=80&v=4"},"commit":{"message":"Run integ tests for 0.57.1","shortMessageHtmlLink":"Run integ tests for 0.57.1"}},{"before":"12d764606b86d8e0ee47d761ebda7130693bc605","after":null,"ref":"refs/heads/ts-fixes","pushedAt":"2024-09-29T19:59:53.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"aaronvg","name":null,"path":"/aaronvg","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5353992?s=80&v=4"}},{"before":"36af43f4f773e1565527916eff7d7837d9f8a983","after":null,"ref":"refs/heads/gh-readonly-queue/canary/pr-992-0960ab2e0d16c50fef58772336b91297ddac6919","pushedAt":"2024-09-29T19:59:52.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"github-merge-queue[bot]","name":null,"path":"/apps/github-merge-queue","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9919?s=80&v=4"}},{"before":"0960ab2e0d16c50fef58772336b91297ddac6919","after":"36af43f4f773e1565527916eff7d7837d9f8a983","ref":"refs/heads/canary","pushedAt":"2024-09-29T19:59:52.000Z","pushType":"merge_queue_merge","commitsCount":1,"pusher":{"login":"github-merge-queue[bot]","name":null,"path":"/apps/github-merge-queue","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9919?s=80&v=4"},"commit":{"message":"ts fixes (#992)\n\n\n\n\n\n> [!IMPORTANT]\n> Add `BamlLogEvent` support and update callback types to allow\n`undefined` in TypeScript, JavaScript, and Rust files.\n> \n> - **Exports**:\n> - Add `BamlLogEvent` to exports in `index.d.ts`, `index.js`, and\n`typescript_src/index.ts`.\n> - **TypeScript Definitions**:\n> - Update `streamFunction` and `streamFunctionSync` in `native.d.ts` to\nallow `cb` parameter to be `undefined`.\n> - **JavaScript**:\n> - Replace `console.error` with `loadErrors.push` in `native.js` for\nerror handling.\n> - **Rust**:\n> - Update `stream_function` and `stream_function_sync` in `runtime.rs`\nto allow `cb` parameter to be `undefined`.\n> - **Dependencies**:\n> - Update `@napi-rs/cli` version in `package.json` from\n`3.0.0-alpha.56` to `3.0.0-alpha.62`.\n> \n> This description was created by [\"Ellipsis\"\nsrc=\"https://img.shields.io/badge/Ellipsis-blue?color=175173\"](https://www.ellipsis.dev?ref=BoundaryML%2Fbaml&utm_source=github&utm_medium=referral)\nfor 12d764606b86d8e0ee47d761ebda7130693bc605. It will automatically\nupdate as commits are pushed.\n\n","shortMessageHtmlLink":"ts fixes (#992)"}},{"before":null,"after":"36af43f4f773e1565527916eff7d7837d9f8a983","ref":"refs/heads/gh-readonly-queue/canary/pr-992-0960ab2e0d16c50fef58772336b91297ddac6919","pushedAt":"2024-09-29T19:58:21.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"github-merge-queue[bot]","name":null,"path":"/apps/github-merge-queue","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9919?s=80&v=4"},"commit":{"message":"ts fixes (#992)\n\n\n\n\n\n> [!IMPORTANT]\n> Add `BamlLogEvent` support and update callback types to allow\n`undefined` in TypeScript, JavaScript, and Rust files.\n> \n> - **Exports**:\n> - Add `BamlLogEvent` to exports in `index.d.ts`, `index.js`, and\n`typescript_src/index.ts`.\n> - **TypeScript Definitions**:\n> - Update `streamFunction` and `streamFunctionSync` in `native.d.ts` to\nallow `cb` parameter to be `undefined`.\n> - **JavaScript**:\n> - Replace `console.error` with `loadErrors.push` in `native.js` for\nerror handling.\n> - **Rust**:\n> - Update `stream_function` and `stream_function_sync` in `runtime.rs`\nto allow `cb` parameter to be `undefined`.\n> - **Dependencies**:\n> - Update `@napi-rs/cli` version in `package.json` from\n`3.0.0-alpha.56` to `3.0.0-alpha.62`.\n> \n> This description was created by [\"Ellipsis\"\nsrc=\"https://img.shields.io/badge/Ellipsis-blue?color=175173\"](https://www.ellipsis.dev?ref=BoundaryML%2Fbaml&utm_source=github&utm_medium=referral)\nfor 12d764606b86d8e0ee47d761ebda7130693bc605. It will automatically\nupdate as commits are pushed.\n\n","shortMessageHtmlLink":"ts fixes (#992)"}},{"before":null,"after":"12d764606b86d8e0ee47d761ebda7130693bc605","ref":"refs/heads/ts-fixes","pushedAt":"2024-09-29T19:56:27.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"aaronvg","name":null,"path":"/aaronvg","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5353992?s=80&v=4"},"commit":{"message":"ts fixes","shortMessageHtmlLink":"ts fixes"}},{"before":null,"after":"0960ab2e0d16c50fef58772336b91297ddac6919","ref":"refs/heads/greg/type-attributes","pushedAt":"2024-09-29T18:56:26.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"imalsogreg","name":"Greg Hale","path":"/imalsogreg","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/993484?s=80&v=4"},"commit":{"message":"Remove dynamic string attributes (#991)\n\nThis is a cleanup PR removing `DynamicStringAttributes`, then doing some\nrefactors that become possible afterward.\n\n`DynamicStringAttributes` are attributes that are specified in terms of\npython code embedded in the attribute, with the runtime executing that\ncode to instantiate the attribute to some value. This feature was\nremoved for various reasons, but some of the infrastructure for it was\nleft in the codebase. When implementing `@check` and `@assert`, those\nunused code paths were adding complexity, so it was a good time to\ndelete them and simplify.\n\nI'm proposing to merge this change in now to avoid merge conflicts with\nparallel work going on for type literals.\n\nMain changes:\n- Remove the `ToStringAttributes::Dynamic` variant and\n`DynamicStringAttributes` struct.\n- Remove the `ToStringAttributes` enum altogether, since it only had one\nvariant left: `StaticStringAttributes`.\n- Fix the exact attributes we use as `Attributes::{alias, dynamic_type,\ndescription}`, rather than storing them in a `meta` HashMap that can\nsupport arbitrary named attributes.\n- Rename `ToStringAttributes::Static(StaticStringAttributes)` to simply\n`Attributes`, (since we don't need \"Static\" nor \"String\" in the name any\nmore to distinguish them from some other type of attributes).\n- Remove `Class.dynamic_fields` field: this was only used to store\ndynamic attributes.\n- Remove the `Types` struct that iterated over fields, sorting static\nones from dynamic ones.\n\n## Testing done\n\n - [x] Unit tests\n - [x] Python integration tests\n\nNote: Python integration tests for dynamic types still work. This PR\npreserves dynamic type features (i.e. allowing Enums and Classes to grow\nnew variants and fields through function calls in the generated client\ncode).\n\n\n\n----\n\n> [!IMPORTANT]\n> Remove `DynamicStringAttributes` and refactor attribute handling to\nsimplify codebase and reduce complexity.\n> \n> - **Behavior**:\n> - Remove `DynamicStringAttributes` and `ToStringAttributes` enum,\nsimplifying attribute handling.\n> - Update `NodeAttributes` in `repr.rs` to remove dynamic attribute\nhandling.\n> - Remove `Class.dynamic_fields` and related logic in `repr.rs` and\n`walker.rs`.\n> - **Refactoring**:\n> - Rename `ToStringAttributes::Static` to `Attributes`.\n> - Update functions in `alias.rs`, `description.rs`, and\n`to_string_attribute.rs` to use `Attributes`.\n> - Remove `get.rs` and `meta.rs` as they are no longer needed.\n> - **Testing**:\n> - Ensure unit tests and Python integration tests pass, maintaining\ndynamic type features.\n> - **Misc**:\n> - Add `maturin` to `shell.nix` for building Python extensions.\n> \n> This description was created by [\"Ellipsis\"\nsrc=\"https://img.shields.io/badge/Ellipsis-blue?color=175173\"](https://www.ellipsis.dev?ref=BoundaryML%2Fbaml&utm_source=github&utm_medium=referral)\nfor 78bebef401ec570c1d8ff13d59e5c0074335dd86. It will automatically\nupdate as commits are pushed.\n\n\n\n\n---------\n\nCo-authored-by: Greg Hale ","shortMessageHtmlLink":"Remove dynamic string attributes (#991)"}},{"before":"78bebef401ec570c1d8ff13d59e5c0074335dd86","after":null,"ref":"refs/heads/greg/no-dynamic-attributes","pushedAt":"2024-09-29T16:20:17.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"imalsogreg","name":"Greg Hale","path":"/imalsogreg","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/993484?s=80&v=4"}},{"before":"0960ab2e0d16c50fef58772336b91297ddac6919","after":null,"ref":"refs/heads/gh-readonly-queue/canary/pr-991-752824723404a4ed4c4b1e31c43d140e9346dca2","pushedAt":"2024-09-29T16:20:16.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"github-merge-queue[bot]","name":null,"path":"/apps/github-merge-queue","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9919?s=80&v=4"}},{"before":"752824723404a4ed4c4b1e31c43d140e9346dca2","after":"0960ab2e0d16c50fef58772336b91297ddac6919","ref":"refs/heads/canary","pushedAt":"2024-09-29T16:20:15.000Z","pushType":"merge_queue_merge","commitsCount":1,"pusher":{"login":"github-merge-queue[bot]","name":null,"path":"/apps/github-merge-queue","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9919?s=80&v=4"},"commit":{"message":"Remove dynamic string attributes (#991)\n\nThis is a cleanup PR removing `DynamicStringAttributes`, then doing some\nrefactors that become possible afterward.\n\n`DynamicStringAttributes` are attributes that are specified in terms of\npython code embedded in the attribute, with the runtime executing that\ncode to instantiate the attribute to some value. This feature was\nremoved for various reasons, but some of the infrastructure for it was\nleft in the codebase. When implementing `@check` and `@assert`, those\nunused code paths were adding complexity, so it was a good time to\ndelete them and simplify.\n\nI'm proposing to merge this change in now to avoid merge conflicts with\nparallel work going on for type literals.\n\nMain changes:\n- Remove the `ToStringAttributes::Dynamic` variant and\n`DynamicStringAttributes` struct.\n- Remove the `ToStringAttributes` enum altogether, since it only had one\nvariant left: `StaticStringAttributes`.\n- Fix the exact attributes we use as `Attributes::{alias, dynamic_type,\ndescription}`, rather than storing them in a `meta` HashMap that can\nsupport arbitrary named attributes.\n- Rename `ToStringAttributes::Static(StaticStringAttributes)` to simply\n`Attributes`, (since we don't need \"Static\" nor \"String\" in the name any\nmore to distinguish them from some other type of attributes).\n- Remove `Class.dynamic_fields` field: this was only used to store\ndynamic attributes.\n- Remove the `Types` struct that iterated over fields, sorting static\nones from dynamic ones.\n\n## Testing done\n\n - [x] Unit tests\n - [x] Python integration tests\n\nNote: Python integration tests for dynamic types still work. This PR\npreserves dynamic type features (i.e. allowing Enums and Classes to grow\nnew variants and fields through function calls in the generated client\ncode).\n\n\n\n----\n\n> [!IMPORTANT]\n> Remove `DynamicStringAttributes` and refactor attribute handling to\nsimplify codebase and reduce complexity.\n> \n> - **Behavior**:\n> - Remove `DynamicStringAttributes` and `ToStringAttributes` enum,\nsimplifying attribute handling.\n> - Update `NodeAttributes` in `repr.rs` to remove dynamic attribute\nhandling.\n> - Remove `Class.dynamic_fields` and related logic in `repr.rs` and\n`walker.rs`.\n> - **Refactoring**:\n> - Rename `ToStringAttributes::Static` to `Attributes`.\n> - Update functions in `alias.rs`, `description.rs`, and\n`to_string_attribute.rs` to use `Attributes`.\n> - Remove `get.rs` and `meta.rs` as they are no longer needed.\n> - **Testing**:\n> - Ensure unit tests and Python integration tests pass, maintaining\ndynamic type features.\n> - **Misc**:\n> - Add `maturin` to `shell.nix` for building Python extensions.\n> \n> This description was created by [\"Ellipsis\"\nsrc=\"https://img.shields.io/badge/Ellipsis-blue?color=175173\"](https://www.ellipsis.dev?ref=BoundaryML%2Fbaml&utm_source=github&utm_medium=referral)\nfor 78bebef401ec570c1d8ff13d59e5c0074335dd86. It will automatically\nupdate as commits are pushed.\n\n\n\n\n---------\n\nCo-authored-by: Greg Hale ","shortMessageHtmlLink":"Remove dynamic string attributes (#991)"}},{"before":null,"after":"0960ab2e0d16c50fef58772336b91297ddac6919","ref":"refs/heads/gh-readonly-queue/canary/pr-991-752824723404a4ed4c4b1e31c43d140e9346dca2","pushedAt":"2024-09-29T16:18:42.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"github-merge-queue[bot]","name":null,"path":"/apps/github-merge-queue","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9919?s=80&v=4"},"commit":{"message":"Remove dynamic string attributes (#991)\n\nThis is a cleanup PR removing `DynamicStringAttributes`, then doing some\nrefactors that become possible afterward.\n\n`DynamicStringAttributes` are attributes that are specified in terms of\npython code embedded in the attribute, with the runtime executing that\ncode to instantiate the attribute to some value. This feature was\nremoved for various reasons, but some of the infrastructure for it was\nleft in the codebase. When implementing `@check` and `@assert`, those\nunused code paths were adding complexity, so it was a good time to\ndelete them and simplify.\n\nI'm proposing to merge this change in now to avoid merge conflicts with\nparallel work going on for type literals.\n\nMain changes:\n- Remove the `ToStringAttributes::Dynamic` variant and\n`DynamicStringAttributes` struct.\n- Remove the `ToStringAttributes` enum altogether, since it only had one\nvariant left: `StaticStringAttributes`.\n- Fix the exact attributes we use as `Attributes::{alias, dynamic_type,\ndescription}`, rather than storing them in a `meta` HashMap that can\nsupport arbitrary named attributes.\n- Rename `ToStringAttributes::Static(StaticStringAttributes)` to simply\n`Attributes`, (since we don't need \"Static\" nor \"String\" in the name any\nmore to distinguish them from some other type of attributes).\n- Remove `Class.dynamic_fields` field: this was only used to store\ndynamic attributes.\n- Remove the `Types` struct that iterated over fields, sorting static\nones from dynamic ones.\n\n## Testing done\n\n - [x] Unit tests\n - [x] Python integration tests\n\nNote: Python integration tests for dynamic types still work. This PR\npreserves dynamic type features (i.e. allowing Enums and Classes to grow\nnew variants and fields through function calls in the generated client\ncode).\n\n\n\n----\n\n> [!IMPORTANT]\n> Remove `DynamicStringAttributes` and refactor attribute handling to\nsimplify codebase and reduce complexity.\n> \n> - **Behavior**:\n> - Remove `DynamicStringAttributes` and `ToStringAttributes` enum,\nsimplifying attribute handling.\n> - Update `NodeAttributes` in `repr.rs` to remove dynamic attribute\nhandling.\n> - Remove `Class.dynamic_fields` and related logic in `repr.rs` and\n`walker.rs`.\n> - **Refactoring**:\n> - Rename `ToStringAttributes::Static` to `Attributes`.\n> - Update functions in `alias.rs`, `description.rs`, and\n`to_string_attribute.rs` to use `Attributes`.\n> - Remove `get.rs` and `meta.rs` as they are no longer needed.\n> - **Testing**:\n> - Ensure unit tests and Python integration tests pass, maintaining\ndynamic type features.\n> - **Misc**:\n> - Add `maturin` to `shell.nix` for building Python extensions.\n> \n> This description was created by [\"Ellipsis\"\nsrc=\"https://img.shields.io/badge/Ellipsis-blue?color=175173\"](https://www.ellipsis.dev?ref=BoundaryML%2Fbaml&utm_source=github&utm_medium=referral)\nfor 78bebef401ec570c1d8ff13d59e5c0074335dd86. It will automatically\nupdate as commits are pushed.\n\n\n\n\n---------\n\nCo-authored-by: Greg Hale ","shortMessageHtmlLink":"Remove dynamic string attributes (#991)"}},{"before":"534d4dbe611c53796380a7887786918ebf18e8b4","after":"78bebef401ec570c1d8ff13d59e5c0074335dd86","ref":"refs/heads/greg/no-dynamic-attributes","pushedAt":"2024-09-29T16:17:12.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"imalsogreg","name":"Greg Hale","path":"/imalsogreg","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/993484?s=80&v=4"},"commit":{"message":"Remove unused method","shortMessageHtmlLink":"Remove unused method"}},{"before":"2af9cfdd7fae159a7f63275c0a71001529ea6d04","after":"534d4dbe611c53796380a7887786918ebf18e8b4","ref":"refs/heads/greg/no-dynamic-attributes","pushedAt":"2024-09-29T15:56:31.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"imalsogreg","name":"Greg Hale","path":"/imalsogreg","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/993484?s=80&v=4"},"commit":{"message":"cleanup","shortMessageHtmlLink":"cleanup"}},{"before":"930e2dc50c189a7a2197c70f67d87f6cfd75f54e","after":"2af9cfdd7fae159a7f63275c0a71001529ea6d04","ref":"refs/heads/greg/no-dynamic-attributes","pushedAt":"2024-09-29T15:50:37.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"imalsogreg","name":"Greg Hale","path":"/imalsogreg","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/993484?s=80&v=4"},"commit":{"message":"Fix bad copypaste","shortMessageHtmlLink":"Fix bad copypaste"}},{"before":"262d65e8228d0ce9ff6d78be76f044d0eb00b755","after":"930e2dc50c189a7a2197c70f67d87f6cfd75f54e","ref":"refs/heads/greg/no-dynamic-attributes","pushedAt":"2024-09-29T15:43:09.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"imalsogreg","name":"Greg Hale","path":"/imalsogreg","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/993484?s=80&v=4"},"commit":{"message":"Undelete the skip attribute","shortMessageHtmlLink":"Undelete the skip attribute"}},{"before":"c732bd13108c96fea7b0f68dfa57e4a79a578b64","after":"262d65e8228d0ce9ff6d78be76f044d0eb00b755","ref":"refs/heads/greg/no-dynamic-attributes","pushedAt":"2024-09-28T03:50:23.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"imalsogreg","name":"Greg Hale","path":"/imalsogreg","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/993484?s=80&v=4"},"commit":{"message":"cleanup","shortMessageHtmlLink":"cleanup"}},{"before":"ca11c436580922a19bb494e7c8c6999c08b9a8f2","after":"c732bd13108c96fea7b0f68dfa57e4a79a578b64","ref":"refs/heads/greg/no-dynamic-attributes","pushedAt":"2024-09-27T23:40:28.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"imalsogreg","name":"Greg Hale","path":"/imalsogreg","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/993484?s=80&v=4"},"commit":{"message":"big renaming","shortMessageHtmlLink":"big renaming"}},{"before":"ca48f199070635c6b532d130fe5f168977367a4e","after":"ca11c436580922a19bb494e7c8c6999c08b9a8f2","ref":"refs/heads/greg/no-dynamic-attributes","pushedAt":"2024-09-27T23:26:24.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"imalsogreg","name":"Greg Hale","path":"/imalsogreg","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/993484?s=80&v=4"},"commit":{"message":"delete unused newtype","shortMessageHtmlLink":"delete unused newtype"}},{"before":"2f0a960be4b4c729cafc0e0d7d03d4a1dc4fdcec","after":"ca48f199070635c6b532d130fe5f168977367a4e","ref":"refs/heads/greg/no-dynamic-attributes","pushedAt":"2024-09-27T23:23:10.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"imalsogreg","name":"Greg Hale","path":"/imalsogreg","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/993484?s=80&v=4"},"commit":{"message":"delete more","shortMessageHtmlLink":"delete more"}},{"before":"01e3654590b3bc13e54d7022f498eff602afd4a0","after":"2f0a960be4b4c729cafc0e0d7d03d4a1dc4fdcec","ref":"refs/heads/greg/no-dynamic-attributes","pushedAt":"2024-09-27T23:04:46.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"imalsogreg","name":"Greg Hale","path":"/imalsogreg","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/993484?s=80&v=4"},"commit":{"message":"Correct error message for duplicate description attrs","shortMessageHtmlLink":"Correct error message for duplicate description attrs"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"startCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOS0zMFQwNDowNzo1NS4wMDAwMDBazwAAAATEPM__","endCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOS0yN1QyMzowNDo0Ni4wMDAwMDBazwAAAATDFSis"}},"title":"Activity · BoundaryML/baml"}