acowley / Frames

Data frames for tabular data.
Other
297 stars 41 forks source link

Building with stack #94

Closed dmvianna closed 6 years ago

dmvianna commented 6 years ago

Hi Anthony.

I am a beginner Haskeller, and I was only able to build Frames through this modified code and using stack. I also commented out stuff in the Tutorial that did not compile.

I assume you would be able to tweak it further so the resulting pull is better than just commenting out your code. Anyway, I expect to be a regular user of Frames, and I'll keep my fork with the necessary changes to build it with stack.

acowley commented 6 years ago

Hi @dmvianna! What's the thinking behind taking out the flag guarding the demo executables? It's a useful way to trim down the dependency chain and build time when using Frames as a library. If you want to build the executables with stack, you can put this in your stack.yaml:

flags:
  Frames:
    demos: true

I've gone back and forth about having a stack.yaml in the repository; I currently use a stack.yaml for a bunch of vinyl-related packages. I'm totally open to including one to make it easier for contributors.

dmvianna commented 6 years ago

No thinking. demos does not build because it depends on data/adults.csv, which is not part of your repo. I also did not know how to use flags in stack (thanks for the tip!). So I changed the pull request to only add the new stack.yaml file and nothing else. But it goes with the demos flag on false, so it builds. The alternative would be to add data/adults.csv to the repo (not a big file). I leave that decision to you.

acowley commented 6 years ago

Ah, okay. This is a thing I was probably too careful with. I was trying to avoid redistributing other people’s data files, so there is a getdata build target that gets the data. It’s functionality should be baked into the demos themselves to avoid the need to run it explicitly.

dmvianna commented 6 years ago

I'm at a loss at how to write this.