-
Notifications
You must be signed in to change notification settings - Fork 94
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
[okay to merge now] - move to .NET Standard exclusively #339
Conversation
This is great. We should probably create a branch marking the point just before we intergrate this in case people need to get the TPSDK for .NET Framework |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
someone was being very naughty and allowed zero tests to run in CI for a long time |
This should now basically be ready (assuming it goes green). My one concern is the deletion of a chunk of important testing, I'll look into that now
This should be clarified precisely in the README. For example
I don't really mind if the answers are "no" (though we should really know the answer for VS for Mac and Mono). But we should give some clarity since there are actual users with the above constraints who can't update to latest F# tooling. Historically we've also often had enterprise users using back versions of Visual Studio. I so much wish there were ways of preventing even the referencing of a design time component based on certain constraints, but there isn't AFAIK. I don't expect any problem from Ionide since it's updated so regularly. |
Just to mention VS for Mac probably loads FSharp.Core 4.7.0.0 (package 4.7), see https://github.com/mono/monodevelop/blob/master/main/external/fsharpbinding/paket.lock#L14. It will load .NET Standard 2.0 components. Mono tooling (fsc.exe etc.) looks like it will be using FSHarp.Core 4.5.0.0, see the commits in https://github.com/fsharp/fsharp. It will load .NET Standard 2.0 components. So an FSharp.Core dependency of 4.5.2 makes sense to me after all. There's no reason TPDTC built with that dependency won't load, even if we're not actively testing those configurations. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Main thing is re-enabling the testing in templates and BasicProvider for the erasing providers. I commented them out just so that I could finish up other things but then never got back to completing this PR. I was going to request your help on this issue at the time.
templates/content/basic/tests/MyProvider.Tests/MyProvider.Tests.fs
Outdated
Show resolved
Hide resolved
This will no longer be the case with mono/mono#20511 - both mono and VSMac will have the latest F# by VSMac 8.9 release, or a patch of 8.8 |
That is fantastic - is the VS for Mac PR public? |
This is done, for BasicProvider, the relevant fix is here: https://github.com/cartermp/FSharp.TypeProviders.SDK/pull/1/files#diff-c540bf1e311c246e1a3b5149f3a17c045b769a48ae9b07e699fb98d62b4298a0R11 I'll look into the template now, it's possible those tests actually pass |
OK the tests we want are all re-enabled and everything is green. I think we can merge this. Next steps would be to
It's great to see how simple dependency management for TPDTC has become. |
I checked the log and we really do seem to be instantiating the template and running tests (though output from running the tests is suppressed in the log it seems)
|
@cartermp I will merge this now. Thanks you so much for these simplifications, it's miraculous. Also thanks to @KevinRansom for getting |
I ❤️ merging PRs that say "DO NOT MERGE" |
Lemme retro-actively adjust the title |
Too late, it's in the git log for all eternity
|
That's how we roll in F# land. |
@schauerte Thank you so much for double checking. That silent test failure is very disturbing! |
This simplifies the repo and how Type Providers build moving forward. The downside is that older .NET Framework and older F# consumers won't be able to use newer type providers build with the SDK in this state. That is also largely true today, though, as many type providers are updated and do not support these older environments.