ndmitchell / neil

General tools for Neil
Other
38 stars 16 forks source link

Why Cabal v1-style? #49

Closed tomjaguarpaw closed 4 years ago

tomjaguarpaw commented 4 years ago

Is there a particular reason that neil uses Cabal v1-style commands? If it's just because no one's upgraded to v2-style yet then please let me know as I will attempt to do that.

https://github.com/ndmitchell/neil/blob/b8ebe3986ec2895a34ed3b26200ffdea8bb755ff/src/Cabal.hs#L174-L175

ndmitchell commented 4 years ago

No one has upgraded it, and it works well, so I haven't bothered to upgrade. I also still use v1-style commands on my home machine and have a global package database, so it doesn't cause me any difficulties. If someone wants to upgrade, I'd be very happy though.

tomjaguarpaw commented 4 years ago

(I'm particularly interested in using v2-style for Travis because v1-style has difficulty reinstalling packages when necessary)

ndmitchell commented 4 years ago

I guess i've always been careful to ensure that package reinstalls weren't required. It would also be useful if the initial compile of neil and the subsequent compile of whatever we build next shares the extra library between them - but given the library is small, not essential.

tomjaguarpaw commented 4 years ago

Yes, I use cached Travis .ghc and .cabal directories to reduce build times so maybe occasionally clearing those comes with the territory.

ndmitchell commented 4 years ago

Cool - go for it - I'd welcome a PR.

tomjaguarpaw commented 4 years ago

I decided that purging my caches was the easiest solution for now. If I regularly run into this problem then I will investigate v2-style.

tomjaguarpaw commented 4 years ago

I also still use v1-style commands on my home machine and have a global package database

This is completely tangential to the original issue, but I'm very curious: how do you deal with package conflicts with a v1-style global package database? Do you have to occasionally delete all your packages and rebuild everything, or do you have another strategy?

ndmitchell commented 4 years ago

When things go wrong I just reinstall. It doesn't happen that often, and reinstalling isn't too painful.