Skip to content

Update PowerShell to use .NET Core 1.0 - #1210

Merged
Andy Jordan (andyleejordan) merged 15 commits into
masterfrom
andschwa/rtm
Jun 28, 2016
Merged

Andy Jordan (andyleejordan) merged 15 commits into
masterfrom
andschwa/rtm

Conversation

@andyleejordan

Copy link
Copy Markdown
Member

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.

@daxian-dbw

Copy link
Copy Markdown
Member

We should remove the MMI types from the type catalog. The type catalog should only contains .NET Core libraries.
If this gets merged to Master, will the test verification work on NanoServer be affected? Travis Plunk (@TravisEz13)

@andyleejordan

Copy link
Copy Markdown
Member Author

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?

@daxian-dbw

Copy link
Copy Markdown
Member

Andy Jordan (@andschwa) let me check with NanoServer team. I'm working on the new ALC at the meantime.

@andyleejordan

Copy link
Copy Markdown
Member Author

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.

@daxian-dbw

Dongbo Wang (daxian-dbw) commented Jun 27, 2016 •

Copy link
Copy Markdown
Member

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.

@daxian-dbw

Copy link
Copy Markdown
Member

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?

@andyleejordan

Copy link
Copy Markdown
Member Author

Dongbo Wang (@daxian-dbw) Do a git diff master of my andschwa/alc-wip branch to see what changed.

I have failing tests right now because we have Json.Tests.ps1 that expect to be able to use the Newtsonsoft.Json.dll types. That puts it in a bucket very similar to .NET Core for us, and we might just have to keep them in the catalog until we've resolved the rest of the ALC stuff.

@daxian-dbw

Copy link
Copy Markdown
Member

OK, then keep JSON.NET in the type catalog. We will see if it's possible to get Nano CoreCLR include JSON.NET.

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.
@andyleejordan

Copy link
Copy Markdown
Member Author

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.

@vors

Copy link
Copy Markdown
Collaborator

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.

@andyleejordan

Copy link
Copy Markdown
Member Author

@andyleejordan
Andy Jordan (andyleejordan) deleted the andschwa/rtm branch June 29, 2016 01:26
Thatgfsj (Thatgfsj) pushed a commit to Thatgfsj-contribs/PowerShell that referenced this pull request Aug 6, 2026
Update PowerShell to use .NET Core 1.0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

WG-Maintainers-Build specific to affecting the build

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants