hx
raskell-io·raskell-io.hx
Fast, opinionated Haskell toolchain CLI
winget install --id raskell-io.hx --exact --source wingetLatest 0.9.2
Release Notes
If you use the Helix editor, or installed hx via Homebrew: this release may install hx under the name
hxsinstead ofhx. Helix's binary is also calledhx, and hx now steps aside rather than colliding. Every command works the same, spelledhxs. The installer tells you when it does this; Homebrew does it unconditionally, sobrew upgradereplaces an existinghxwithhxs. Runhx doctor(orhxs doctor) to see which names are in play on your machine, and see the Changed section below for how to keep the short name.
Changed
• The binary name is no longer fixed to hx. The Helix editor's binary is
also called hx and ships in most distributions, so a machine can end up with
two executables under one name — whichever comes first on PATH wins and the
other becomes unreachable. hx now adapts instead of colliding.
• The CLI derives its command name from argv[0], so help text, usage,
parse errors, completions and man pages all follow the name the binary was
actually installed under. Previously these were hardcoded:a renamed binary
printed hx throughout its help and, worse, generated shell completions
registered against hx — a command absent from that machine.
(#19)
• install.sh probes PATH and installs as hxs when something else
already owns hx, reporting it plainly. It distinguishes an upgrade from a
collision:an hx installed elsewhere keeps the name rather than being
silently renamed. HX_BINARY_NAME or --binary-name overrides in either
direction. (#22)
• Breaking for Homebrew tap users. The generated formula now installs the
binary as hxs, so brew upgrade replaces an existing hx with hxs.
Homebrew removed formula options, so a formula cannot detect and adapt the
way install.sh does — one name has to serve every brew user. Renaming was
chosen over conflicts_with "helix" because a Haskell toolchain is not an
alternative to an editor and someone may reasonably want both. The formula's
caveats explain how to symlink the short name back.
(#25)
• (#17)
Added
• hx doctor reports binary name collisions. It warns in both directions —
when another hx shadows this one, and when this one shadows another, since
installing hx ahead of Helix silently breaks that editor. This covers the case
install-time detection cannot:installing hx first and Helix second. Stays
quiet when hx was not reached through PATH at all.
(#21)
Fixed
• Documented cache and config directory paths were wrong on macOS and
Windows. ProjectDirs does not place the project at the top of the platform
directory:macOS joins the parts into a bundle id and Windows joins
organization and application. The real locations are
~/Library/Caches/io.raskell.hx and %LOCALAPPDATA%\raskell\hx\cache, not
~/Library/Caches/hx and %LOCALAPPDATA%\hx\cache. cabal_store_dir() was
also documented as ~/.hx/store throughout but returns
<global cache>/cabal/store. These are the paths users follow to find or
clear their own cache, and on those platforms they did not exist.
(#23)
• hx upgrade and install.sh targeted the pre-rename GitHub org. Both
resolved raskell-io/hx and worked only by following a redirect; they now
name arcanist-sh/hx directly. The generated Homebrew formula and install
script did too, which meant regenerating the published tap formula would have
silently reverted a hand-applied fix. Project templates also wrote a
raskell-io link into every generated hx.toml.
(#26,
#27)
• The generated Homebrew formula could not install. It referenced
completions/* files that the release archive does not contain — it ships only
the binary. Completions are now generated from the installed binary, which also
makes them correct for a renamed install.
(#25)
Internal
• CI passes --locked, so a manifest declaring a dependency the lockfile lacks
fails the build instead of silently regenerating Cargo.lock and going green.
(#24)
• The Nix flake builds from source. It previously fetched prebuilt release
tarballs pinned to a version and per-platform sha256, so it went stale after
every release — it had drifted to v0.4.1 while releases reached v0.9.x.
rustPlatform.buildRustPackage now reads the version from Cargo.toml and
vendors dependencies from the committed Cargo.lock, so it always matches the
checked-out revision. (#16)
• FlakeHub and Docker release publishing repaired. Both failed on the v0.9.1
tag for reasons unrelated to that release's contents:nix flake show --all-systems could not evaluate after nixpkgs 26.11 dropped x86_64-darwin
while the flake still declared it. Supported systems are now enumerated
explicitly. The prebuilt x86_64-darwin binary is still shipped as a release
artifact; only the Nix package dropped that platform.
(#15)
Full Changelog:https://github.com/arcanist-sh/hx/compare/v0.9.1...v0.9.2
Installer type: zip
Details
- Homepage
- https://github.com/raskell-io/hx
- License
- MIT