{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":297165750,"defaultBranch":"main","name":"YMFF","ownerLogin":"yakovmanshin","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2020-09-20T21:20:45.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/4648742?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1727296497.0","currentOid":""},"activityList":{"items":[{"before":"852e7a289ee8690644e3b47023bf97f13a06cd4c","after":null,"ref":"refs/heads/156-swift-6","pushedAt":"2024-09-25T20:34:57.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"yakovmanshin","name":"Yakov Manshin","path":"/yakovmanshin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4648742?s=80&v=4"}},{"before":"384b467815d113c3f873cd3e8bb9b9a8b7931b30","after":"c76f3840583d05f3f799d3c2a4fe414f3be8eb62","ref":"refs/heads/main","pushedAt":"2024-09-25T20:34:55.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"yakovmanshin","name":"Yakov Manshin","path":"/yakovmanshin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4648742?s=80&v=4"},"commit":{"message":"[#156] Switched to Swift 6 (#157)\n\n* Updated tools version to Swift 6\r\n* Updated Swift version in the podspec\r\n* Removed Swift 5.x from GHA workflows\r\n* Switched the Linux image to Ubuntu 24.04","shortMessageHtmlLink":"[#156] Switched to Swift 6 (#157)"}},{"before":"262c4f9fdcf753c6ac9009dc64fbfdc07f06b4e3","after":"852e7a289ee8690644e3b47023bf97f13a06cd4c","ref":"refs/heads/156-swift-6","pushedAt":"2024-09-25T20:26:33.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"yakovmanshin","name":"Yakov Manshin","path":"/yakovmanshin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4648742?s=80&v=4"},"commit":{"message":"Changed Image to Ubuntu 24.04","shortMessageHtmlLink":"Changed Image to Ubuntu 24.04"}},{"before":null,"after":"262c4f9fdcf753c6ac9009dc64fbfdc07f06b4e3","ref":"refs/heads/156-swift-6","pushedAt":"2024-09-18T17:01:05.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"yakovmanshin","name":"Yakov Manshin","path":"/yakovmanshin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4648742?s=80&v=4"},"commit":{"message":"Removed Swift 5.9 and 5.10 from GHA Workflow","shortMessageHtmlLink":"Removed Swift 5.9 and 5.10 from GHA Workflow"}},{"before":"b5019a24612111681792c2f71e6df2577b2a1b16","after":null,"ref":"refs/heads/113-concurrency-checking","pushedAt":"2024-09-18T16:39:08.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"yakovmanshin","name":"Yakov Manshin","path":"/yakovmanshin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4648742?s=80&v=4"}},{"before":"3b2272164aa13703a3c9151929acb2b2e5555232","after":"384b467815d113c3f873cd3e8bb9b9a8b7931b30","ref":"refs/heads/main","pushedAt":"2024-09-18T16:39:07.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"yakovmanshin","name":"Yakov Manshin","path":"/yakovmanshin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4648742?s=80&v=4"},"commit":{"message":"[#113] Enabled Concurrency Checking (#155)\n\n* Enabled complete concurrency checking in `Package.swift`\r\n* Added Swift 6 and Xcode 16 to GitHub Actions workflows","shortMessageHtmlLink":"[#113] Enabled Concurrency Checking (#155)"}},{"before":null,"after":"b5019a24612111681792c2f71e6df2577b2a1b16","ref":"refs/heads/113-concurrency-checking","pushedAt":"2024-09-18T16:29:22.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"yakovmanshin","name":"Yakov Manshin","path":"/yakovmanshin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4648742?s=80&v=4"},"commit":{"message":"Added Swift 6 to GHA Workflow","shortMessageHtmlLink":"Added Swift 6 to GHA Workflow"}},{"before":"f0fd45f9829b6dda510a983730152e356e2f2a90","after":null,"ref":"refs/heads/144-swift-5.9","pushedAt":"2024-05-17T07:37:56.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"yakovmanshin","name":"Yakov Manshin","path":"/yakovmanshin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4648742?s=80&v=4"}},{"before":"a0a1205287e11b47a5ffc1e765682b3cb3a985ff","after":"3b2272164aa13703a3c9151929acb2b2e5555232","ref":"refs/heads/main","pushedAt":"2024-05-17T07:37:54.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"yakovmanshin","name":"Yakov Manshin","path":"/yakovmanshin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4648742?s=80&v=4"},"commit":{"message":"[#144] Updated Minimum Swift Version to 5.9 (#153)\n\n* Updated the minimum compiler version to Swift 5.9\r\n* Removed testing with Swift 5.8 from the GitHub Actions workflow\r\n* Updated source code to modern syntax","shortMessageHtmlLink":"[#144] Updated Minimum Swift Version to 5.9 (#153)"}},{"before":null,"after":"f0fd45f9829b6dda510a983730152e356e2f2a90","ref":"refs/heads/144-swift-5.9","pushedAt":"2024-05-17T07:17:42.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"yakovmanshin","name":"Yakov Manshin","path":"/yakovmanshin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4648742?s=80&v=4"},"commit":{"message":"Removed Redundant `return`s","shortMessageHtmlLink":"Removed Redundant returns"}},{"before":"70bb8929de75f32ba43559c96a424fbf50f09553","after":null,"ref":"refs/heads/110-v4-docs","pushedAt":"2024-05-13T02:59:17.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"yakovmanshin","name":"Yakov Manshin","path":"/yakovmanshin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4648742?s=80&v=4"}},{"before":"6121effd224fc7ab2b2139a10c556c29576eb4c9","after":"a0a1205287e11b47a5ffc1e765682b3cb3a985ff","ref":"refs/heads/main","pushedAt":"2024-05-13T02:59:16.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"yakovmanshin","name":"Yakov Manshin","path":"/yakovmanshin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4648742?s=80&v=4"},"commit":{"message":"[#110] v4 Documentation (#152)\n\n* Updated `README` with instructions and examples for YMFF v4\r\n* Updated code documentation\r\n* Updated version number in the podspec file","shortMessageHtmlLink":"[#110] v4 Documentation (#152)"}},{"before":"2992a7d0bb086f7dc660f34d31cd9b0b80bdd4bc","after":"70bb8929de75f32ba43559c96a424fbf50f09553","ref":"refs/heads/110-v4-docs","pushedAt":"2024-05-13T02:53:29.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"yakovmanshin","name":"Yakov Manshin","path":"/yakovmanshin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4648742?s=80&v=4"},"commit":{"message":"Updated Sections","shortMessageHtmlLink":"Updated Sections"}},{"before":null,"after":"2992a7d0bb086f7dc660f34d31cd9b0b80bdd4bc","ref":"refs/heads/110-v4-docs","pushedAt":"2024-05-13T02:28:14.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"yakovmanshin","name":"Yakov Manshin","path":"/yakovmanshin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4648742?s=80&v=4"},"commit":{"message":"Removed License and Copyright","shortMessageHtmlLink":"Removed License and Copyright"}},{"before":"860e6b88d0ecc86869f67ee2c62666c7b29c3e7a","after":null,"ref":"refs/heads/147-optionals-in-UserDefaultsStore","pushedAt":"2024-05-13T00:43:07.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"yakovmanshin","name":"Yakov Manshin","path":"/yakovmanshin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4648742?s=80&v=4"}},{"before":"90460f37ac848f7e1d408d44b989aa9a76587207","after":"6121effd224fc7ab2b2139a10c556c29576eb4c9","ref":"refs/heads/main","pushedAt":"2024-05-13T00:43:06.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"yakovmanshin","name":"Yakov Manshin","path":"/yakovmanshin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4648742?s=80&v=4"},"commit":{"message":"[#147] Crash Fix for Optionals in `UserDefaultsStore` (#151)\n\n* `UserDefaults` does not accept `nil` as the value in a record\r\n* Upon finding a `nil`, `UserDefaults` raises an exception which crashes the client app\r\n* This fix does not add complete support for optionals but addresses the crash by checking the type against the `ExpressibleByNilLiteral` protocol and throwing the `optionalValuesAreNotSupported` error\r\n* Complete support for optionals in `UserDefaultsStore` is planned for #150","shortMessageHtmlLink":"[#147] Crash Fix for Optionals in UserDefaultsStore (#151)"}},{"before":null,"after":"860e6b88d0ecc86869f67ee2c62666c7b29c3e7a","ref":"refs/heads/147-optionals-in-UserDefaultsStore","pushedAt":"2024-05-13T00:30:07.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"yakovmanshin","name":"Yakov Manshin","path":"/yakovmanshin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4648742?s=80&v=4"},"commit":{"message":"Updated `UserDefaultsStore`","shortMessageHtmlLink":"Updated UserDefaultsStore"}},{"before":"3a507dd06eee53d757eac654c18daa89e0f5abcd","after":null,"ref":"refs/heads/148-removed-saveChanges","pushedAt":"2024-05-12T23:13:20.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"yakovmanshin","name":"Yakov Manshin","path":"/yakovmanshin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4648742?s=80&v=4"}},{"before":"068bad7f7fbe81b94e88deeb796c9aa1a5b9a0e7","after":"90460f37ac848f7e1d408d44b989aa9a76587207","ref":"refs/heads/main","pushedAt":"2024-05-12T23:13:19.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"yakovmanshin","name":"Yakov Manshin","path":"/yakovmanshin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4648742?s=80&v=4"},"commit":{"message":"[#148] Removed `saveChanges()` (#149)\n\n* The `saveChanges()` method was not needed for the majority of feature-flag stores\r\n* Only `UserDefaultsStore` had this method implemented\r\n* This change removes the method from protocols for mutable feature-flag stores\r\n* `UserDefaultsStore` synchronizes the changes in `deinit`\r\n* If a custom feature-flag store needs to save changes explicitly, it should implement an internal way to do so","shortMessageHtmlLink":"[#148] Removed saveChanges() (#149)"}},{"before":"1762acb4a9a961304e9066546a6f03cbd520f597","after":"3a507dd06eee53d757eac654c18daa89e0f5abcd","ref":"refs/heads/148-removed-saveChanges","pushedAt":"2024-05-12T23:05:58.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"yakovmanshin","name":"Yakov Manshin","path":"/yakovmanshin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4648742?s=80&v=4"},"commit":{"message":"Updated `UserDefaultsStore`","shortMessageHtmlLink":"Updated UserDefaultsStore"}},{"before":null,"after":"1762acb4a9a961304e9066546a6f03cbd520f597","ref":"refs/heads/148-removed-saveChanges","pushedAt":"2024-05-12T23:04:20.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"yakovmanshin","name":"Yakov Manshin","path":"/yakovmanshin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4648742?s=80&v=4"},"commit":{"message":"Updated `UserDefaultsStore`","shortMessageHtmlLink":"Updated UserDefaultsStore"}},{"before":"8bb9c8c412c7e5e437c70a6e790bbfd6e419c94e","after":null,"ref":"refs/heads/145-v4-cleanup","pushedAt":"2024-05-12T18:26:17.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"yakovmanshin","name":"Yakov Manshin","path":"/yakovmanshin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4648742?s=80&v=4"}},{"before":"f78a313dffb642d9a6301975a383bc3e3fcde871","after":"068bad7f7fbe81b94e88deeb796c9aa1a5b9a0e7","ref":"refs/heads/main","pushedAt":"2024-05-12T18:26:16.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"yakovmanshin","name":"Yakov Manshin","path":"/yakovmanshin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4648742?s=80&v=4"},"commit":{"message":"[#145] Code Cleanup for v4 (#146)\n\n* Renamed feature-flag stores’ methods\r\n* Renamed resolver’s methods\r\n* Renamed `FeatureFlag.removeValueFromMutableStore()` to `FeatureFlag.removeValueFromMutableStores()`\r\n* Removed `FeatureFlagResolverProtocol.configuration`\r\n* Updated `FeatureFlagResolver.Error`\r\n* Updated resolver’s initializer\r\n* Updated file headers","shortMessageHtmlLink":"[#145] Code Cleanup for v4 (#146)"}},{"before":"f86cd9989977e07a078814f81d84a23c9ce4bbdd","after":"8bb9c8c412c7e5e437c70a6e790bbfd6e419c94e","ref":"refs/heads/145-v4-cleanup","pushedAt":"2024-05-12T17:00:37.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"yakovmanshin","name":"Yakov Manshin","path":"/yakovmanshin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4648742?s=80&v=4"},"commit":{"message":"`FeatureFlag.removeValueFromMutableStores()`","shortMessageHtmlLink":"FeatureFlag.removeValueFromMutableStores()"}},{"before":null,"after":"f86cd9989977e07a078814f81d84a23c9ce4bbdd","ref":"refs/heads/145-v4-cleanup","pushedAt":"2024-05-12T02:24:09.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"yakovmanshin","name":"Yakov Manshin","path":"/yakovmanshin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4648742?s=80&v=4"},"commit":{"message":"Updated Resolver Init","shortMessageHtmlLink":"Updated Resolver Init"}},{"before":"dc76b1a245625755ef3fd1c27454ab6db9b0ae6a","after":null,"ref":"refs/heads/130-optional-values","pushedAt":"2024-05-12T01:50:39.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"yakovmanshin","name":"Yakov Manshin","path":"/yakovmanshin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4648742?s=80&v=4"}},{"before":"ec331f7a0751c696091649a9a490e4deea68c504","after":"f78a313dffb642d9a6301975a383bc3e3fcde871","ref":"refs/heads/main","pushedAt":"2024-05-12T01:50:38.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"yakovmanshin","name":"Yakov Manshin","path":"/yakovmanshin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4648742?s=80&v=4"},"commit":{"message":"[#130] Support for Optional Values (#143)\n\n* Previously, feature-flag stores returned `nil` when the value was not found\r\n* This behavior made it impossible to distinguish between the absence of a value and a literal `nil` value\r\n* While this distinction wasn’t important in the majority of cases, it could be sometimes\r\n* For that reason, optional values were not supported in YMFF\r\n* #132 / #139 changed the protocols for feature-flag stores so they throw errors instead of returning `nil` for nonexistent values\r\n* This change made it possible to accept `nil` as a valid feature-flag value","shortMessageHtmlLink":"[#130] Support for Optional Values (#143)"}},{"before":null,"after":"dc76b1a245625755ef3fd1c27454ab6db9b0ae6a","ref":"refs/heads/130-optional-values","pushedAt":"2024-05-12T01:23:58.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"yakovmanshin","name":"Yakov Manshin","path":"/yakovmanshin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4648742?s=80&v=4"},"commit":{"message":"Refactored `value(for:)`","shortMessageHtmlLink":"Refactored value(for:)"}},{"before":"02aa2a5ef010e0dc0919e713a456ce9182679059","after":null,"ref":"refs/heads/131-update-all-mutable-stores","pushedAt":"2024-05-12T01:00:14.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"yakovmanshin","name":"Yakov Manshin","path":"/yakovmanshin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4648742?s=80&v=4"}},{"before":"44376c8cbeec8faec5f749f6d50936b70b3b36f2","after":"ec331f7a0751c696091649a9a490e4deea68c504","ref":"refs/heads/main","pushedAt":"2024-05-12T01:00:13.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"yakovmanshin","name":"Yakov Manshin","path":"/yakovmanshin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/4648742?s=80&v=4"},"commit":{"message":"[#131] Update All Mutable Stores When Setting or Removing Values (#142)\n\n* Previously, only the first mutable store was updated when `FeatureFlagResolver` received a call to set or remove a value\r\n* In this update, the behavior changes: Now all matching stores (i.e. mutable or synchronous mutable) are updated accordingly\r\n* If one of the stores throws an error in the process, this error is caught and kept by the resolver; this is to avoid incomplete operations where an error in a single store prevents updates to the others\r\n* After the remaining stores are updated; the last thrown error is re-thrown by the resolver","shortMessageHtmlLink":"[#131] Update All Mutable Stores When Setting or Removing Values (#142)"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"startCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOS0yNVQyMDozNDo1Ny4wMDAwMDBazwAAAATAxiWa","endCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wNS0xMlQwMTowMDoxMy4wMDAwMDBazwAAAARHdrZq"}},"title":"Activity · yakovmanshin/YMFF"}