Using niv to Manage Haskell Dependencies

This page summarizes the projects mentioned and recommended in the original post on dev.to

InfluxDB - Purpose built for real-time analytics at any scale.
InfluxDB Platform is powered by columnar analytics, optimized for cost-efficient storage, and built with open data standards.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
  • niv

    Easy dependency management for Nix projects

    Sometimes, nixpkgs does not have the Haskell package version I need. In this case, I override the package with a custom one in the Haskell package set. I use niv to pin the version of the package I want to use. If I want to add it from GitHub, that is easy:

  • InfluxDB

    Purpose built for real-time analytics at any scale. InfluxDB Platform is powered by columnar analytics, optimized for cost-efficient storage, and built with open data standards.

    InfluxDB logo
  • Puts Debuggerer

    Ruby library for improved puts debugging, automatically displaying bonus useful information such as source line number and source code.

    $ mkdir my-nix-shell $ cd my-nix-shell $ niv init Initializing Creating nix/sources.nix Creating nix/sources.json Using known 'nixpkgs' ... Adding package nixpkgs Writing new sources file Done: Adding package nixpkgs Done: Initializing $ ls nix sources.json sources.nix $ cat nix/sources.json { "nixpkgs": { "branch": "nixos-unstable", "description": "Nix Packages collection", "homepage": null, "owner": "NixOS", "repo": "nixpkgs", "rev": "6c43a3495a11e261e5f41e5d7eda2d71dae1b2fe", "sha256": "16f329z831bq7l3wn1dfvbkh95l2gcggdwn6rk3cisdmv2aa3189", "type": "tarball", "url": "https://github.com/NixOS/nixpkgs/archive/6c43a3495a11e261e5f41e5d7eda2d71dae1b2fe.tar.gz", "url_template": "https://github.com///archive/.tar.gz" } } $ niv update nixpkgs --branch nixos-24.05 Update nixpkgs Done: Update nixpkgs $ cat nix/sources.json { "nixpkgs": { "branch": "nixos-24.05", "description": "Nix Packages collection", "homepage": null, "owner": "NixOS", "repo": "nixpkgs", "rev": "8b5b6723aca5a51edf075936439d9cd3947b7b2c", "sha256": "0r9a5p748wj5lkpipy6r03d0lqzyv56krcf26l1367xg4nafn95c", "type": "tarball", "url": "https://github.com/NixOS/nixpkgs/archive/8b5b6723aca5a51edf075936439d9cd3947b7b2c.tar.gz", "url_template": "https://github.com///archive/.tar.gz" } } $ cat < shell.nix { ... }: let sources = import ./nix/sources.nix; pkgs = import sources.nixpkgs { }; in pkgs.mkShell { buildInputs = [ pkgs.figlet ]; } EOF $ nix-shell --pure --run "echo niv | figlet" [... truncated ...] _ _ __ (_)_ __ | '_ \| \ \ / / | | | | |\ V / |_| |_|_| \_/

  • nixpkgs

    Nix Packages collection & NixOS

    $ mkdir my-nix-shell $ cd my-nix-shell $ niv init Initializing Creating nix/sources.nix Creating nix/sources.json Using known 'nixpkgs' ... Adding package nixpkgs Writing new sources file Done: Adding package nixpkgs Done: Initializing $ ls nix sources.json sources.nix $ cat nix/sources.json { "nixpkgs": { "branch": "nixos-unstable", "description": "Nix Packages collection", "homepage": null, "owner": "NixOS", "repo": "nixpkgs", "rev": "6c43a3495a11e261e5f41e5d7eda2d71dae1b2fe", "sha256": "16f329z831bq7l3wn1dfvbkh95l2gcggdwn6rk3cisdmv2aa3189", "type": "tarball", "url": "https://github.com/NixOS/nixpkgs/archive/6c43a3495a11e261e5f41e5d7eda2d71dae1b2fe.tar.gz", "url_template": "https://github.com///archive/.tar.gz" } } $ niv update nixpkgs --branch nixos-24.05 Update nixpkgs Done: Update nixpkgs $ cat nix/sources.json { "nixpkgs": { "branch": "nixos-24.05", "description": "Nix Packages collection", "homepage": null, "owner": "NixOS", "repo": "nixpkgs", "rev": "8b5b6723aca5a51edf075936439d9cd3947b7b2c", "sha256": "0r9a5p748wj5lkpipy6r03d0lqzyv56krcf26l1367xg4nafn95c", "type": "tarball", "url": "https://github.com/NixOS/nixpkgs/archive/8b5b6723aca5a51edf075936439d9cd3947b7b2c.tar.gz", "url_template": "https://github.com///archive/.tar.gz" } } $ cat < shell.nix { ... }: let sources = import ./nix/sources.nix; pkgs = import sources.nixpkgs { }; in pkgs.mkShell { buildInputs = [ pkgs.figlet ]; } EOF $ nix-shell --pure --run "echo niv | figlet" [... truncated ...] _ _ __ (_)_ __ | '_ \| \ \ / / | | | | |\ V / |_| |_|_| \_/

  • smtp-mail

    Simple email sending via SMTP (by haskell-github-trust)

  • autodocodec

    self(auto)- documenting encoders and decoders

    $ bash niv-add-hackage.sh autodocodec-openapi3 Adding package autodocodec-openapi3 Writing new sources file Done: Adding package autodocodec-openapi3 $ niv show autodocodec-openapi3 autodocodec-openapi3 author: Tom Sydney Kerckhove copyright: 2021-2022 Tom Sydney Kerckhove description: homepage: https://github.com/NorfairKing/autodocodec#readme license: MIT name: autodocodec-openapi3 sha256: 10yrfgqwblbb516920m19wjk7lhxin6nf0accaf3xdxbkz71k01n synopsis: Autodocodec interpreters for openapi3 type: tarball uploaded_at: 2024-07-29T14:54:16.685736428Z url: https://hackage.haskell.org/package/autodocodec-openapi3-0.2.1.4.tar.gz url_template: https://hackage.haskell.org/package/-.tar.gz version: 0.2.1.4

  • SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

    SaaSHub logo
NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts

  • Simplest way to set up neovim

    5 projects | /r/NixOS | 26 Jun 2022
  • GitHub Copilot is generally available to all developers

    7 projects | news.ycombinator.com | 21 Jun 2022
  • Why is Gemfile being interpreted as nix?

    2 projects | /r/NixOS | 4 Mar 2022
  • Status of GHC on Apple M1 hardware?

    3 projects | /r/haskell | 26 Oct 2021
  • Managing issues with the Haskell Stack projects under NixOS

    5 projects | /r/NixOS | 28 Aug 2021