Hi Michael, That does make sense for starting from scratch.
The next major improvement would be sharing prebuilt binaries for incremental additions to the contents in an existing STACK_ROOT. In our org, we rarely bump to newer LTS Haskell resolvers. However, we more frequently add a new third-party package as a dependency to an existing project. This may result in 100+ developers paying a multiple-minute compilation penalty for this new package on their own machines. There is an interesting Reddit thread comparing Nix and Stack for the "CCACHE" use case: https://www.reddit.com/r/haskell/comments/68tz2r/i_tried_haskell_for_5_years_and_heres_how_it_was/dh1uojc/?context=5 The consensus seems to be that the network-based binary caching I need is only available through Nix. However, abandoning Stack for this feature, as commenter "eacameron" suggests is necessary, is a difficult tradeoff: https://www.reddit.com/r/haskell/comments/68tz2r/i_tried_haskell_for_5_years_and_heres_how_it_was/dh1ed3g/ How feasible would it be to integrate network-based binary caching capability into Stack? Would you accept pull requests for it? Karl On Wednesday, April 26, 2017 at 10:10:28 PM UTC-7, Michael Snoyman wrote: > > On mobile, so just a short reply: you could try setting the STACK_ROOT > environment variable to the same absolute path on all systems and copy that > directory around. > > On Wed, Apr 26, 2017, 5:42 PM Karl Ostmo <[email protected] <javascript:>> > wrote: > >> I and the other members of my project are all using using the same LTS >> Haskell 5.9 with version 1.3.2 of Stack on identical Linux workstations. >> >> If I introduce a new dependency on a third-party library to the project, >> I would like to upload my prebuilt binary artifact of that dependency to >> some shared cache so that others do not also have to pay the compilation >> penalty. >> >> For two developers, Alice and Bob, say that Alice has compiled the >> project successfully, and Bob needs to set up his environment to do the >> same. >> >> For one, even on the same machine, it does not yet seem possible to >> simply copy the entire "/home/alice/.stack" directory to "/home/bob/.stack" >> to bootstrap Bob's environment. >> It seems that the path to the "stack root" directory itself is hard-coded >> in many datafiles that live inside the stack root. >> >> Failing that, after Bob has already bootstrapped his stack root, perhaps >> when Alice adds a new package dependency, it would be possible to copy some >> subset of the content in "/home/alice/.stack" to Bob's stack root to avoid >> compiling that single new dependency. >> >> The "~/.stack/precompiled" directory looks like a likely candidate for >> artifacts to copy. However, there appears to be some opaque registration >> process (seemingly involving >> "~/.stack/snapshots/x86_64-linux/lts-5.9/7.10.3/pkgdb/package.cache") that >> must take place before the copied binaries can actually be used. >> >> Has anyone else been down this road of binary sharing? >> >> Thanks, >> Karl >> >> -- >> You received this message because you are subscribed to the Google Groups >> "haskell-stack" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected] <javascript:>. >> To post to this group, send email to [email protected] >> <javascript:>. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/haskell-stack/77a374c1-4e78-4f5f-aa36-965e8d7758e4%40googlegroups.com >> >> <https://groups.google.com/d/msgid/haskell-stack/77a374c1-4e78-4f5f-aa36-965e8d7758e4%40googlegroups.com?utm_medium=email&utm_source=footer> >> . >> For more options, visit https://groups.google.com/d/optout. >> > -- You received this message because you are subscribed to the Google Groups "haskell-stack" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/haskell-stack/64cea8c0-119f-437e-a754-6ac3d5636294%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
