Closed tpetricek closed 9 years ago
The most recent commit addresses the comment by @dsyme. No internals of F# Data will now be exposed by Deedle.
Aside from the changes in how we reference things in Paket, the only other change in this PR is that I simplified one unit test so that it does not use F# Data (as we don't really need that).
@adamklein @hmansell I think this is now ready for your review! (Also cc @dsyme @ovatsus @forki in case they have some thoughts on this...)
Code looks good. Was trying to compile on VS2013 (got a new box, lost my VS2012, might not be set up correctly, first time trying to compile Deedle on this new machine) and get an
1>C:\code\Deedle\src\Deedle\Deedle.fsproj(135,5): error MSB3030: Could not copy the file "..\..\packages\FSharp.Data\lib\net40\FSharp.Data.DesignTime.dll" because it was not found.
Am I missing something silly?
I have to investigate if @tpetricek added VS package restore. If not then this is the issue.
Did you run build.cmd? It will download all the packages. (this should be a workaround to get you working again)
@forki @tpetricek Confirmed everything works through build.cmd, and that following executing this script, things compile fine in VS2013.
Ok I will try to enable VS package restore in separate PR
Seems it's not the VS package restore process. That thing works.
Strange thing is: why does it look for "packages\FSharp.Data\lib\net40\FSharp.Data.DesignTime.dll"? I thoght we removed that here.
I have an idea but still need some investigation
I think the project for evaluating performance of Deedle still uses F# Data, so the package is still referenced via Paket, but it should not be needed (or accessed) when just building Deedle. I'll try from a clean clone....
This removes the dependency on FSharp.Data package. We can now reference the files we need directly from F# Data Github using a new nifty Paket feature.
The benefit is that we have a smaller stand-alone package that can be combined with any version of F# Data and also is less prone to binding redirect errors (no MethodMissingException when using wrong FSharp.Core.dll).
The only slightly tricky thing is that we need to find a closed set of files from F# Data which covers all the functionality we need. This includes the type inference & CSV parsing, but there are other helpers (e.g. for IO). Since I did not want to include all files, just because of a few unused helpers, I included
Stubs.fs
with three functions that I did not want to copy from F# Data.[This adds more things on top of #288, so the diff will be nicer after that one is merged.]