Sono abbastanza nuovo a stack e mi chiedo se a git commit
o .gitignore
quel file.Il file stack.yaml deve essere controllato nel controllo della versione?
Quali sono le implicazioni di una di queste scelte?
Sono abbastanza nuovo a stack e mi chiedo se a git commit
o .gitignore
quel file.Il file stack.yaml deve essere controllato nel controllo della versione?
Quali sono le implicazioni di una di queste scelte?
Direi che è necessario eseguire il commit stack.yaml
, poiché ciò semplifica notevolmente la creazione del pacchetto in modo riproducibile. Ciò è particolarmente rilevante se il tuo repository è pubblico, e se usi i tipi più esotici di extra-deps in stack.yaml
(puntatori ai repository Git, pacchetti di cabala secondaria all'interno del tuo albero dei sorgenti, ecc.).
Un'osservazione complementare è che dovremmo ancora fornire limiti di versione ragionevoli per le dipendenze nel file. Cabal anche se stiamo usando stack, poiché altrimenti renderebbe la vita più difficile per le persone che non usano lo stack o che hanno un set di pacchetti diversi da quelli specificati da stack.yaml
.
Sì. stack.yaml ha un sacco di campi (non sempre necessari) come le dipendenze extra che contano per le build consistenti. Dateci un'occhiata.
Fintanto che ci si assicura di non modificare stack.yaml oltre a quello che si ottiene dallo stack init, allora stai bene? – semicolon