{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":618971498,"defaultBranch":"main","name":"SwiftGodot","ownerLogin":"migueldeicaza","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2023-03-25T21:56:30.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/36863?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1716317881.0","currentOid":""},"activityList":{"items":[{"before":"bb8ccb6e1af71d5d8f528ac8ab78cb2c647f76c6","after":"91356035672c80808e1f6d5d06a293e32469dbe7","ref":"refs/heads/main","pushedAt":"2024-05-23T20:52:32.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"migueldeicaza","name":"Miguel de Icaza","path":"/migueldeicaza","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/36863?s=80&v=4"},"commit":{"message":"Add link to port of platformer sample","shortMessageHtmlLink":"Add link to port of platformer sample"}},{"before":"29a0149838d56e9255efa38bfd4b08b3b8941630","after":"bb8ccb6e1af71d5d8f528ac8ab78cb2c647f76c6","ref":"refs/heads/main","pushedAt":"2024-05-22T16:18:24.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"migueldeicaza","name":"Miguel de Icaza","path":"/migueldeicaza","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/36863?s=80&v=4"},"commit":{"message":"Update docs","shortMessageHtmlLink":"Update docs"}},{"before":"5fc35e18e54281d63547d05e53f6937a67e3e783","after":"29a0149838d56e9255efa38bfd4b08b3b8941630","ref":"refs/heads/main","pushedAt":"2024-05-22T16:16:34.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"migueldeicaza","name":"Miguel de Icaza","path":"/migueldeicaza","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/36863?s=80&v=4"},"commit":{"message":"Adds specifying a path to @BindNode (#481)\n\n* Result of getNode is now cached\r\n\r\nPreviously the node would be fetched from the tree each time it was referenced. Meaning this fetch would take place every frame if the @BindNode was used in _physicsProcess or _process. The fetching now takes place the first time, and the cached result every time thereafter.\r\n\r\n* Adds specifying a path to @BindNode\r\n\r\nPreviously the @BindNode property wrapper would only fetch a node based on its property name. Leaving a mix of camel and pascal cased properties in the class. Basing the wrapper entirely on the property name also posed an issue if your node was nested within the tree. These changes allow one to use the property wrapper @BindNode(withPath:) to either specify a nested path, or to decouple the naming of the property and the node within Godot. As the initializer parameter is optional, this is a nonbreaking change.","shortMessageHtmlLink":"Adds specifying a path to @BindNode (#481)"}},{"before":"845a3383cbeec2827879c930aea0fd2ef44119cb","after":"5fc35e18e54281d63547d05e53f6937a67e3e783","ref":"refs/heads/main","pushedAt":"2024-05-22T13:17:06.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"migueldeicaza","name":"Miguel de Icaza","path":"/migueldeicaza","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/36863?s=80&v=4"},"commit":{"message":"Result of getNode is now cached (#479)\n\nPreviously the node would be fetched from the tree each time it was referenced. Meaning this fetch would take place every frame if the @BindNode was used in _physicsProcess or _process. The fetching now takes place the first time, and the cached result every time thereafter.","shortMessageHtmlLink":"Result of getNode is now cached (#479)"}},{"before":"d24243235496f83d7c6b842c768864ab614626cf","after":"845a3383cbeec2827879c930aea0fd2ef44119cb","ref":"refs/heads/main","pushedAt":"2024-05-21T21:05:23.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"migueldeicaza","name":"Miguel de Icaza","path":"/migueldeicaza","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/36863?s=80&v=4"},"commit":{"message":"Fix docs","shortMessageHtmlLink":"Fix docs"}},{"before":"2b278a61346a6207e9af61410ef5fea3b5a3b0a8","after":"d24243235496f83d7c6b842c768864ab614626cf","ref":"refs/heads/main","pushedAt":"2024-05-21T19:05:12.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"migueldeicaza","name":"Miguel de Icaza","path":"/migueldeicaza","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/36863?s=80&v=4"},"commit":{"message":"Changed my mind","shortMessageHtmlLink":"Changed my mind"}},{"before":"24e6cf44a7b4eca424b765a123e8dc98df271d7a","after":"2b278a61346a6207e9af61410ef5fea3b5a3b0a8","ref":"refs/heads/main","pushedAt":"2024-05-21T19:03:53.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"migueldeicaza","name":"Miguel de Icaza","path":"/migueldeicaza","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/36863?s=80&v=4"},"commit":{"message":"Update","shortMessageHtmlLink":"Update"}},{"before":"04e47f566c35e53495332cdfde5fba057d17e1c2","after":"24e6cf44a7b4eca424b765a123e8dc98df271d7a","ref":"refs/heads/main","pushedAt":"2024-05-21T19:02:42.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"migueldeicaza","name":"Miguel de Icaza","path":"/migueldeicaza","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/36863?s=80&v=4"},"commit":{"message":"Add Package.resolved, per discussion here: https://forums.swift.org/t/package-resolved-should-go-in-the-gitignore/14699/20","shortMessageHtmlLink":"Add Package.resolved, per discussion here: https://forums.swift.org/t…"}},{"before":"e7e8de3aa930e474ed98c2b83aff4e3d41c4aff4","after":"04e47f566c35e53495332cdfde5fba057d17e1c2","ref":"refs/heads/main","pushedAt":"2024-05-21T18:46:09.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"migueldeicaza","name":"Miguel de Icaza","path":"/migueldeicaza","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/36863?s=80&v=4"},"commit":{"message":"Export enum (#476)\n\nExport enumeration support\r\n\r\nAny enumeration that is blessed with `CaseIterable` can be then exported to Godot\r\nby using `@Export(.enum)` on it, like this:\r\n\r\n```\r\nenum MyEnumeration: Int, CaseIterable {\r\n case first\r\n case second\r\n}\r\n```\r\n\r\nTo export, use the `.enum` parameter to Export:\r\n\r\n```\r\n@Godot\r\nclass Demo: Node {\r\n @Export(.enum)\r\n var myState: MyEnumeration\r\n}\r\n```\r\n\r\nOne limitation of the current change is that this works by using\r\n`CaseIterable`, either by manually typing it, or using the\r\n`PickerNameProvider` macro.","shortMessageHtmlLink":"Export enum (#476)"}},{"before":"a1c3fc9e52a1f71a529f7e294b5e3a0b169cc3cc","after":"bf56edc3e965c85b44af1e7247929e22715ed0df","ref":"refs/heads/exportEnum","pushedAt":"2024-05-21T18:38:59.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"migueldeicaza","name":"Miguel de Icaza","path":"/migueldeicaza","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/36863?s=80&v=4"},"commit":{"message":"Remove the limitation on enumerations having to be Int64, thanks to numericCast()","shortMessageHtmlLink":"Remove the limitation on enumerations having to be Int64, thanks to n…"}},{"before":"c8bdee1ca6068233439b6e4395007f90d76e4246","after":"e7e8de3aa930e474ed98c2b83aff4e3d41c4aff4","ref":"refs/heads/main","pushedAt":"2024-05-21T15:06:49.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"migueldeicaza","name":"Miguel de Icaza","path":"/migueldeicaza","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/36863?s=80&v=4"},"commit":{"message":"Update issue templates","shortMessageHtmlLink":"Update issue templates"}},{"before":"b92d25fe1bd7fbded8b16ba489cf22afe1f3ed99","after":"c8bdee1ca6068233439b6e4395007f90d76e4246","ref":"refs/heads/main","pushedAt":"2024-05-21T15:06:22.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"migueldeicaza","name":"Miguel de Icaza","path":"/migueldeicaza","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/36863?s=80&v=4"},"commit":{"message":"Update issue templates","shortMessageHtmlLink":"Update issue templates"}},{"before":"75fe38ef040caecfb6991fedda762472090c5790","after":"a1c3fc9e52a1f71a529f7e294b5e3a0b169cc3cc","ref":"refs/heads/exportEnum","pushedAt":"2024-05-21T03:27:39.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"migueldeicaza","name":"Miguel de Icaza","path":"/migueldeicaza","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/36863?s=80&v=4"},"commit":{"message":"Fixes the export for other kinds of variables that the enum support\nregressed, introduce regression test suite, and make it so that\nPickerNameProvider requires Int64 backing cases.","shortMessageHtmlLink":"Fixes the export for other kinds of variables that the enum support"}},{"before":"971c930f19fa0643348137d387e04188d31652b2","after":"253552180f0264915479862cc173367990b7986a","ref":"refs/heads/useInts","pushedAt":"2024-05-20T21:04:32.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"migueldeicaza","name":"Miguel de Icaza","path":"/migueldeicaza","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/36863?s=80&v=4"},"commit":{"message":"Work in progress","shortMessageHtmlLink":"Work in progress"}},{"before":null,"after":"971c930f19fa0643348137d387e04188d31652b2","ref":"refs/heads/useInts","pushedAt":"2024-05-20T20:51:29.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"migueldeicaza","name":"Miguel de Icaza","path":"/migueldeicaza","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/36863?s=80&v=4"},"commit":{"message":"Use Int instead of Int64 across the board, undoes a previous change to the way we store enumerations, and instead makes it so that our public API that took Int64 values takes Int values","shortMessageHtmlLink":"Use Int instead of Int64 across the board, undoes a previous change t…"}},{"before":"c55da25a7059a6dfa6108b33c260123159bf23de","after":"75fe38ef040caecfb6991fedda762472090c5790","ref":"refs/heads/exportEnum","pushedAt":"2024-05-20T20:34:51.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"migueldeicaza","name":"Miguel de Icaza","path":"/migueldeicaza","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/36863?s=80&v=4"},"commit":{"message":"Fix the build","shortMessageHtmlLink":"Fix the build"}},{"before":"0489d9fb7054a1dfb4be70046464f65986293589","after":"c55da25a7059a6dfa6108b33c260123159bf23de","ref":"refs/heads/exportEnum","pushedAt":"2024-05-20T20:22:52.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"migueldeicaza","name":"Miguel de Icaza","path":"/migueldeicaza","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/36863?s=80&v=4"},"commit":{"message":"Quick work-around to test, always use Int64, to match what our generator produces","shortMessageHtmlLink":"Quick work-around to test, always use Int64, to match what our genera…"}},{"before":"cf818fd054ff496fb03e2572cf4af5bbd99321af","after":"0489d9fb7054a1dfb4be70046464f65986293589","ref":"refs/heads/exportEnum","pushedAt":"2024-05-20T20:19:51.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"migueldeicaza","name":"Miguel de Icaza","path":"/migueldeicaza","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/36863?s=80&v=4"},"commit":{"message":"Quick work-around to test, always use Int64, to match what our generator produces","shortMessageHtmlLink":"Quick work-around to test, always use Int64, to match what our genera…"}},{"before":"4a06096dae881490d673b6c81ab407795a90d481","after":"cf818fd054ff496fb03e2572cf4af5bbd99321af","ref":"refs/heads/exportEnum","pushedAt":"2024-05-20T19:51:39.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"migueldeicaza","name":"Miguel de Icaza","path":"/migueldeicaza","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/36863?s=80&v=4"},"commit":{"message":"Make built-in enumerations work","shortMessageHtmlLink":"Make built-in enumerations work"}},{"before":null,"after":"4a06096dae881490d673b6c81ab407795a90d481","ref":"refs/heads/exportEnum","pushedAt":"2024-05-20T17:16:48.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"migueldeicaza","name":"Miguel de Icaza","path":"/migueldeicaza","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/36863?s=80&v=4"},"commit":{"message":"Export enumeration support\n\nThe idea is to do this in two steps, the first step is to use the\nconvenience @PickerNameProvider macro on an enumeration, like this:\n\n```\nenum MyEnumeration: Int, CaseIterable {\n case first\n case second\n}\n```\n\nAnd then to export this, use the `.enum` parameter to Export:\n\n```\n@Godot\nclass Demo: Node {\n @Export(.enum)\n var myState: MyEnumeration\n}\n```\n\nOne limitation of the current change is that this works by using\n`CaseIterable`, either by manually typing it, or using the\n`PickerNameProvider` macro, this means that the built-in enumerations\nfrom SwiftGodot currently are not surfaced, I could look into that.\n\nAdditionally, this does not support the string enumeration values that\nGodot supports, that could be easily added by probing if the values\nare strings, and using a different mechanism to format the key/values\npassed to the property registration.","shortMessageHtmlLink":"Export enumeration support"}},{"before":null,"after":"7814f48d7b546df9b2bbe602c6554aeeb0f825bb","ref":"refs/heads/signalOnThread","pushedAt":"2024-05-16T21:18:22.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"migueldeicaza","name":"Miguel de Icaza","path":"/migueldeicaza","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/36863?s=80&v=4"},"commit":{"message":"Potential fix, as we need to invoke connect from its thread group","shortMessageHtmlLink":"Potential fix, as we need to invoke connect from its thread group"}},{"before":"ea327c1e622c202b78635d7ceb38f84dc4725e3c","after":"b92d25fe1bd7fbded8b16ba489cf22afe1f3ed99","ref":"refs/heads/main","pushedAt":"2024-05-14T02:37:26.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"migueldeicaza","name":"Miguel de Icaza","path":"/migueldeicaza","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/36863?s=80&v=4"},"commit":{"message":"Update WorkingInVsCode.md to include requirement for min platform target (#469)\n\nThe working in vscode instructions are missing this step to also set the minimum platform target to macOS 13.","shortMessageHtmlLink":"Update WorkingInVsCode.md to include requirement for min platform tar…"}},{"before":"4e1bfee4f5592fc1b0889dcb6edd5a8b0ae28b5b","after":"ea327c1e622c202b78635d7ceb38f84dc4725e3c","ref":"refs/heads/main","pushedAt":"2024-05-13T14:34:42.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"migueldeicaza","name":"Miguel de Icaza","path":"/migueldeicaza","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/36863?s=80&v=4"},"commit":{"message":"Packed: _const interface for subscript getters. (#468)","shortMessageHtmlLink":"Packed: _const interface for subscript getters. (#468)"}},{"before":"53f00035a850fbb1041ae93c465a72f14aad6e84","after":"4e1bfee4f5592fc1b0889dcb6edd5a8b0ae28b5b","ref":"refs/heads/main","pushedAt":"2024-05-13T13:23:25.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"migueldeicaza","name":"Miguel de Icaza","path":"/migueldeicaza","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/36863?s=80&v=4"},"commit":{"message":"Fix url handing regex (#467)","shortMessageHtmlLink":"Fix url handing regex (#467)"}},{"before":"ea1301fa46c74782a2ea6ed822e7f9774a750abd","after":"53f00035a850fbb1041ae93c465a72f14aad6e84","ref":"refs/heads/main","pushedAt":"2024-05-10T22:55:22.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"migueldeicaza","name":"Miguel de Icaza","path":"/migueldeicaza","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/36863?s=80&v=4"},"commit":{"message":"Document new macro","shortMessageHtmlLink":"Document new macro"}},{"before":"f9eeda45fe40c7bb1e042adee3b3047e6cc38bc1","after":"ea1301fa46c74782a2ea6ed822e7f9774a750abd","ref":"refs/heads/main","pushedAt":"2024-05-10T22:44:17.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"migueldeicaza","name":"Miguel de Icaza","path":"/migueldeicaza","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/36863?s=80&v=4"},"commit":{"message":"Extended init macro to allow type registration on all levels (#464) (#465)","shortMessageHtmlLink":"Extended init macro to allow type registration on all levels (#464) (#…"}},{"before":"511e9dd48a8066f71ffa30a3d8c8b93cdf9b3b98","after":"da620708e9a43962259e906f1699f600ee940321","ref":"refs/heads/strict-concurrency","pushedAt":"2024-05-07T03:33:35.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"migueldeicaza","name":"Miguel de Icaza","path":"/migueldeicaza","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/36863?s=80&v=4"},"commit":{"message":"Make more constants let rather than vars","shortMessageHtmlLink":"Make more constants let rather than vars"}},{"before":null,"after":"511e9dd48a8066f71ffa30a3d8c8b93cdf9b3b98","ref":"refs/heads/strict-concurrency","pushedAt":"2024-05-07T03:27:21.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"migueldeicaza","name":"Miguel de Icaza","path":"/migueldeicaza","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/36863?s=80&v=4"},"commit":{"message":"Start of Strict Concurrency support for SwiftGodot.\n\nThe goal is to make the library useful to developers that might use\nmultiple threads/tasks with Godot, and have the Swift compiler assist\nthem, and help them make errors. So it is not as important to get\nthis done quickly, as it is to be useful.\n\nThis first set of changes are fairly straight forward, they enable\nstrict concurrency, which causes some 30,000+ warnings to be flagged.\nMost of these errors were related to shared global state, so this\nchange addresses a big chunk of those 30,000+ instances by using `let`\nin a few places rather than `var`.\n\nThe second set of changes are related to a few globals in SwiftGodot\nand how we handle them. A batch of nonisoalted values are the lock\naround the liveFrameworkObjects and liveSubtypedObjects. These are\nnonisolated, precisely, becuase they are protected manually by that\nlock.\n\nThe EntryPoint's library, token and gi are global variables that are\nused to operate Godot, and currently are only set when initializing\nGodot. I do not intent to put additional checks to prevent the user\nfrom not initializing Godot.\n\nThat said, there is a bug #72 for future improvements for those\nglobals, and in that case, we might change this\n\nOther changes:\n\n* Our generated OptionSets are flagged as Sendable, as they are.\n\n* Removed some variables that we had exposed and did not have to be.","shortMessageHtmlLink":"Start of Strict Concurrency support for SwiftGodot."}},{"before":null,"after":"713082c74c8f996fbd76c4225db3325ce390f00c","ref":"refs/heads/sc-poc","pushedAt":"2024-05-06T15:48:21.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"migueldeicaza","name":"Miguel de Icaza","path":"/migueldeicaza","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/36863?s=80&v=4"},"commit":{"message":"Proof of concept for SwiftConcurrenty, and to report a bug","shortMessageHtmlLink":"Proof of concept for SwiftConcurrenty, and to report a bug"}},{"before":"74d3558ff3022ec0438bcac1237a932fee1c771f","after":"f9eeda45fe40c7bb1e042adee3b3047e6cc38bc1","ref":"refs/heads/main","pushedAt":"2024-05-06T15:18:05.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"migueldeicaza","name":"Miguel de Icaza","path":"/migueldeicaza","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/36863?s=80&v=4"},"commit":{"message":"Update docs","shortMessageHtmlLink":"Update docs"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEUnC3bAA","startCursor":null,"endCursor":null}},"title":"Activity · migueldeicaza/SwiftGodot"}