{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":198847404,"defaultBranch":"main","name":"swift-nio-ssh","ownerLogin":"apple","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2019-07-25T14:31:23.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/10639145?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1711459471.0","currentOid":""},"activityList":{"items":[{"before":"d7d410f23eea1b4d0296a826e4a55ecce615b614","after":"36a4f6f4179ef5ebbeca501fc2125734b9f46290","ref":"refs/heads/main","pushedAt":"2024-03-11T08:49:47.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"Lukasa","name":"Cory Benfield","path":"/Lukasa","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1382556?s=80&v=4"},"commit":{"message":"Raise minimum Swift version to 5.8 (#165)","shortMessageHtmlLink":"Raise minimum Swift version to 5.8 (#165)"}},{"before":"b8751ccc97951e2dfd0b5fe5588e6986fe72a234","after":"d7d410f23eea1b4d0296a826e4a55ecce615b614","ref":"refs/heads/main","pushedAt":"2023-12-18T17:41:38.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"simonjbeaumont","name":"Si Beaumont","path":"/simonjbeaumont","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1125539?s=80&v=4"},"commit":{"message":"Fix build on non-macOS Apple platforms (#164)","shortMessageHtmlLink":"Fix build on non-macOS Apple platforms (#164)"}},{"before":"ef942741a150595077ca3452c626d34965f7d730","after":"b8751ccc97951e2dfd0b5fe5588e6986fe72a234","ref":"refs/heads/main","pushedAt":"2023-11-27T09:52:17.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"Lukasa","name":"Cory Benfield","path":"/Lukasa","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1382556?s=80&v=4"},"commit":{"message":"Android: force unwrap address passed to fwrite() for NDK 26 (#163)\n\nMotivation:\r\n\r\nGet this repo building with Android NDK 26, which added nullability annotations\r\n\r\nModifications:\r\n\r\n- A single force unwrap of a buffer's baseAddress\r\n\r\nResult:\r\n\r\nThis repo builds and passes its tests with the latest Android LTS NDK 26.","shortMessageHtmlLink":"Android: force unwrap address passed to fwrite() for NDK 26 (#163)"}},{"before":"d33c7012ecc0d175396d0a0533198cf66aa7f17e","after":"ef942741a150595077ca3452c626d34965f7d730","ref":"refs/heads/main","pushedAt":"2023-11-16T09:05:41.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"simonjbeaumont","name":"Si Beaumont","path":"/simonjbeaumont","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1125539?s=80&v=4"},"commit":{"message":"Workaround allocation regression caused by missing specialized `[Substring].joined` (#161)\n\n### Motivation\r\n\r\nThe specialization for `[Substring].joined` was dropped in Swift 5.9[^1] and consequently we regressed in allocations[^2].\r\n\r\n### Modifications\r\n\r\nWorkaround the lack of specialized `[Substring].joined` by handwriting the comma-separated concatenation of the SSH algorithms.\r\n\r\n### Result\r\n\r\nReduces the allocations to below what they were prior to the toolchain regression.\r\n\r\n### Notes\r\n\r\nAs a baseline, I was using `d23c142` of this repo, which is a commit from around the time of the toolchain regression.\r\n\r\nThe allocation results are as follows:\r\n\r\n| swift-nio-ssh | swift toolchain | allocs |\r\n|------------------:|:-----------------|----------:|\r\n| d23c142 (Aug 11) | 5.9-2023-07-25 | 1,007,000 |\r\n| | 5.9-2023-07-29 | 1,100,000 |\r\n| | 5.9-RELEASE | 1,100,000 |\r\n| d23c142 + patch | 5.9-2023-07-25 | 989,000 |\r\n| | 5.9-2023-07-29 | 989,000 |\r\n| | 5.9-RELEASE | 989,000 |\r\n| d33c701 (main) | 5.9-RELEASE | 1,060,000 |\r\n| main + patch | 5.9-RELEASE | 949,000 |\r\n\r\nFrom this we infer:\r\n1. The allocation regression was caused by a regression in Swift 5.9 between nightly versions `2023-07-25` and `2023-07-29`.\r\n2. The same regression is still present in `5.9-RELEASE`.\r\n3. The patch seems to mitigate the regression we're seeing as a result of the new 5.9 behavior.\r\n4. Since the original regression we actually saved some 40k allocations by some other change in the code (either here, or more likely in a dependency).\r\n\r\nFor more information on the Swift issue, including reproducer package and `heaptrack` outputs, see the Swift issue[^1].\r\n\r\n[^1]: https://github.com/apple/swift/issues/69883\r\n[^2]: #157","shortMessageHtmlLink":"Workaround allocation regression caused by missing specialized `[Subs…"}},{"before":"422ee5c6e7f2d300df94f433a88535e1dbfde50b","after":"d33c7012ecc0d175396d0a0533198cf66aa7f17e","ref":"refs/heads/main","pushedAt":"2023-10-04T09:17:12.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"Lukasa","name":"Cory Benfield","path":"/Lukasa","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1382556?s=80&v=4"},"commit":{"message":"Bump minimum Swift version to 5.7 (#160)\n\nMotivation:\r\n\r\nNow that Swift 5.9 is GM we should update the supported versions and\r\nremove 5.6\r\n\r\nModifications:\r\n\r\n* Update `Package.swift`\r\n* Remove `#if swift(>=5.7)` guards\r\n* Delete the 5.6 docker compose file and make a 5.10 one\r\n* Update docs\r\n\r\nResult:\r\n\r\nRemove support for Swift 5.6, add 5.10","shortMessageHtmlLink":"Bump minimum Swift version to 5.7 (#160)"}},{"before":"4723c13e0f4eb1f8293eb73ea465bf70bb3e0c0b","after":null,"ref":"refs/heads/FranzBusch-patch-1","pushedAt":"2023-09-20T15:57:41.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"Lukasa","name":"Cory Benfield","path":"/Lukasa","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1382556?s=80&v=4"}},{"before":"bf630f0ca366ec8513e51c95f90659237e18eba4","after":"422ee5c6e7f2d300df94f433a88535e1dbfde50b","ref":"refs/heads/main","pushedAt":"2023-09-20T15:57:40.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"Lukasa","name":"Cory Benfield","path":"/Lukasa","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1382556?s=80&v=4"},"commit":{"message":"Increase swift-crypto version range (#159)","shortMessageHtmlLink":"Increase swift-crypto version range (#159)"}},{"before":"9d7a99b6e9af0ae60e5d9c7e06af4d39c2f17276","after":"4723c13e0f4eb1f8293eb73ea465bf70bb3e0c0b","ref":"refs/heads/FranzBusch-patch-1","pushedAt":"2023-09-20T09:27:35.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"FranzBusch","name":"Franz Busch","path":"/FranzBusch","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3491887?s=80&v=4"},"commit":{"message":"Update allocation limits","shortMessageHtmlLink":"Update allocation limits"}},{"before":"77b74ceab0ffcf1146c80ce6f36ed06e2780d1fe","after":"9d7a99b6e9af0ae60e5d9c7e06af4d39c2f17276","ref":"refs/heads/FranzBusch-patch-1","pushedAt":"2023-09-20T09:27:28.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"FranzBusch","name":"Franz Busch","path":"/FranzBusch","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3491887?s=80&v=4"},"commit":{"message":"Update allocation limits","shortMessageHtmlLink":"Update allocation limits"}},{"before":null,"after":"77b74ceab0ffcf1146c80ce6f36ed06e2780d1fe","ref":"refs/heads/FranzBusch-patch-1","pushedAt":"2023-09-20T09:10:20.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"FranzBusch","name":"Franz Busch","path":"/FranzBusch","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3491887?s=80&v=4"},"commit":{"message":"Increase swift-crypto version range","shortMessageHtmlLink":"Increase swift-crypto version range"}},{"before":"946d452184aff93004d952a8ed4f7d9acf9516f7","after":"bf630f0ca366ec8513e51c95f90659237e18eba4","ref":"refs/heads/main","pushedAt":"2023-09-06T13:08:43.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"Lukasa","name":"Cory Benfield","path":"/Lukasa","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1382556?s=80&v=4"},"commit":{"message":"Raise minimum NIO version (#156)\n\nMotivation:\r\n\r\nbump the minimum NIO version.\r\n\r\nModifications:\r\n\r\n- Raise NIO version\r\n\r\nResult:\r\n\r\nBuild success","shortMessageHtmlLink":"Raise minimum NIO version (#156)"}},{"before":"0e927f7298bc4b44ec468134bc83ae2772150861","after":"946d452184aff93004d952a8ed4f7d9acf9516f7","ref":"refs/heads/main","pushedAt":"2023-09-06T12:53:07.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"Lukasa","name":"Cory Benfield","path":"/Lukasa","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1382556?s=80&v=4"},"commit":{"message":"Update allocation results (#157)","shortMessageHtmlLink":"Update allocation results (#157)"}},{"before":"d23c142c96e1c30cb464843db464f793b6e3d8c0","after":"0e927f7298bc4b44ec468134bc83ae2772150861","ref":"refs/heads/main","pushedAt":"2023-08-14T09:24:44.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"PeterAdams-A","name":"Peter Adams","path":"/PeterAdams-A","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/63288215?s=80&v=4"},"commit":{"message":"Fix some sendability warnings in tests (#155)\n\nMotivation:\r\n\r\nSwift concurrency warnings are here to help.\r\nWe can encode some of our assumptions to the type system.\r\n\r\nModifications:\r\n\r\nReplace a number of captured variables with LoopBound instances.\r\n\r\nResult:\r\n\r\nFewer sendability warnings","shortMessageHtmlLink":"Fix some sendability warnings in tests (#155)"}},{"before":"ded5e5ce4ef1b2c29933088651fa66c89e2175d2","after":"d23c142c96e1c30cb464843db464f793b6e3d8c0","ref":"refs/heads/main","pushedAt":"2023-08-11T13:30:58.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"PeterAdams-A","name":"Peter Adams","path":"/PeterAdams-A","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/63288215?s=80&v=4"},"commit":{"message":"Fix some sendability warnings in tests (#154)\n\nMotivation:\r\n\r\nSwift concurrency warnings are here to help.\r\nWe can encode some of our assumptions to the type system.\r\n\r\nModifications:\r\n\r\nReplace a number of captured variables with LoopBound instances.\r\n\r\nResult:\r\n\r\nFewer sendability warnings","shortMessageHtmlLink":"Fix some sendability warnings in tests (#154)"}},{"before":"d7279ea11da9387329ab85ac3c252ac67ff821e8","after":"ded5e5ce4ef1b2c29933088651fa66c89e2175d2","ref":"refs/heads/main","pushedAt":"2023-07-21T16:20:36.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"Lukasa","name":"Cory Benfield","path":"/Lukasa","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1382556?s=80&v=4"},"commit":{"message":"Fixes client mode version parsing (#153)\n\nMotivation:\r\nServer may send additional lines of data before version, but since we\r\nuse version as part of key exchange, we need to filter out those lines,\r\notherwise it will fail key exchange.\r\n\r\nModifications:\r\n - Strip out lines of data before version in client role\r\n - Update tests","shortMessageHtmlLink":"Fixes client mode version parsing (#153)"}},{"before":"db57f32ce11368953af2d31496995b2e118a24e1","after":"d7279ea11da9387329ab85ac3c252ac67ff821e8","ref":"refs/heads/main","pushedAt":"2023-07-04T11:58:42.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"dnadoba","name":"David Nadoba","path":"/dnadoba","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5688874?s=80&v=4"},"commit":{"message":"Fully adopt `Sendable` (#151)\n\n* Fully adopt `Sendable`\r\n\r\n* revert change to see if it reduces allocations\r\n\r\n* Remove @Sendable to see if it reduces allocations\r\n\r\n* try fixing allocation increase\r\n\r\n* Fix formatting","shortMessageHtmlLink":"Fully adopt Sendable (#151)"}},{"before":"dcc089fcefdf049c44a9d14f759994e8aa33eab4","after":"db57f32ce11368953af2d31496995b2e118a24e1","ref":"refs/heads/main","pushedAt":"2023-06-29T07:33:55.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"Lukasa","name":"Cory Benfield","path":"/Lukasa","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1382556?s=80&v=4"},"commit":{"message":"Correctly resize ByteBuffers (#150)\n\nMotivation:\r\n\r\nIn two different places in this module we \"reserve\" space by\r\nmoving the writer index forward. This isn't the correct way to\r\ndo that, and it's a bit of a needless performance\r\noptimization. Instead, just write a zero in that location and\r\ncome back to it.\r\n\r\nModifications:\r\n\r\n- Replace unmotivated writer index move with a write.\r\n- Add tests.\r\n\r\nResult:\r\n\r\nFewer crashes","shortMessageHtmlLink":"Correctly resize ByteBuffers (#150)"}},{"before":"64a14c085161e5c329e27ab51f3b3b838cc0c334","after":"dcc089fcefdf049c44a9d14f759994e8aa33eab4","ref":"refs/heads/main","pushedAt":"2023-06-26T10:26:21.460Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"FranzBusch","name":"Franz Busch","path":"/FranzBusch","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3491887?s=80&v=4"},"commit":{"message":"Use #if canImport(Darwin) where possible (#148)\n\nCo-authored-by: Cory Benfield ","shortMessageHtmlLink":"Use #if canImport(Darwin) where possible (#148)"}},{"before":"4c2c8d0a5a7c65ffdc9984ab3a24164e7781029e","after":"64a14c085161e5c329e27ab51f3b3b838cc0c334","ref":"refs/heads/main","pushedAt":"2023-06-23T07:37:54.315Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"Lukasa","name":"Cory Benfield","path":"/Lukasa","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1382556?s=80&v=4"},"commit":{"message":"Update allocation limits (#149)\n\nAllocations regressed due to our use of EmbeddedChannel, which now\r\nuses a new atomic since apple/swift-nio#2429. We can update the\r\nlimits accordingly.","shortMessageHtmlLink":"Update allocation limits (#149)"}},{"before":"9ccac602fb809cdb88d402a43bc2c7670400ab25","after":null,"ref":"refs/heads/rnro-update-alloc-limits-ci","pushedAt":"2023-05-31T08:26:58.351Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"rnro","name":"Rick Newton-Rogers","path":"/rnro","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/104022490?s=80&v=4"}},{"before":"7733e7e8ffb68eb83fedf35550c29882d8fda404","after":"4c2c8d0a5a7c65ffdc9984ab3a24164e7781029e","ref":"refs/heads/main","pushedAt":"2023-05-31T08:26:57.167Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"rnro","name":"Rick Newton-Rogers","path":"/rnro","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/104022490?s=80&v=4"},"commit":{"message":"Update update-alloc-limits-to-last-completed-ci-build (#146)\n\n* Update update-alloc-limits-to-last-completed-ci-build\r\n\r\nUpdate to drop 55 support and add 59\r\n\r\n* update nightly alloc counts","shortMessageHtmlLink":"Update update-alloc-limits-to-last-completed-ci-build (#146)"}},{"before":"0c6395cd595cebe4651f4a75c0e0353a425d914a","after":"9ccac602fb809cdb88d402a43bc2c7670400ab25","ref":"refs/heads/rnro-update-alloc-limits-ci","pushedAt":"2023-05-30T13:36:19.902Z","pushType":"push","commitsCount":1,"pusher":{"login":"rnro","name":"Rick Newton-Rogers","path":"/rnro","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/104022490?s=80&v=4"},"commit":{"message":"update nightly alloc counts","shortMessageHtmlLink":"update nightly alloc counts"}},{"before":null,"after":"0c6395cd595cebe4651f4a75c0e0353a425d914a","ref":"refs/heads/rnro-update-alloc-limits-ci","pushedAt":"2023-05-30T12:11:51.417Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"rnro","name":"Rick Newton-Rogers","path":"/rnro","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/104022490?s=80&v=4"},"commit":{"message":"Update update-alloc-limits-to-last-completed-ci-build\n\nUpdate to drop 55 support and add 59","shortMessageHtmlLink":"Update update-alloc-limits-to-last-completed-ci-build"}},{"before":"c56ababb0e22e0cdf5ec8b31698e07f943ea92e7","after":"7733e7e8ffb68eb83fedf35550c29882d8fda404","ref":"refs/heads/main","pushedAt":"2023-04-20T08:06:02.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"Lukasa","name":"Cory Benfield","path":"/Lukasa","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1382556?s=80&v=4"},"commit":{"message":"Avoid sending window update messages if locally closed (#143) (#144)\n\nMotivation:\r\n\r\nCurrently the library crashes if a window update is required and\r\nthe connection is closed locally.\r\n\r\nModifications:\r\n\r\nCheck the connection state before sending a window update message.","shortMessageHtmlLink":"Avoid sending window update messages if locally closed (#143) (#144)"}},{"before":"64ab3fb6e7849c43b58c1e5e13c8e4ea0fd16a66","after":"c56ababb0e22e0cdf5ec8b31698e07f943ea92e7","ref":"refs/heads/main","pushedAt":"2023-04-13T16:21:40.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"Lukasa","name":"Cory Benfield","path":"/Lukasa","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1382556?s=80&v=4"},"commit":{"message":"Drop Swift 5.5 support. (#140)\n\nMotivation:\r\n\r\nPer our support policy, with the release of 5.8 we are no longer support\r\nSwift 5.5.\r\n\r\nModifications:\r\n\r\nDrop infrastructure supporting 5.5\r\nRemove conditional compilation guards.\r\n\r\nResult:\r\n\r\nNice clean Swift 5.6+ repo.","shortMessageHtmlLink":"Drop Swift 5.5 support. (#140)"}},{"before":"b48f8f87a49acc96eb6e126faeedfd9b47115325","after":"64ab3fb6e7849c43b58c1e5e13c8e4ea0fd16a66","ref":"refs/heads/main","pushedAt":"2023-04-13T16:09:06.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"yim-lee","name":"Yim Lee","path":"/yim-lee","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12647725?s=80&v=4"},"commit":{"message":"Add docker-compose file for Swift 5.9 (#139)\n\n* Add docker-compose file for Swift 5.9\r\n\r\n* Use allocation counts from main not 5.8","shortMessageHtmlLink":"Add docker-compose file for Swift 5.9 (#139)"}},{"before":"b5a495a0c8201014cb9d6ac2f03415313b3cbc9d","after":"b48f8f87a49acc96eb6e126faeedfd9b47115325","ref":"refs/heads/main","pushedAt":"2023-04-12T09:58:50.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"Lukasa","name":"Cory Benfield","path":"/Lukasa","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1382556?s=80&v=4"},"commit":{"message":"Fix documentation and add support for CI-ing it (#137)","shortMessageHtmlLink":"Fix documentation and add support for CI-ing it (#137)"}},{"before":"28d80d4cc3142aa7611e67722a99b4bedf197f44","after":"b5a495a0c8201014cb9d6ac2f03415313b3cbc9d","ref":"refs/heads/main","pushedAt":"2023-04-12T09:39:32.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"Lukasa","name":"Cory Benfield","path":"/Lukasa","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1382556?s=80&v=4"},"commit":{"message":"Update allocation limits for main vs 5.8 (#138)\n\nSwift appears to have regressed allocations in the nightlies. I don't\r\nknow why yet, but for now let's get CI working again.","shortMessageHtmlLink":"Update allocation limits for main vs 5.8 (#138)"}}],"hasNextPage":false,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEEgavbQA","startCursor":null,"endCursor":null}},"title":"Activity · apple/swift-nio-ssh"}