Repository navigation
Update PowerShell to use .NET Core 1.0 - #1210
Conversation
|
We should remove the MMI types from the type catalog. The type catalog should only contains .NET Core libraries. |
|
Dongbo Wang (@daxian-dbw) that's what I thought, but MMI is a weird library in that it's not a PowerShell library nor a .NET Core library, and it is consumed as a package. Nonetheless, I agree; removing. Travis Plunk (@TravisEz13) could run builds from before the merge, but yes if he tries post-update builds I could see some problems until you've updated Nano with .NET Core 1.0 as well. When can you do this? |
|
Andy Jordan (@andschwa) let me check with NanoServer team. I'm working on the new ALC at the meantime. |
|
Dongbo Wang (@daxian-dbw), cool. Did you get a chance to see my implementation? Also, what about JSON.NET, where do we draw the line for the CorePsTypeCatalog? It would seem logical that it includes anything built from a package (and so shipped with PowerShell), but I'm not sure. |
|
I took a look at it at https://github.com/PowerShell/PowerShell/blob/andschwa/alc-wip/src/Microsoft.PowerShell.CoreCLR.AssemblyLoadContext/CoreCLR/CorePsAssemblyLoadContext.cs, but it's a little hard for me to see what has been changed and what not. I think CorePsTypeCatalog should contain only .NET Core libraries, so that the type catalog can be used targeting the Nano .NET Core deployment without problem, and then PowerShell binaries can be put on Nano and work fine. |
|
JSON.NET is a tricky one. It's not in the .NET drop deployed in NanoServer, so nano powershell has to ship its own version of it. Is JSON.NET used anywhere else other than in Json cmdlets? |
|
Dongbo Wang (@daxian-dbw) Do a I have failing tests right now because we have |
8979398 to
29ee936
Compare
|
OK, then keep JSON.NET in the type catalog. We will see if it's possible to get Nano CoreCLR include JSON.NET. |
29ee936 to
36df477
Compare
This should have been done programmatically.
This is required to use the new .NET Core RTM packages, specifically the `IEnumerable Append` API.
This removes the ClrFacade function of the same name as this API is in .NET Core 1.0 Marhsal class, not SecureStringMarshal.
As a bottom-level dependency, it always needed it. The alternative is hunting down every particular dependency, but that's what the meta-package is useful for.
Newtonsoft.Json will be excluded at a later date.
|
Travis Plunk (@TravisEz13) are you okay with us merging this now, or wait for Nano to take on RTM? How soon can that happen? This is going to be blocking stuff in the pipeline I think. |
|
On the one hand it's desirable to upgrade about the same time as Nano server to allow continuous testing. On the other hand, if it's like another 2 weeks, it could be too long and I don't think we should wait that much. I believe Travis Plunk (@TravisEz13) captured most of the regressions in the issues already. Plus, we can create a branch before update, so we are able to reproduce this Nano test pass results. Dongbo Wang (@daxian-dbw) we need a Nano CoreCLR update timeline to make a right call. |
|
Got sign-offs from Dongbo Wang (@daxian-dbw), Mike Richmond (@mirichmo), and Travis Plunk (@TravisEz13). |
Update PowerShell to use .NET Core 1.0
Thus bumps us to the release .NET Core 1.0 packages available on NuGet.org.
Additionally, Dongbo Wang (@daxian-dbw) the type catalog generator was ported to .NET Core and the catalog updated (containing MMI types; open question: should we have those or remove them?).
Please note that this continues to use the same ALC implementation as provided by Jan, with the explicit load work-arounds. I'm issuing this PR to keep that work separate, but on top of this.
All NuGet feeds except NuGet.org and AppVeyor have been removed. You can expect far fewer package updates now.
I'll probably clean these commits up once or twice still.