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.

Highlightsshare

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

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:

v0.0.18share

  • 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.

v0.0.17share

  • 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

Nov 16, 2024Julian K. Arni

We've added incremental compilation to garnix. In this blog, we discuss prior art on incremental compilation in Nix, and describe our own design.

Nov 11, 2024Julian K. Arni

How we designed our private caches.

Aug 27, 2024Julian K. Arni

A short note about custom typing for functions in Nix

View Archive
black globe

Say hi, ask questions, give feedback