payload: {"push_id":3843878281,"size":58,"distinct_size":11,"ref":"refs/heads/dev","head":"1fdc03142342183c810bc5d79ad865bde34389db","before":"bf4ba5a7c121e23e4662be72151bbee60d59ecf2","commits":[{"sha":"04c0af38baefbe672354525c2623e2aac8d8283a","author":{"name":"Tyler James Leonhardt","email":"4b28cb43cb490e67974f58cf788ce0ea68f32e27@gmail.com"},"message":"Fix a test by making it more reliable (#122)\n\nFormatting tables is different in pwsh 6.2-preview.3. We can no longer be sure that the last 2 items in a format-table string are new lines.\r\nNow we walk backwards until we hit the last not white-space line.","distinct":false,"url":"https://api.github.com/repos/Francisco-Gamino/azure-functions-powershell-worker/commits/04c0af38baefbe672354525c2623e2aac8d8283a"},{"sha":"64060403f91b9c5197a00a197517a10f96be496f","author":{"name":"Tyler James Leonhardt","email":"4b28cb43cb490e67974f58cf788ce0ea68f32e27@gmail.com"},"message":"Enter-PSHostProcess workaround (#121)\n\n* bundle Management + Utility modules and misc config updates\r\n\r\n* Test-Path fix","distinct":false,"url":"https://api.github.com/repos/Francisco-Gamino/azure-functions-powershell-worker/commits/64060403f91b9c5197a00a197517a10f96be496f"},{"sha":"5de474c8d1e0d14542ba2611ae6c242be91a94ef","author":{"name":"Dongbo Wang","email":"a97d1d57b1daa4a18fec44146d68c2c4093535ae@microsoft.com"},"message":"Add in-process concurrency support to the PS worker (#123)\n\nThe major changes are:\r\n- Use `PSThreadOptions.ReuseThread` for the `InitialSessionState` when creating `Runspace`, so that every `PowerShellManager` only creates one thread and then reuse it afterwards. The default behavior is to create a new thread every time `PowerShell.Invoke` is called.\r\n- Update `RequestProcessor` to process `InvocationRequest` in asynchronously via tasks.\r\n- Implement `PowerShellManagerPool` using `BlockingCollection`\r\n   - make upper bound of the pool configurable via an environment variable `PSWorkerInProcConcurrencyUpperBound`\r\n   - make the pool able to expand in a lazy way\r\n   - checkout `PowerShellManager` via `CheckoutIdleWorker` on the main thread. Once getting an idle instance back, the main thread will queue a task to process an invocation request on a thread-pool thread and forget about it -- the main thread then can go ahead to process the next message.\r\n- Update the `RpcLogger` and make every `PowerShellManager` have its own logger instance.\r\n   - also update the way to set the `RequestId` and `InvocationId` for logger. The original way to setup the context only works for single-thread design.\r\n- Update `MessagingStream` to use a `BlockingCollection` to hold all messages that are about to be written out, then use a single thread-pool thread to take out items and write them to the gRPC channel.\r\n   - currently, the way we write out response/log messages is completely task-based/async, using a semaphore for synchronization. However, this approach doesn't guarantee the order of the message.\r\n   - this is because there could be multiple tasks blocked on the semaphore, and releasing the semaphore allows a blocked task to enter the semaphore, but there is no guaranteed order, such as first-in-first-out, for blocked threads to enter the semaphore.\r\n   - so, the unblocked task could be a random one, and thus change the arrival order of the message when writing the message to the gRPC channel.\r\n- Remove the two system logging we have in our worker, because they drastically worsen the processing time per an invocation request when there are a lot in-coming invocation requests.\r\n   - the logging for \"TriggerMetadata\" parameter is not that useful, and should be removed\r\n   - the execution time logging is good to have, but not necessary, especially when it impact the throughput.","distinct":false,"url":"https://api.github.com/repos/Francisco-Gamino/azure-functions-powershell-worker/commits/5de474c8d1e0d14542ba2611ae6c242be91a94ef"},{"sha":"42b1ac6597de0053ca70eaf5c717df9997772bb0","author":{"name":"Dongbo Wang","email":"a97d1d57b1daa4a18fec44146d68c2c4093535ae@microsoft.com"},"message":"Build against dotnet SDK 2.2 (#125)\n\n* Build again dotnet SDK 2.2\r\n\r\n* Fix test","distinct":false,"url":"https://api.github.com/repos/Francisco-Gamino/azure-functions-powershell-worker/commits/42b1ac6597de0053ca70eaf5c717df9997772bb0"},{"sha":"729710d2595b4b96abd4fa5a5547fe880e98bfa6","author":{"name":"Francisco Gamino","email":"8f0a5a76529993570020b2975169874ef588189c@users.noreply.github.com"},"message":"Adding supportedManagedDependencies.json with a list of supported modules. (#129)","distinct":false,"url":"https://api.github.com/repos/Francisco-Gamino/azure-functions-powershell-worker/commits/729710d2595b4b96abd4fa5a5547fe880e98bfa6"},{"sha":"a7718a49264ea6fa31630ecd79949e92af1561f0","author":{"name":"Dongbo Wang","email":"a97d1d57b1daa4a18fec44146d68c2c4093535ae@microsoft.com"},"message":"Make the worker able to do additional data transformation as needed (#134)\n\nMajor changes are as follows:\r\n- Add `Utils.TransformInBindingValueAsNeeded` and `Utils.TransformOutBindingValueAsNeeded` for additional data transformation before passing input data in as argument and after retrieving output data back.\r\n- Update `AzFunctionInfo` to capture the static types of script parameters. The parameter types can be used as hints for the additional data transformation.\r\n- Update `PowerShellManager` to call `Utils.TransformInBindingValueAsNeeded` before passing argument in; update `RequestProcessor` to call `Utils.TransformOutBindingValueAsNeeded` before sending out the output data.\r\n- Update `PowerShellWorker.psm1` to remove `Convert-OutputBindingValue`. That logic is moved to `Utils.TransformOutBindingValueAsNeeded`. The reason to move the transformation to C# code is:\r\n   - A script transform function will always unroll the collection value passed to the function when returning the value, which will result in losing the actual type of the collection value. For example, if a byte array is passed to `Convert-OutputBindingValue`, after `return $Value`, the caller will get back an object array instead. `Write-Output -NoEnumerate` doesn't work either -- it returns an array of `PSObject` even though `-NoEnumerate` is specified. In order to preserve the original type of a collection value, I have to implement the transformation function either as a PowerShell class method, or in C# directly. I think the latter is more desirable.\r\n   - Keep consistent with `Utils.TransformInBindingValueAsNeeded`\r\n- Remove `FunctionMetadata.cs`. The `FunctionMetadata` type was added to support doing data transformation on output value within the script. Now that we move that operation in C#, this type is no longer needed. It could be useful in future, but I don't intend to keep an unused data structure around. If we need it in future, we can always add it back since there is no much code about it.","distinct":false,"url":"https://api.github.com/repos/Francisco-Gamino/azure-functions-powershell-worker/commits/a7718a49264ea6fa31630ecd79949e92af1561f0"},{"sha":"9b8c27fd72895f50707605fce1c6eff38b7e6edc","author":{"name":"Dongbo Wang","email":"a97d1d57b1daa4a18fec44146d68c2c4093535ae@microsoft.com"},"message":"Make the hashtable returned from ConvertFromJson case-insensitive as long as possible (#138)\n\nCast the Hashtable returned from JsonObject.CovnertFromJson to a case-insensitive Hashtable as long as it's doable.\r\nIf the cast fails, because of keys differ only in case, then we use the original case-sensitive Hashtable.","distinct":false,"url":"https://api.github.com/repos/Francisco-Gamino/azure-functions-powershell-worker/commits/9b8c27fd72895f50707605fce1c6eff38b7e6edc"},{"sha":"2cf1ff922c0616b3d8fd5130fd80b4b2fbbfa5d8","author":{"name":"SatishRanjan","email":"6a15f072854b11e857e54156bea926bdb39f7451@users.noreply.github.com"},"message":"Adding latest AzPSModulesPath to PSModulePath for private preview (#133)","distinct":false,"url":"https://api.github.com/repos/Francisco-Gamino/azure-functions-powershell-worker/commits/2cf1ff922c0616b3d8fd5130fd80b4b2fbbfa5d8"},{"sha":"8fd506073542cba876eec066225b0fcd3ec808e3","author":{"name":"Dongbo Wang","email":"a97d1d57b1daa4a18fec44146d68c2c4093535ae@microsoft.com"},"message":"Embed resource strings to the PS worker and move all error strings to the resource file (#135)","distinct":false,"url":"https://api.github.com/repos/Francisco-Gamino/azure-functions-powershell-worker/commits/8fd506073542cba876eec066225b0fcd3ec808e3"},{"sha":"884c22a2c99dc11c4992b861b4b32bb56961884b","author":{"name":"Tyler James Leonhardt","email":"4b28cb43cb490e67974f58cf788ce0ea68f32e27@gmail.com"},"message":"Update to build with PowerShell SDK 6.2.0-preview.4 (#140)","distinct":false,"url":"https://api.github.com/repos/Francisco-Gamino/azure-functions-powershell-worker/commits/884c22a2c99dc11c4992b861b4b32bb56961884b"},{"sha":"1ff10109828a571030d4fbfbdc038a11fe515774","author":{"name":"Tyler James Leonhardt","email":"4b28cb43cb490e67974f58cf788ce0ea68f32e27@gmail.com"},"message":"Set ProductVersion by having a common props file (#142)\n\n* set ProductVersion by having a common props file\r\n\r\n* new line...\r\n\r\n* address feedback\r\n\r\n* dongo feedback","distinct":false,"url":"https://api.github.com/repos/Francisco-Gamino/azure-functions-powershell-worker/commits/1ff10109828a571030d4fbfbdc038a11fe515774"},{"sha":"a998cbca9dfb34a452f565bac733b220f3855ca7","author":{"name":"Dongbo Wang","email":"a97d1d57b1daa4a18fec44146d68c2c4093535ae@microsoft.com"},"message":"Use ConvertFromJson/ConvertToJson APIs directly (#141)\n\n* Use ConvertFromJson/ConvertToJson APIs directly\r\n\r\n* Update the test code that uses 'ToTypedData'\r\n\r\n* Add back the processing of PSObject","distinct":false,"url":"https://api.github.com/repos/Francisco-Gamino/azure-functions-powershell-worker/commits/a998cbca9dfb34a452f565bac733b220f3855ca7"},{"sha":"9ebf44f942b60e93e503e941761c118959ae1934","author":{"name":"Tyler James Leonhardt","email":"4b28cb43cb490e67974f58cf788ce0ea68f32e27@gmail.com"},"message":"E2e test suite from Nodejs worker (#139)\n\n* Add e2e test suite from java worker\r\n\r\n* add to appveyor for CI\r\n\r\n* remove Invoke-Test for e2e\r\n\r\n* move test csproj\r\n\r\n* fix path in module tests\r\n\r\n* change to capital T\r\n\r\n* uppercase another T\r\n\r\n* delete extensions.csproj\r\n\r\n* add silentlyContinue to Remove-Item\r\n\r\n* props file is one directory up","distinct":false,"url":"https://api.github.com/repos/Francisco-Gamino/azure-functions-powershell-worker/commits/9ebf44f942b60e93e503e941761c118959ae1934"},{"sha":"4072ecde236631acec850fdaf9921927a9140c73","author":{"name":"Dongbo Wang","email":"a97d1d57b1daa4a18fec44146d68c2c4093535ae@microsoft.com"},"message":"Update the protobuf subtree from 'Azure/azure-functions-language-worker-protobuf'. Branch: dev. Commit: f786ef  (#147)\n\nAlso update `New-gRPCAutoGenCode` accordingly.","distinct":false,"url":"https://api.github.com/repos/Francisco-Gamino/azure-functions-powershell-worker/commits/4072ecde236631acec850fdaf9921927a9140c73"},{"sha":"c0c9f470066fcd12a32108f2002fefbe2241ccf7","author":{"name":"Dongbo Wang","email":"a97d1d57b1daa4a18fec44146d68c2c4093535ae@microsoft.com"},"message":"Update the status badges to point to the right URL (#157)","distinct":false,"url":"https://api.github.com/repos/Francisco-Gamino/azure-functions-powershell-worker/commits/c0c9f470066fcd12a32108f2002fefbe2241ccf7"},{"sha":"2bb6ab4388f392ccac68b6c03988e5084c7b6634","author":{"name":"Tyler James Leonhardt","email":"4b28cb43cb490e67974f58cf788ce0ea68f32e27@gmail.com"},"message":"No ops for other messages (#156)\n\n* no-ops for other messages\r\n\r\n* NewStreamingMessageTemplate additions\r\n\r\n* dongbo's comments","distinct":false,"url":"https://api.github.com/repos/Francisco-Gamino/azure-functions-powershell-worker/commits/2bb6ab4388f392ccac68b6c03988e5084c7b6634"},{"sha":"51acc6c0725bc3d19901a453eb2162376c13fb15","author":{"name":"Tyler James Leonhardt","email":"4b28cb43cb490e67974f58cf788ce0ea68f32e27@gmail.com"},"message":"Move to rc.1 and support the CustomPipe (#158)\n\n* Move to rc.1 and support the CustomPipe\r\n\r\n* use a logger instance\r\n\r\n* remove SetContext/ResetContext","distinct":false,"url":"https://api.github.com/repos/Francisco-Gamino/azure-functions-powershell-worker/commits/51acc6c0725bc3d19901a453eb2162376c13fb15"},{"sha":"19fa6c9789d3fbaae6efbf875657e050e4d8a7ef","author":{"name":"Dongbo Wang","email":"a97d1d57b1daa4a18fec44146d68c2c4093535ae@microsoft.com"},"message":"Update 'New-gRPCAutoGenCode' to recursively find all .proto files (#165)","distinct":false,"url":"https://api.github.com/repos/Francisco-Gamino/azure-functions-powershell-worker/commits/19fa6c9789d3fbaae6efbf875657e050e4d8a7ef"},{"sha":"ae05997b4191ea32283ec4c03f2e16757011ab50","author":{"name":"Francisco Gamino","email":"8f0a5a76529993570020b2975169874ef588189c@users.noreply.github.com"},"message":"Updated subtree from https://github.com/azure/azure-functions-language-worker-protobuf. Branch: dev . Commit:2e9cf4b (#164)","distinct":false,"url":"https://api.github.com/repos/Francisco-Gamino/azure-functions-powershell-worker/commits/ae05997b4191ea32283ec4c03f2e16757011ab50"},{"sha":"65230eaf8efc017c7ca67c791e320de76ed1d6fe","author":{"name":"Dongbo Wang","email":"a97d1d57b1daa4a18fec44146d68c2c4093535ae@microsoft.com"},"message":"Bring back the code that shares output binding metadata with the helper module (#161)\n\nWhen script from the helper module is running, it can use `[FuncMetadata]::GetOutputBindingInfo([Runspace]::DefaultRunspace.InstanceId)` to get the output binding info about the function that is currently running. Hence, `Push-OutputBinidng` can do smart things based on the `-Name` with this change.","distinct":false,"url":"https://api.github.com/repos/Francisco-Gamino/azure-functions-powershell-worker/commits/65230eaf8efc017c7ca67c791e320de76ed1d6fe"}]}
other: {"actor":{"display_login":"Francisco-Gamino"}}