Updating Dependencies

If you use Nix to manage build and runtime dependencies you can be confident that you will always have the correct versions for the branch you are on, and that these will be exactly the same as those versions used in CI.

It is possible to specify any git revision for the dependency and Nix will automatically build it – unless it has already been built in a nix cache – in which case the build result will be downloaded instead.

nix develop

The default nix develop contains build tools, utilities and GHC configured with a global package-db which matches cabal.project. This is defined in the devShell attribute of flake.nix.

Buildkite

On Buildkite, the project will be built with cabal build in a particular Nix shell. The Nix shell provisioned is defined by nix/cabal-shell.nix. If there is a program that is needed by the build or tests, make sure that it is present there.

nix flake lock

nix flake manages the file flake.lock.

Updating node backends

cardano-node Haskell dependencies

To bump to a new version:

  • In cardano-wallet/cabal.project, update the dependency revisions to match your chosen version of cardano-node/cabal.project.
  • Run ./nix/regenerate.sh (or let Buildkite do it)

Jörmungandr

Follow the instructions in nix/jormungandr.nix.