Garnix Logo
Nov 30, 2023Julian K. Arni

garn version v0.0.18

Release announcement for garn version v0.0.17 and v0.0.18. Includes better Haskell support, and less confusing file tracking.

Various early stone tools arranged chronologically, demostrating their evolution

Plate from Evolution of Culture, Pitt Rivers, 1906.

Release: Garn version v0.0.17 and v0.0.18share

Progress on Garn has been happening at an astounding pace! The last update from us was only a week ago; since we released two new versions of Garn.

For those of us hearing about it for the first time, Garn is a build tool and environment manager, built with Nix, but configured in Typescript. You can read more about it on the website, or follow the development on GitHub.

If you try out Garn's latest version, we'd love to hear what you thinkj on Discord or GitHub.


export const project = haskell.mkHaskellProject({
  description: "",
  compiler: "ghc94",
  src: ".",
  executables: ["foo"],
  // This is new
  overrideDependencies: {
    "string-conversions": "",

And you get the correponding version from Hackage, rather than the default one from the package set. This is as easy as Stack, but with the power of Nix.

Breaking changeshare

A breaking change is that mkNpmProject and mkYarnProject no longer expose a devShell field, since that was redundant with defaultEnvironment.

Full changelogsshare

There were quite a number of other changes, here are the full changelogs:


  • Allow entering top-level Environments with garn enter.
  • Environment.mkNpmProject and Environment.mkYarnProject don't expose a devShell field anymore, since that was a duplicate of defaultEnvironment.
  • Fix jsdocs rendering
  • Fix type safety around Executables exported from mkHaskellProject.


  • Fix locale warnings on MacOS
  • Make executables a list, and optional, in mkHaskellPackage
  • Add addCabalExecutable to Haskell projects
  • Make garn init on Haskell projects fill in the executables based on the cabal file.
  • For git repositories, add untracked files to build sandboxes for Checks and Packages.
  • Tweak the API for creating Environments, making it easier to create Environments that have a source directory
  • Fix needing to use -- twice in garn run in order to pass arguments to executables.
  • Create a new edit command. This opens VSCodium with deno LSP already set up, in exactly the same way as the old editGarnConfig function did. (That function has now been removed.)

Continue Reading

Dec 19, 2023Alex David

Microsoft's LSP is great for text-editor diversity, but it is severely lacking in flexibility for project-specific configuration.

Dec 7, 2023Alex David

Release announcement for garn version v0.0.19, which includes the ability to import Nix flakes from the internet and from your repository.

Nov 24, 2023Sönke Hahn

Release announcement for garn version v0.0.16

View Archive →
black globe

Say hi, ask questions, give feedback