fslaborg / Deedle

Easy to use .NET library for data and time series manipulation and for scientific programming
http://fslab.org/Deedle/
BSD 2-Clause "Simplified" License
933 stars 195 forks source link

Starting Paket conversion (WIP) #276

Closed forki closed 9 years ago

forki commented 9 years ago

This work in progress. Please do not merge

forki commented 9 years ago

Seems we need to handle RProvider first ;-(

tpetricek commented 9 years ago

What is the status of this (I'd love to see Paket here...)? Also, why do we need to do this for R provider first?

forki commented 9 years ago

so it's nearly done but I get:

image image

tpetricek commented 9 years ago

Thanks, I'll look into this.

I'd love to use Packet's github dependency here to avoid depending on whole F# Data just because of CSV parser!

forki commented 9 years ago

OK I looked at the CSV parser.

At the moment the CsvFile.fs file is not self-contained. It uses "Runtime" helpers. We should discuss this with @ovatsus

hmansell commented 9 years ago

I don't know a lot about paket at this point, but I have some concerns about requiring additional tools, and how this would integrate into build processes (such as BlueMountains). Our internal CI builds do a nuget restore on solutions for our internal software. These have a nuget dependency on Deedle (plus its dependencies!) I assume these will have to change, but presumably TeamCity does not have built-in functionality to do this.

dsyme commented 9 years ago

@hmansell - Paket is often mistakenly thought of as a different package format. It's not - it's just a (primarily-command-line) client-side dependency manager tool that replaces nuget.exe and supports both nuget packages and a range of other package sources (for example, include-single-source-code-file-into-project-from-url).

This means not a lot changes when you convert to use paket - Deedle continues to be released as a nuget package, you just manage Deedle's dependencies when building Deedle by using paket.exe instead of nuget.exe.

The paket.bootstrapper.exe gets checked into Deedle (just as nuget.exe gets installed), no extra installed tools are needed.

It would mean that people developing Deedle may need to know a bit about paket.exe. But equally that's a good thing as it can save them from various problems.

hmansell commented 9 years ago

Thanks, @dsyme, that sounds totally fine.

Arguably, someone consuming the Deedle package need not know about Deedle's dependencies either, but when I create a nuget reference to Deedle I have to. So perhaps it would make sense to use paket in our internal codebase too. One day.

tpetricek commented 9 years ago

@hmansell As Don says, Paket is built on top of Nuget and the resulting Deedle NuGet package would still be the same. The only thing that would change would be how we manage Deedle dependencies in this repository - and I was actually hoping to use one of its features to remove the dependency on F# Data (from which we only need the CSV parser).

As for using Paket in the BMC codebase, I think that might make a lot of sense - one thing you get from Paket (simple, but sounds very useful to me) is that it removes the need to manually hack version numbers in all .csproj and .fsproj files when you update to a new version (which was a bit painful when I did that for new version of Deedle...)

tpetricek commented 9 years ago

Replacing this PR by #288