haskell tooling whirlwind• develop and deploy on the same system. • hydra for ci/cd • nixops...
TRANSCRIPT
![Page 1: Haskell Tooling Whirlwind• develop and deploy on the same system. • Hydra for CI/CD • NixOps for cloud deployment. Atom.io • $ apm install language-haskell • $ apm install](https://reader035.vdocuments.us/reader035/viewer/2022071210/602213944a61943665711ebd/html5/thumbnails/1.jpg)
Haskell Tooling Whirlwind
Steven Shaw @steshaw
![Page 2: Haskell Tooling Whirlwind• develop and deploy on the same system. • Hydra for CI/CD • NixOps for cloud deployment. Atom.io • $ apm install language-haskell • $ apm install](https://reader035.vdocuments.us/reader035/viewer/2022071210/602213944a61943665711ebd/html5/thumbnails/2.jpg)
• Cabal sandboxes on steroids
• Build cache for Cabal/GHC
• Slow build → Fast Build
• Hopefully will be folded into Cabal’
![Page 3: Haskell Tooling Whirlwind• develop and deploy on the same system. • Hydra for CI/CD • NixOps for cloud deployment. Atom.io • $ apm install language-haskell • $ apm install](https://reader035.vdocuments.us/reader035/viewer/2022071210/602213944a61943665711ebd/html5/thumbnails/3.jpg)
![Page 4: Haskell Tooling Whirlwind• develop and deploy on the same system. • Hydra for CI/CD • NixOps for cloud deployment. Atom.io • $ apm install language-haskell • $ apm install](https://reader035.vdocuments.us/reader035/viewer/2022071210/602213944a61943665711ebd/html5/thumbnails/4.jpg)
![Page 5: Haskell Tooling Whirlwind• develop and deploy on the same system. • Hydra for CI/CD • NixOps for cloud deployment. Atom.io • $ apm install language-haskell • $ apm install](https://reader035.vdocuments.us/reader035/viewer/2022071210/602213944a61943665711ebd/html5/thumbnails/5.jpg)
• Builds on Halcyon
• GHC → Heroku
• by Miëtek Bak
• @mietek
![Page 6: Haskell Tooling Whirlwind• develop and deploy on the same system. • Hydra for CI/CD • NixOps for cloud deployment. Atom.io • $ apm install language-haskell • $ apm install](https://reader035.vdocuments.us/reader035/viewer/2022071210/602213944a61943665711ebd/html5/thumbnails/6.jpg)
Nix• Purely functional, cross-platform package system
• Source-based with binary substitution.
• Immutable, side-by-side versions of packages.
• Easily construct [development] environments with fixed versions of all your dependencies.
• $ nix-shell -p git -p vim -p gcc
![Page 7: Haskell Tooling Whirlwind• develop and deploy on the same system. • Hydra for CI/CD • NixOps for cloud deployment. Atom.io • $ apm install language-haskell • $ apm install](https://reader035.vdocuments.us/reader035/viewer/2022071210/602213944a61943665711ebd/html5/thumbnails/7.jpg)
Nix and Haskell• haskellngPackages
• http://wiki.ocharles.org.uk/Nix
![Page 8: Haskell Tooling Whirlwind• develop and deploy on the same system. • Hydra for CI/CD • NixOps for cloud deployment. Atom.io • $ apm install language-haskell • $ apm install](https://reader035.vdocuments.us/reader035/viewer/2022071210/602213944a61943665711ebd/html5/thumbnails/8.jpg)
NixOS
• based entirely on Nix package manager
• develop and deploy on the same system.
• Hydra for CI/CD
• NixOps for cloud deployment
![Page 9: Haskell Tooling Whirlwind• develop and deploy on the same system. • Hydra for CI/CD • NixOps for cloud deployment. Atom.io • $ apm install language-haskell • $ apm install](https://reader035.vdocuments.us/reader035/viewer/2022071210/602213944a61943665711ebd/html5/thumbnails/9.jpg)
Atom.io• $ apm install language-haskell
• $ apm install ide-haskell
• Enjoy :)
• syntax highlighting
• goto definition
• linting (with ghc-mod)
![Page 10: Haskell Tooling Whirlwind• develop and deploy on the same system. • Hydra for CI/CD • NixOps for cloud deployment. Atom.io • $ apm install language-haskell • $ apm install](https://reader035.vdocuments.us/reader035/viewer/2022071210/602213944a61943665711ebd/html5/thumbnails/10.jpg)
![Page 11: Haskell Tooling Whirlwind• develop and deploy on the same system. • Hydra for CI/CD • NixOps for cloud deployment. Atom.io • $ apm install language-haskell • $ apm install](https://reader035.vdocuments.us/reader035/viewer/2022071210/602213944a61943665711ebd/html5/thumbnails/11.jpg)
![Page 12: Haskell Tooling Whirlwind• develop and deploy on the same system. • Hydra for CI/CD • NixOps for cloud deployment. Atom.io • $ apm install language-haskell • $ apm install](https://reader035.vdocuments.us/reader035/viewer/2022071210/602213944a61943665711ebd/html5/thumbnails/12.jpg)
Tech Radar
![Page 13: Haskell Tooling Whirlwind• develop and deploy on the same system. • Hydra for CI/CD • NixOps for cloud deployment. Atom.io • $ apm install language-haskell • $ apm install](https://reader035.vdocuments.us/reader035/viewer/2022071210/602213944a61943665711ebd/html5/thumbnails/13.jpg)
![Page 14: Haskell Tooling Whirlwind• develop and deploy on the same system. • Hydra for CI/CD • NixOps for cloud deployment. Atom.io • $ apm install language-haskell • $ apm install](https://reader035.vdocuments.us/reader035/viewer/2022071210/602213944a61943665711ebd/html5/thumbnails/14.jpg)
![Page 15: Haskell Tooling Whirlwind• develop and deploy on the same system. • Hydra for CI/CD • NixOps for cloud deployment. Atom.io • $ apm install language-haskell • $ apm install](https://reader035.vdocuments.us/reader035/viewer/2022071210/602213944a61943665711ebd/html5/thumbnails/15.jpg)
![Page 16: Haskell Tooling Whirlwind• develop and deploy on the same system. • Hydra for CI/CD • NixOps for cloud deployment. Atom.io • $ apm install language-haskell • $ apm install](https://reader035.vdocuments.us/reader035/viewer/2022071210/602213944a61943665711ebd/html5/thumbnails/16.jpg)
![Page 17: Haskell Tooling Whirlwind• develop and deploy on the same system. • Hydra for CI/CD • NixOps for cloud deployment. Atom.io • $ apm install language-haskell • $ apm install](https://reader035.vdocuments.us/reader035/viewer/2022071210/602213944a61943665711ebd/html5/thumbnails/17.jpg)
References• halcyon.sh
• nixos.org
• atom.io
• atom.io/packages/ide-haskell
• steshaw.org/techradar
• commercialhaskell.com