Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

WIP: dotnet sdk and TPSDK updates for netstandard2.0 #91

Open
wants to merge 11 commits into
base: master
Choose a base branch
from

Conversation

baronfel
Copy link

@baronfel baronfel commented Apr 6, 2018

This is as far as I've gotten with converting this repo to .net standard 2.0.

Some of these type providers in general will be very difficult if not impossible in their current forms to port over without significant further work.

TP XPlat? Status
Registry Potentially (implemented as a file store on non-windows) Technically ported, but having access control issues when compiling. Exceptions and whatnot
FileSystem Yes Ported and working, with conditional tests depending on your platform.
RelativeFileSystem Yes Ported and working.
SystemTimeZones Yes Ported and working, UTC test isn't valuable on my platform, but should be stable within a platform
StringReader Yes Ported and working.
Powershell No In the current configuration (WCF Named Pipes) there's no way for the TP to be built for .net standard 2.0 and reliably work cross platform. I've taken the approach of only compiling the TP for net462 framework.
WMI Maybe Had several problems with the tests for this one, despite System.Management having a .netstandard2.0 nuget

I'm hoping to get to a point where the cross-platform compatible type providers can be compiled for net462 and netstandard2.0, and the windows-only type providers can be compiled just for net462, and then we can just package them all for their appropriate frameworks.

Future work then could take on the larger challenges of porting the windows-only TPs to netstandard where appropriate (powershell core for example).

Further steps

  • Fix test compilation errors (Expecto cannot be found?!)
  • Run tests and validate TPs
  • Fix packaging to adhere to new type provider location standards (see FSharp.Data's conversion and associated F# compiler repo issue for path formatting)
  • Update build scripts/matrix to use dotnet sdk where appropriate

@baronfel baronfel changed the title WIP: dotnet sdk and TPSDP updates for netstandard2.0 WIP: dotnet sdk and TPSDK updates for netstandard2.0 Aug 7, 2018
@baronfel
Copy link
Author

baronfel commented Aug 8, 2018

Alright, I tested the generated nuget package from this in a local netcoreapp2.0/netstandard2.0 project, and it works! With the caveats listed in the table above this is ready to go in my opinion.

@baronfel
Copy link
Author

baronfel commented Sep 4, 2018

@sergey-tihon @forki @vasily-kirichenko what would you all think about reviewing/merging this and then releasing a prerelease, like we've done for FSharp.Configuration and FSharp.Data? That would allow for wider testing on netcore platforms. I know that my workplace would like to begin testing of this.

@sergey-tihon
Copy link
Member

@baronfel Agree, let's publish it as 1.0.0-beta1 ok? I've sent you invitation to NuGet package.

I've tried to build it on macOS and on Win, it fails on both.

Windows (dotnet 2.1.401)

win10_-_1803__april_

win10_-_1803__april_

macOS (dotnet 2.1.401)

build_fsx_ _fsharp_management

build_fsx_ _fsharp_management

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants