two interesting changes here:
first, 0.19.2 needs to be built with GHC 9.8 rather than GHC 9.6. So,
we move it and ansi-wl-pprint from packages/ghc9_6/ to
packages/ghc9_8/, adding the elmPkgs attributes to
packages/ghc9_8/default.nix. however, elm-format does *not* want the
older ansi-wl-pprint, so we push its use down inside the 'callPackage
./elm {}' scope.
second, we're picking up a newer version of ansi-terminal than
upstream uses, which has introduced a couple of new
underlining-related constructors. so, we patch in cases for them
where necessary. (I was a bit surprised that the existing
SingleUnderline and DoubleUnderline cases in the 'isUnderline'
function did not both evaluate to 'True', so I'm taking my best guess
as to the real intent here; easy enough to fix if we discover these
new cases should be 'True'.)
we also manually preserve the 'description' attribute in
elm/default.nix. (the update script clobbered it.)
other than the above, the update script as modified here produced all
these changes.
* activate the 'errexit' and 'nounset' bash safety nets
* fix the path to the root shell.nix (was missing one ../)
* also specify that nixpkgs is at that same path
* run the formatter on all the nix code generated by the update script
* use a pure nix shell, which requires that we add explicit dependencies on:
* nix
* cacert
* nixfmt
this version of the script produces the changes to the elm-format
expressions: a newer license format and use of the hash of the '0.8.8'
signed tag itself rather than the hash of the tagged commit (note the
checksum of the src derivation does not change).
this is in preparation for the 0.19.2 update
This allows dropping elmi-to-json, which in turn allows dropping GHC
8.10.7. Along with elmi-to-json, we can remove the patchBinwrap utility,
which was only used for that purpose.
Along with elm-coverage, we can also drop elm-instrument, which was only
used as a dependency of the former, and it's reverse dependency indents.