Es scheint, dass ich etwas vermisse. Soweit ich weiß, sagt cabal sandbox init
, dass ab dem aktuellen Ordner und allen Unterordnern alle cabal install
-Befehle auf eine Sandbox beschränkt sind. Alles außerhalb dieses Ordners befindet sich nicht in einer Sandbox.
Was ist der Zweck von cabal-dev? Sollte ich cabal install
oder cabal-dev install
in einer Sandbox verwenden?
TLDR, cabal-dev
war eine erste Lösung für Sandboxing und cabal sandbox
ist die vollständig integrierte Umsetzung.
Bis vor ein paar Monaten gab es keinen angenehmen Weg zu Sandbox-Builds mit cabal
. Dies war ein großes Problem für jeden Bibliotheksbetreuer oder wirklich jeden, der sich über Abhängigkeitskonflikte Sorgen machen könnte. Um dies zu lösen, ein paar Leute aber zusammen ein Werkzeug namens cabal-dev
. Es ergänzt cabal
und hinzugefügt einige Fähigkeit, Sandbox.
Nun, nachdem dies seit ein paar Jahren existiert, hat cabal
in Version 1.18 Sandboxes gewonnen! Das bedeutet, dass wir von cabal
+ cabal-dev
auf nur noch cabal
umstellen können, da cabal
nun cabal-dev
subsumiert hat.
Da Sandboxes außerdem vollständig in Cabal integriert sind, spielen sie gut mit anderen Cabal-Features wie cabal repl
, was für cabal-dev
einfach unmöglich ist.
Schliesslich deutet das kürzliche Gerede auf der Haskell-Cafe-Mailingliste darauf hin, dass cabal-dev
wahrscheinlich nicht länger länger gepflegt wird, also gibt es abgesehen von 1-2 aktuellen Fehlern in cabal sandbox
keinen Grund, nicht zu wechseln.