{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":68841963,"defaultBranch":"main","name":"grpc-swift","ownerLogin":"grpc","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2016-09-21T17:35:31.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/7802525?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1713790466.0","currentOid":""},"activityList":{"items":[{"before":"71b4fe85ea5aad09a7391a7a284e1bd7deebdd34","after":"07eade28c84e2d5e9237b7a6f19469bd34f843a2","ref":"refs/heads/main","pushedAt":"2024-05-02T13:08:03.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"gjcairo","name":"Gustavo Cairo","path":"/gjcairo","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5359423?s=80&v=4"},"commit":{"message":"Add `Hashable` conformance to `GRPC.ConnectionTarget` (#1876)\n\nMotivation:\r\n\r\n`GRPC.ConnectionTarget` is not `Hashable` and, for example, cannot be stored in a set.\r\n\r\nModifications:\r\n\r\nAdd `Hashable` conformance to `GRPC.ConnectionTarget`.\r\n\r\nResult:\r\n\r\n`GRPC.ConnectionTarget` is now `Hashable`.","shortMessageHtmlLink":"Add Hashable conformance to GRPC.ConnectionTarget (#1876)"}},{"before":"90a68388a52ec05ed6485455e899b368412f5f72","after":"71b4fe85ea5aad09a7391a7a284e1bd7deebdd34","ref":"refs/heads/main","pushedAt":"2024-05-02T09:29:12.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"gjcairo","name":"Gustavo Cairo","path":"/gjcairo","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5359423?s=80&v=4"},"commit":{"message":"Add missing availability guards to tests (#1874)","shortMessageHtmlLink":"Add missing availability guards to tests (#1874)"}},{"before":"047cce9f7cb5b8ec7fce35ca565a3af35612ec23","after":"90a68388a52ec05ed6485455e899b368412f5f72","ref":"refs/heads/main","pushedAt":"2024-05-01T11:48:59.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"glbrntt","name":"George Barnett","path":"/glbrntt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5047671?s=80&v=4"},"commit":{"message":"Add Subchannel (#1868)\n\nMotivation:\r\n\r\nTo build a load balancer we need subchannels. Subchannels wrap\r\nconnections to provide a connection to a backend. They allow multiple\r\naddresses to be tried when establishing a connection as well retry logic\r\nfor establishing a connection (with backoff).\r\n\r\nModifications:\r\n\r\n- Add a Subchannel type which wraps Connection objects with a similar\r\n API: a subchannel must be run, changes in its state are reported via\r\n the events sequence, and state changes can be requested by calling\r\n `connect`/`close` etc.\r\n- Add tests\r\n\r\nResult:\r\n\r\nCan build up a load balancer using subchannels.","shortMessageHtmlLink":"Add Subchannel (#1868)"}},{"before":"5dc50ed70306671842275530f0289778860beb0d","after":"047cce9f7cb5b8ec7fce35ca565a3af35612ec23","ref":"refs/heads/main","pushedAt":"2024-04-29T14:49:29.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"glbrntt","name":"George Barnett","path":"/glbrntt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5047671?s=80&v=4"},"commit":{"message":"Enable `Metadata` to be initializable from a `Sequence` of `Elements` (#1871)\n\nMotivation:\r\n\r\nThis would be a convenient API to have.\r\n\r\nModifications:\r\n\r\nAdd a new `public init` to `Metadata` which takes `some Sequence` and initializes `Metadata` collection from the `Sequence` of `Elements`.\r\n\r\nResult:\r\n\r\nUsers can now initialize `Metadata` from a `Sequence` of `Elements`.","shortMessageHtmlLink":"Enable Metadata to be initializable from a Sequence of Elements ("}},{"before":"8bc72fd0c01e626143b6d763f4ceb5a98cfa3ad5","after":"5dc50ed70306671842275530f0289778860beb0d","ref":"refs/heads/main","pushedAt":"2024-04-29T12:52:26.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"glbrntt","name":"George Barnett","path":"/glbrntt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5047671?s=80&v=4"},"commit":{"message":"Remove lazy connect parameter from client transport (#1870)\n\nMotivation:\r\n\r\nThe client transport has a parameter to enabled lazy connectivity. If\r\nset the transport shouldn't create a connection until a stream is\r\ncreated. However, this isn't applicable for all transports, instead it\r\nshould be configured on concrete transport types.\r\n\r\nModifications:\r\n\r\n- Remove 'lazily' parameter\r\n\r\nResult:\r\n\r\nBetter API","shortMessageHtmlLink":"Remove lazy connect parameter from client transport (#1870)"}},{"before":"9c782201f7a473fb9d486ad6919a9684537711b6","after":"8bc72fd0c01e626143b6d763f4ceb5a98cfa3ad5","ref":"refs/heads/main","pushedAt":"2024-04-26T14:22:06.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"glbrntt","name":"George Barnett","path":"/glbrntt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5047671?s=80&v=4"},"commit":{"message":"Add `removeAll(where:)` to `Metadata`. (#1869)\n\nMotivation:\r\n\r\nSometimes users want to remove some values from `Metadata`. At the moment they can only remove one at a time or all values.\r\n\r\nModifications:\r\n\r\nAdd `removeAll(where:)` to `Metadata`.\r\n\r\nResult:\r\n\r\nUsers can now remove values from `Metadata` that match a given predicate.","shortMessageHtmlLink":"Add removeAll(where:) to Metadata. (#1869)"}},{"before":"63af6098abb47b88fc7362c7f362221a8cef7c51","after":"9c782201f7a473fb9d486ad6919a9684537711b6","ref":"refs/heads/main","pushedAt":"2024-04-23T09:53:28.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"glbrntt","name":"George Barnett","path":"/glbrntt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5047671?s=80&v=4"},"commit":{"message":"A few helpers to pave the way for subchannel (#1867)\n\nMotivation:\r\n\r\nTo keep the subchannel PR smaller, a few related but standalone bits can\r\nbe added separately.\r\n\r\nModifications:\r\n\r\n- Bump the NIO version to pickup a NIOAsyncChannel fix and a new cascade\r\n function\r\n- Add the `ConnectivityState` enum\r\n- Add `ProcessUniqueID` and `SubchannelID`\r\n\r\nResult:\r\n\r\nSubchannel PR will be smaller.","shortMessageHtmlLink":"A few helpers to pave the way for subchannel (#1867)"}},{"before":"2d56a49303eae16889a5707e7369eba727701ddd","after":"63af6098abb47b88fc7362c7f362221a8cef7c51","ref":"refs/heads/main","pushedAt":"2024-04-23T09:09:56.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"glbrntt","name":"George Barnett","path":"/glbrntt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5047671?s=80&v=4"},"commit":{"message":"Add missing availbility guards in tests (#1866)\n\nMotivation:\r\n\r\nSome test helpers were missing availbility guards. Also, some tests used\r\ninteger literal which would overlflow an `Int` when it's only 32-bits.\r\n\r\nModifications:\r\n\r\n- Add missing availbility guards\r\n- Use Int64 explicitly to avoid overlflow\r\n\r\nResult:\r\n\r\nTests build on other platforms","shortMessageHtmlLink":"Add missing availbility guards in tests (#1866)"}},{"before":"ec685b3d6707d8c607e43934f4d3b95ed63f4871","after":"6a90b7e77e29f9bda6c2b3a4165a40d6c02cfda1","ref":"refs/heads/main","pushedAt":"2024-04-22T12:38:31.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"glbrntt","name":"George Barnett","path":"/glbrntt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5047671?s=80&v=4"},"commit":{"message":"Bump version number to 1.23.0 (#1863)\n\nMotivation:\r\n\r\nWe plan on tagging a release soon.\r\n\r\nModifications:\r\n\r\n- Bump the version to 1.23.0\r\n\r\nResult:\r\n\r\nThe version in the default user-agent string will match the released\r\nversion.","shortMessageHtmlLink":"Bump version number to 1.23.0 (#1863)"}},{"before":"bdb7458e45a65ed8b8a44fced6a710f5aff0b1b3","after":"ec685b3d6707d8c607e43934f4d3b95ed63f4871","ref":"refs/heads/main","pushedAt":"2024-04-22T09:15:29.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"glbrntt","name":"George Barnett","path":"/glbrntt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5047671?s=80&v=4"},"commit":{"message":"Add the HTTP/2 connection (#1859)\n\nMotivation:\r\n\r\nTo build up a subchannel we need the notion of a connection to a\r\nbackend as a building block. The connection provides a single HTTP/2\r\nconnection to the remote peer and doesn't deal with backoff or\r\nreconnects.\r\n\r\nModifications:\r\n\r\n- Add the 'Connection' object which provides multiplexed streams to a\r\n connected backend\r\n- Add a 'connector' API which provides a NIO channel and a multiplexer\r\n on which streams can be created\r\n- Add test Utilities and tests\r\n\r\nResult:\r\n\r\nCan create a connection to a backend and run streams on it.","shortMessageHtmlLink":"Add the HTTP/2 connection (#1859)"}},{"before":"a637cf3ca910d601020ce1971d9f8c26ea73a2ed","after":"bdb7458e45a65ed8b8a44fced6a710f5aff0b1b3","ref":"refs/heads/main","pushedAt":"2024-04-19T09:07:20.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"glbrntt","name":"George Barnett","path":"/glbrntt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5047671?s=80&v=4"},"commit":{"message":"BenchmarkClient RPCs implementation (#1861)\n\nMotivation:\r\n\r\nWhen the WorkerService holds and monitors BenchmarkClients, they need to make the requests to the server, as\r\nconfigured in the config input the WorkerService receives from the Test Driver.\r\n\r\nModifications:\r\n\r\n- implemented a helper function that computes the latency and extracts the error code for a RPC\r\n- implemented the body of the makrRPC function that makes one of the 5 possible RPCs\r\n\r\nResult:\r\n\r\nThe BenchmarkClient implementation for performance testing will be completed.","shortMessageHtmlLink":"BenchmarkClient RPCs implementation (#1861)"}},{"before":"dac2d68ab589e2a0da09f784aeb0fc14da2d22ae","after":"a637cf3ca910d601020ce1971d9f8c26ea73a2ed","ref":"refs/heads/main","pushedAt":"2024-04-17T15:07:05.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"glbrntt","name":"George Barnett","path":"/glbrntt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5047671?s=80&v=4"},"commit":{"message":"Add connection backoff (#1860)\n\nMotivation:\r\n\r\nConnection attempts should be made with a backoff period between them.\r\n\r\nModifications:\r\n\r\n- Add a connection backoff struct which can make an iterator to produces\r\n duration to backoff by\r\n\r\nResult:\r\n\r\nCan do backoff","shortMessageHtmlLink":"Add connection backoff (#1860)"}},{"before":"192a0d37ef0eb12357fccf610b6bc13716d42712","after":"dac2d68ab589e2a0da09f784aeb0fc14da2d22ae","ref":"refs/heads/main","pushedAt":"2024-04-16T09:41:54.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"glbrntt","name":"George Barnett","path":"/glbrntt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5047671?s=80&v=4"},"commit":{"message":"Move CompressionAlgorithm to core (#1858)\n\nMotivation:\r\n\r\n`CallOptions` only let you enable/disable compression, it doesn't allow\r\nyou to control which algorithm should be used. This is an unnecessary\r\nlimitation. This was done because `CompressionAlgorithm` lives in the\r\nhttp2 module.\r\n\r\nModifications:\r\n\r\n- Move `CompressionAlgorithm` to the core module\r\n- Rename 'identity' to 'none' as that's clearer for users\r\n- Add extensions in the http2 module to create an algorithm from its\r\n name\r\n- Add a `CompressionAlgorithmSet` type which uses an option set which\r\n allows for cheaper updates.\r\n- Update call options\r\n\r\nResult:\r\n\r\n- `CallOptions` is more flexible\r\n- Updating the call options set is cheaper","shortMessageHtmlLink":"Move CompressionAlgorithm to core (#1858)"}},{"before":"bcd5b92bcafb4db4a8cccb72426912605bbf1b7e","after":"192a0d37ef0eb12357fccf610b6bc13716d42712","ref":"refs/heads/main","pushedAt":"2024-04-15T16:05:00.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"glbrntt","name":"George Barnett","path":"/glbrntt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5047671?s=80&v=4"},"commit":{"message":"runClient RPC response in performance worker (#1857)\n\nMotivation:\r\nWe need the `runClient` RPC to monitor the performance of the benchmark clients.\r\n\r\nModifications:\r\n\r\n- implemented the methods that merge the histograms and responses count\r\n- implemented the method that creates the response for `runClient`\r\n- implemented the `runClient` method\r\n\r\nResult:\r\n\r\nWe can construct a latency histogram that represents the data from all clients and the `runClient` method returns the stats about the clients started by the worker.","shortMessageHtmlLink":"runClient RPC response in performance worker (#1857)"}},{"before":"04dc601d57bd1fe62ecae5405ccaf8b974919201","after":"bcd5b92bcafb4db4a8cccb72426912605bbf1b7e","ref":"refs/heads/main","pushedAt":"2024-04-11T16:39:35.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"glbrntt","name":"George Barnett","path":"/glbrntt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5047671?s=80&v=4"},"commit":{"message":"Rename a few things (#1856)\n\nMotivation:\r\n\r\n\"Service config\" is the name of a gRPC feature, yet we've named the\r\ncorresponding type \"ServiceConfiguration\". We should follow the gRPC\r\nnaming here.\r\n\r\nIn a similar vein, \"keepAlive\" should be \"keepalive\".\r\n\r\nModifications:\r\n\r\n- Rename \"ServiceConfiguration\" to \"ServiceConfig\"\r\n- Rename \"MethodConfiguration\" to \"MethodConfig\"\r\n- Rename various \"keepAlive\"s to \"keepalive\"\r\n\r\nResult:\r\n\r\nNaming is more consistent with gRPC","shortMessageHtmlLink":"Rename a few things (#1856)"}},{"before":"81e4529821baf64cf13d8abdaddc8d951c522c18","after":"04dc601d57bd1fe62ecae5405ccaf8b974919201","ref":"refs/heads/main","pushedAt":"2024-04-11T15:23:22.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"glbrntt","name":"George Barnett","path":"/glbrntt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5047671?s=80&v=4"},"commit":{"message":"Add call options (#1854)\n\nMotivation:\r\n\r\nThe API currently doesn't allow for per-method options to be passed to\r\neach call. Users must do so by setting method config on the client. This\r\nisn't particularly ergonomic and also constrains options to the method\r\nconfig which is insufficient as at a call level users should be able to\r\ncontrol compression as well.\r\n\r\nMoreover, these options also need to percolate further down the stack as\r\nthey may be used by the transport when creating a stream (compression\r\nand max message size are some examples).\r\n\r\nModifications:\r\n\r\n- Add `CallOptions`, which contains the options in method config but\r\n also includes compression options.\r\n- Percolate these changes down the stack by making them a required\r\n paramter to the `makeStream` function on the `ClientTransport`.\r\n- Remove the client configuration as the default configuration should be\r\n set by the transport and overrides are set at the call level.\r\n\r\nResult:\r\n\r\n- Easier to configure per-call options","shortMessageHtmlLink":"Add call options (#1854)"}},{"before":"4fc6c25881151fa62c5cb02a9a6115c8e223a72a","after":"81e4529821baf64cf13d8abdaddc8d951c522c18","ref":"refs/heads/main","pushedAt":"2024-04-10T14:35:56.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"glbrntt","name":"George Barnett","path":"/glbrntt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5047671?s=80&v=4"},"commit":{"message":"Allow the client connection handler to be closed gracefully (#1855)\n\nMotivation:\r\n\r\nThere's currently no way to gracefully closing the client connection.\r\n\r\nModifications:\r\n\r\n- Add a user outbound event to the `ClientConnectionHandler` to\r\n gracefully shutdown the connection.\r\n\r\nResult:\r\n\r\nClient connection can be instructed to close gracefully.","shortMessageHtmlLink":"Allow the client connection handler to be closed gracefully (#1855)"}},{"before":"6ee1ed29e12d9c54cb6dc3ff7ff426e5c37390a0","after":"4fc6c25881151fa62c5cb02a9a6115c8e223a72a","ref":"refs/heads/main","pushedAt":"2024-04-10T13:29:16.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"stefanadranca","name":"Stefana-Ioana Dranca","path":"/stefanadranca","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/66513820?s=80&v=4"},"commit":{"message":"Performance worker - client stats for runClient RPC (#1851)\n\n* Performance worker - configuring clients for runClient RPC\r\n\r\nMotivation:\r\n\r\nThe `runClient()` RPC receives a stream of messages that can either request to set up clients based on\r\nsome parameters sent in the message or send back stats on the currently running clients.\r\n\r\nModifications:\r\n\r\n- implemented the resource usage class for clients similar to the server stats one\r\n- implemented the LatencyHistogram struct\r\n- added a new abstraction layer over the GRPCClient - BenchmarkClient. It stores\r\nparameters for the client extracted from tne input messages and it implements the\r\n`run()` method that starts the client abd makes the given number of RPCs, while\r\nregistering the latency for each one, and at the end it creates a histogram containing all the\r\nlatencies.\r\n\r\nResult:\r\n\r\nConfiguring the clients for the performance tests is now possible and the latency histogram\r\ngets created.","shortMessageHtmlLink":"Performance worker - client stats for runClient RPC (#1851)"}},{"before":"26e177e6340ce573037d62fb2e5bb1ef1cea5f02","after":"6ee1ed29e12d9c54cb6dc3ff7ff426e5c37390a0","ref":"refs/heads/main","pushedAt":"2024-04-09T13:17:06.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"glbrntt","name":"George Barnett","path":"/glbrntt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5047671?s=80&v=4"},"commit":{"message":"Remove GRPCLogger (#1853)\n\nMotivation:\r\n\r\nGRPCLogger was added so that the source of logs was always set to\r\n'GRPC'. This was done because swift-log would set it to the parent\r\ndirectory of the source file assuming it would be the module which isn't\r\nalways the case. This was fixed some time ago in swift-log making\r\nGRPCLogger redundant.\r\n\r\nModifications:\r\n\r\n- Remove GRPCLogger\r\n\r\nResult:\r\n\r\nLess code","shortMessageHtmlLink":"Remove GRPCLogger (#1853)"}},{"before":"0da4b47775dfd594c50908e6f5b84f2a83023a76","after":"26e177e6340ce573037d62fb2e5bb1ef1cea5f02","ref":"refs/heads/main","pushedAt":"2024-04-09T12:15:56.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"glbrntt","name":"George Barnett","path":"/glbrntt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5047671?s=80&v=4"},"commit":{"message":"Add subpool stats (#1852)\n\nModification:\r\n\r\nIt can be helpful to track the state of the connection pool as a whole\r\nover time to understand how heavily utilised it is. This is awkward to\r\ndo at the moment because delegate functions are called on connection\r\nstate changes. There's also no insight into how many RPCs are queued\r\nwaiting for a stream.\r\n\r\nModifications:\r\n\r\n- Add a 'GRPCSubPoolStats' type capturing stats from each subpool. This\r\n includes:\r\n - counts of connections in each state\r\n - streams in use\r\n - streams which are free to use\r\n - number of rpcs waiting for a stream\r\n- Add a delegate method which is passed an array of subpool stats (one\r\n per subpool) and add a no-op default implementation.\r\n- Add configuration to determine how frequently stats are collected\r\n\r\nResult:\r\n\r\nMore insight into pool stats","shortMessageHtmlLink":"Add subpool stats (#1852)"}},{"before":"e6195dca9b3aa3ea5507b25753526282ca6902ce","after":"0da4b47775dfd594c50908e6f5b84f2a83023a76","ref":"refs/heads/main","pushedAt":"2024-04-04T06:57:17.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"glbrntt","name":"George Barnett","path":"/glbrntt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5047671?s=80&v=4"},"commit":{"message":"Add reflection support to plugin (#1835)","shortMessageHtmlLink":"Add reflection support to plugin (#1835)"}},{"before":"78a20cbadee2a76fe29140bb9eae61768e2b43cf","after":"e6195dca9b3aa3ea5507b25753526282ca6902ce","ref":"refs/heads/main","pushedAt":"2024-04-03T14:40:19.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"gjcairo","name":"Gustavo Cairo","path":"/gjcairo","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5359423?s=80&v=4"},"commit":{"message":"Allow manually running `release` GH workflow (#1848)","shortMessageHtmlLink":"Allow manually running release GH workflow (#1848)"}},{"before":"f84657dce1bf52e837ce9bebee30caf7756eebc9","after":"78a20cbadee2a76fe29140bb9eae61768e2b43cf","ref":"refs/heads/main","pushedAt":"2024-04-03T14:03:05.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"glbrntt","name":"George Barnett","path":"/glbrntt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5047671?s=80&v=4"},"commit":{"message":"Add wait-for-ready to method config (#1850)\n\nMotivation:\r\n\r\nThe wait-for-ready property was missing from method config.\r\n\r\nModifications:\r\n\r\n- Add wait-for-ready property and parsing\r\n\r\nResult:\r\n\r\nwait-for-ready is available in method config","shortMessageHtmlLink":"Add wait-for-ready to method config (#1850)"}},{"before":"e1ef29d8a3a40a330d2a57b999972425f7de9845","after":"f84657dce1bf52e837ce9bebee30caf7756eebc9","ref":"refs/heads/main","pushedAt":"2024-04-03T11:53:09.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"glbrntt","name":"George Barnett","path":"/glbrntt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5047671?s=80&v=4"},"commit":{"message":"'runServer' implementation for Performance Worker Service (#1840)\n\nMotivation:\r\n\r\nThe run server RPC starts a server and reports stats back to the client. We can’t yet start a real server, because we don’t yet have the http/2 transport, but we can stub it out and do the rest of the RPC which reports stats back to the client.\r\n\r\nModifications:\r\n\r\n- implemented the methods that start the server and collects the stats\r\n- added the initial stats property used in computing the requested server stats\r\n\r\nResult:\r\n\r\nWe will be able to start the server from a performance worker.","shortMessageHtmlLink":"'runServer' implementation for Performance Worker Service (#1840)"}},{"before":"5d08a1ea41929f1beec4f6eea3b7098887d8bbf1","after":"e1ef29d8a3a40a330d2a57b999972425f7de9845","ref":"refs/heads/main","pushedAt":"2024-04-03T10:13:58.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"gjcairo","name":"Gustavo Cairo","path":"/gjcairo","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5359423?s=80&v=4"},"commit":{"message":"Update `release` GitHub workflow action (#1847)\n\n* Update GitHub release workflow\r\n\r\n* Update docs to remove references to `make plugins`\r\n\r\n* Copy build artefacts into current dir\r\n\r\n---------\r\n\r\nCo-authored-by: George Barnett ","shortMessageHtmlLink":"Update release GitHub workflow action (#1847)"}},{"before":"393b02b1c39cc82fb24e57f24fa446f43e8124c9","after":"5d08a1ea41929f1beec4f6eea3b7098887d8bbf1","ref":"refs/heads/main","pushedAt":"2024-04-02T14:18:24.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"glbrntt","name":"George Barnett","path":"/glbrntt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5047671?s=80&v=4"},"commit":{"message":"Update formatting script (#1845)\n\nMotivation:\r\n\r\nThe formatting script only checkes Sources and Tests. The Plugins and\r\nPerformance directory are currently not checked. Moreover the formatter\r\nis using the 5.9 version.\r\n\r\nModifications:\r\n\r\n- Update the formatter to use 5.10\r\n- Upadte the formatting script to check Plugins and Performance\r\n\r\nResult:\r\n\r\nFormatting checks more places","shortMessageHtmlLink":"Update formatting script (#1845)"}},{"before":"29bc8bcb9cf6c393f99b320a604469ba18c0901c","after":"393b02b1c39cc82fb24e57f24fa446f43e8124c9","ref":"refs/heads/main","pushedAt":"2024-04-02T13:06:05.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"gjcairo","name":"Gustavo Cairo","path":"/gjcairo","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5359423?s=80&v=4"},"commit":{"message":"Update Version.swift (#1846)","shortMessageHtmlLink":"Update Version.swift (#1846)"}},{"before":"97994e1617e21045e76096e0d187a8d8573f6bd4","after":"29bc8bcb9cf6c393f99b320a604469ba18c0901c","ref":"refs/heads/main","pushedAt":"2024-03-27T15:26:44.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"gjcairo","name":"Gustavo Cairo","path":"/gjcairo","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5359423?s=80&v=4"},"commit":{"message":"Fix several bugs in GRPC stream handlers and state machine (#1844)","shortMessageHtmlLink":"Fix several bugs in GRPC stream handlers and state machine (#1844)"}},{"before":"847a9348e445dde4ed42eed9529c687727a3473e","after":"97994e1617e21045e76096e0d187a8d8573f6bd4","ref":"refs/heads/main","pushedAt":"2024-03-27T15:07:13.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"gjcairo","name":"Gustavo Cairo","path":"/gjcairo","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5359423?s=80&v=4"},"commit":{"message":"Handle write promises correctly (#1843)","shortMessageHtmlLink":"Handle write promises correctly (#1843)"}},{"before":"9c91043a8b463822b49cea240fef4ef7ecb10d0b","after":"847a9348e445dde4ed42eed9529c687727a3473e","ref":"refs/heads/main","pushedAt":"2024-03-26T16:29:36.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"gjcairo","name":"Gustavo Cairo","path":"/gjcairo","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5359423?s=80&v=4"},"commit":{"message":"Add GRPCClientStreamHandler (#1838)","shortMessageHtmlLink":"Add GRPCClientStreamHandler (#1838)"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEP8_5zAA","startCursor":null,"endCursor":null}},"title":"Activity · grpc/grpc-swift"}