Skip to content

Add option to manually specify package set overlays instead of providing settings option #348

@eldritch-cookie

Description

@eldritch-cookie

The Problem

I commonly want to develop my projects with the latest ghc version, this means that i need to apply fixes for many packages while i wait for the fixes i upstreamed to land. However this is extremely painful to do currently with haskell-flake.

There are various issues which contribute to this. The settings option is really underdocumented so whenever i need to apply a fix i am forced to go to the haskell flake source code at nix/modules/settings/all.nix, this also means that i also NEED to already know how to apply the desired fix via the functions on pkgs.haskell.lib. Even worse if i need a version change or anything uncommon i am forced to use the custom attribute, which means that i need to rewrite all my extra fixes to be in the overlay version to guarantee they aren't discarded.

additionally having 2 different methods of applying fixes means that i when want to upstream mine i have to convert everything to be nixpkgs compatible which may be like a minute per package but that means almost 2 hours if have 100 packages, which isn't uncommon when i first upgrade to a new ghc version.

Proposed solution

Instead of having a settings option which reimplements everything on pkgs/development/haskell-modules/lib/compose.nix just give an option where the user provides a haskell package set overlay, the ergonomics then are equivalent to nixpkgs and no duplication is necessary.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions