- TUI: new context menus for advanced installation and compilation by @lsmor #949
- Add
def-ghc-conf-options
config option
- Fix TUI for screenreaders
- Fix windows process creation #1036
- Migrate from streamly to conduit to unbreak hackage releases, wrt #1051
- Improve parsing of --platform values, fixes #1057
- Avoid option clash on
-s
- Don't allow to specify --hadrian and --config wrt #1082
- Point to correct store dir when XDG is used #1089
- Fix boot GHC for
ghcup compile ghc
wrt #1045 - Add hadrian-ghc flag wrt #1044
- A help screen/tutorial in the TUI by @lsmor (Luis Morillo)
- Beef up
--overwrite-version
, fixes #998- e.g.
ghcup compile hls -g master --overwrite-version='%v-%h' --ghc 9.4.8
will produce a binary calledhaskell-language-server-wrapper-<version-from-cabal-file>-<short-git-commit-hash>
... refer toghcup compile hls --help
for more information
- e.g.
- Allow to set ghcup msys2 environment wrt #982
- Add mechanism to warn on new metadata versions, fixes #860
- Add pre-install message support via ghcup metadata, wrt #1016
- Allow to remove all unset versions, fixes #1019
- e.g.:
ghcup gc --unset
- e.g.:
- Fix potential HSEC-2024-0002
- Fix TUI crash in windows terminal 1.19 #1013
- Clean up on git clone errors, fixes #1004
- Error out on empty UserSettings wrt #922
- Fix failure mode when metadata is garbage, fixes #921
- Be less confusing when user tries to 'set' ghcup in TUI, fixes #923
- Fix prefetch for cross bindists
- Fix misinterpretation of '+' in URI paths, fixes #408
- Stricter (and better) file uri handling
- Set LD=ld.bfd on Alpine linux during bindist configure
- Add rocky/void detection
- Logging improvements
- Remove the "show all tool" config in the TUI
- Fix opening changelog on windows
- Don't remove share dir link prematurely
- Require user to explicitly choose subcommand for 'ghcup config'
- Don't download twice when trying stack decoding
- Large TUI code cleanup by @lsmor (Luis Morillo)... more coming up soon
- Allow building with
tar
instead oflibarchive
(mainly to make contributions easier)
- support TUI on windows thanks to the work from vty and brick maintainers (Chris Hackett, Timofey Zakrevskiy, Jonathan Daugherty, ...), wrt #912
- support JS and wasm cross compilers wrt #838, thanks to Sylvain Henry and IOG
- Support stacks installation strategy and metadata wrt #892
- you can now enable stacks installation method via
ghcup config set url-source '["GHCupURL", "StackSetupURL"]'
... for more information, check the documentation
- you can now enable stacks installation method via
- fix segfault in TUI when hitting enter early wrt #887
- Improve key handling in TUI, fixes #875
- add explicit support for Void Linux and Rocky Linux (this requires a metadata version bump to
ghcup-0.0.8.yaml
) - optparse cli interface now has a test suite thanks to Lei Zhu, wrt #862
- fix missing TUI for aarch64 linux binaries
- Follow-up fix for JFS/ReiserFS and other filesystem that don't support
d_type
, fixes #787- the previous release had a bug that invalidated that broke it
- Implement 'latest-prerelease' tag wrt #788
- Fix 'Could not parse version of stray directory.DS_Store' warnings on macOs wrt #797
- Fix GHCup on JFS/ReiserFS and other filesystem that don't support
d_type
, fixes #766 - Don't fail on setModificationTime, fixes #784 and many GitHub actions issues
- Make armv7/aarch64 linux binaries more portable (built on Debian buster)
- Improve usability on 'ghcup config add-release-channel', fixes #751
- Make version shortcuts work with 'ghcup set', fixes #757
- Don't implicitly smuggle in config options in
ghcup config set
wrt #775 - Fix build on unix with -ftui
- restore proper support for FreeBSD and Linux armv7
- integrate with errors.haskell.org, wrt #434
- allow to overwrite distro detection via config wrt #421
- this is particularly useful for e.g. Ubuntu derivates, where ghcup doesn't pick the optimal bindist, also see the GHCup documentation on overriding distro detection
- Add proper support for mirrors wrt #357
- fix a (harmless) bug in
ghcup nuke
on windows - improvements to
ghcup add-release-channel
wrt #708 - fix building newer GHC from source wrt #433
- Fix
ghcup install hls -u
on windows - Fix failure with
--isolate=dir --force
- Add
--metadata-fetching-mode
arg, fixes #440 - Add content-length property to downloads
- Fix a grave bug on armv7 during installation wrt #415
- improve many warning/error messages (contributions by @taylorfausak)
- some minor optimization in
ghcup whereis ghcup
- improve
--keep=always
to not clean up directories in certain circumstances
- fix sdist and unbreak hackage, wrt #399
- Fix tui set wrt #266 by Arjun Kathuria
- Ask the user to install the tool via prompt when setting an non-installed version
- improvements to safe (un-)installations
- bindists that don't support
make DESTDIR=/some/tmp/dir install
are now unsupported - installed GHC files are now recorded to avoid use of
removePathForcibly
- internally uses a newtype wrapper for user-input paths and restrict destructive operations to validated paths
- bindists that don't support
- Add
--disable-ld-override
for darwin bindists wrt #391 - Allow passing bindist configure args wrt #377
- use of
TMPDIR
is dropped... now uses an internal tmp dir~/.ghcup/tmp
- improvements to error handling and warnings
- Require --isolate to have an absolute directory, fixes #367
- Fix mingw PATH handling wrt #371
- Add --mingw-path switch to
ghcup run
- Fix
ghcup run
on windows, fixes #375 - Improve
ghcup compile <hls|ghc>
- short hashes now work
- print the long hash in addition to the detected version
- Improve
ghcup compile hls
- add
--git-describe-version
switch as an alternative to--overwrite-version
- Allow to build HLS from hackage (now is the default)
- Allow to run 'cabal update' automatically before the HLS build
- Fix parser and completer for 'ghcup compile hls --version'
- add
- Improve
ghcup compile ghc
- Allow to build from arbitrary GHC source dists
- windows hotfix (hackage-only release)
- broken sdist (hackage-only release)
- Fix a serious (but hard to trigger) bug when combining
--isolate <DIR>
with--force
, please make sure to upgrade or avoid--force
- Fix HLS build not cleaning up properly on failed installations, fixes #361
- Fix parsing of symlinks with multiple slashes, wrt #353
- Re-enable upgrade functionality for all configurations wrt MR #250 and VSCode haskell issue #601
- Fix
ghcup run --ghc 8.10
(for short versions) wrt #360- this also introduces a
--quick
switch forghcup run
- this also introduces a
- Fix
ghcup run
on windows wrt #345
- Vastly improve shell completions wrt #242
- Fix 'ghcup install cabal/hls/stack --set' wrt #324
- Fix bad error message wrt #323
- Use predictable /tmp names for
ghcup run
, fixes #329 - Fix bug with isolated installation of not previously installed versions
- Add
--no-set
to install commands, fixes #330 - Fix serious bug in
ghcup list --raw-format -t <tool> -c installed
- Overhaul metadata merging and add
ghcup config add-release-channel URI
wrt #328 - Fix max path issues on windows with
ghcup run
- Implement
ghcup run
subcommand wrt #137 - Support installation of dynamic HLS bindists wrt HLS #2675 and #237
- Fix XDG support when
~/.local/bin
is a symlink wrt #311 - Add support for quilt-style patches wrt #230, by James Hobson
- Fix redundant upgrade warnings in
ghcup upgrade
- Fix
ghcup whereis ghc
for non-standard versions wrt #289 - Don't print logs to stdout, but stderr
- Allow unpacking legacy lzma archives wrt #307
- Allow to disable self-upgrade functionality wrt #305
- Fix
ghcup install ghc --set
when ghc is already installed wrt #291
- add
--metadata-caching
option, allowing to also disable yaml metadata caching wrt #278 - make upgrading ghcup in TUI more pleasant wrt #276
- fix parsing of atypical GHC versions (e.g.
8.10.5-patch1
) - fix compiling HLS dynamically linked, also see #245
- redo (and break) some of the
ghcup compile <tool>
interface, improving patch options and setting custom cabal.project files - avoid redundant update warnings wrt #283
- clean up during unpack failures as well
- migrate te aeson-2.0.1.0
- switch to yaml-streamly to fix performance regression wrt #270
- use github.com/haskell/ghcup-metadata for metadata file download (better caching)
- Honour GHC bootstrap compiler during git clone stages wrt #250
- Speed up
unset
command - Fix
--overwrite-version
forghcup compile ghc
wrt #253 - Apply patches before bootstrap
- Fix
NO_COLOR
- Fix
ghcup list -t
for hls/stack, wrt #244 - Get rid of concurrent-output
- Improve cli interface with partial versions (e.g.
ghcup install ghc 8
) - Fix HLS compilation builds
- Implement
ghcup gc
(garbage collection) command
- Add
--force
option to install/compile wrt #210 by Arjun Kathuria - Implement compiling HLS from source wrt #201
- Implement experimental GPG verification of the metadata file (see README) wrt #263
- Add
ghcup unset
command wrt #145 - Add
ghcup whereis bindir
etc wrt #221 - Greatly reduce dependency footprint wrt #212
- Add
ghcup --plan-json
- Improve
--patchdir
option for GHC compilation wrt #226 - Try to improve logging and failure modes, especially during downloads
- Add descriptive warnings when HLS and GHC versions are incompatible
- Improve curl header parsing wrt #213
- Add isolated installations wrt #141 by Arjun Kathuria
- Implement config cli MVP wrt #134 by Oleksii Dorozhkin
- Fix
ghcup compile ghc --flavor
- Fix minor installation bug causing increased disk space wrt #139
- Improved error handling wrt #136
- Various improvements to metadata download when using
file://
and--offline
wrt #137
- Add 'nuke' subcommand wrt #135, implemented by Arjun Kathuria
- Add uninstallation powershell script on windows wrt #150
- Improve logging
- Fix building GHC cross compiler wrt #180
- Allow to use hadrian as build system (for git based versions only) wrt #35
- Allow passing
--flavor
toghcup compile ghc
- Support new GHC
bin/
directory format wrt ghc/ghc#20074 - Implement
whereis
subcommand wrt #173 - Add
--offline
switch andprefetch
subcommand wrt #186 - Implement ETAGs hashing for metadata downloads to speed up
ghcup list
wrt #193 - Avoid unnecessary fetching of ghcup metadata in some commands
- Avoid unnecessary update checks for some commands
- Preserve mtimes on unpacked GHC tarballs on windows wrt #187, fixing issues with
ghc-pkg
- Fix lesser bug in
ghcup list
for stray stack versions wrt #183 - Major redo on how file removal on windows works, avoiding partial removals etc, wrt #165
- Improve ghcup tui for screen readers wrt github/#4, thanks to Mario Lang
- Remove legacy handling of cabal binary and be more graceful about binaries not installed by ghcup (e.g. stack)
- Fix GHC compilation from git
- Fix 'ghcup upgrade' on windows
- Allow to skip update checks via
GHCUP_SKIP_UPDATE_CHECK
- Use libarchive on windows as well, fixing unpack errors wrt #147
- Add Apple Silicon support
- Add windows support wrt #130
- Add stack support
- Warn when /tmp doesn't have 5GB or more of disk space
- Allow to compile GHC from git repo wrt #126
- Allow to set custom ghc version when running 'ghcup compile ghc' wrt #136
- Add date to GHC bindist names created by ghcup
- Remove dead dependency on ascii-string
- Make internal symlink target parser more lax, fixes #119
- Prepare for hackage release
- Major bugfix: fix handling of stray versions wrt #116
- Fix error messages and overhaul pretty printing wrt #115
- Support ARMv7/AARCH64
- Add command line completions for installed and available versions wrt MR #70
- Allow to cycle through set tools wrt #114
- Fix item selection with unavailable versions wrt #107
- Allow for dynamic post-install, post-remove and pre-compile msgs wrt MR #68
- Alert user if upgraded ghcup is shadowed by old ghcup wrt #111
- Fix to
ghcup
directory creation and placement for the XDG install mode (MR #49) - Do 755 permissions on executables, wrt #97
- Add NO_COLOR support wrt MR #47
- Fix disappearing HLS symlinks wrt #91
- improve TUI:
- separators between tools sections
- reverse list order so latest is on top
- expand the blues selected bar
- show new latest versions in bright white
- allow configuration file and setting TUI hotkeys wrt #41
- see https://gitlab.haskell.org/haskell/ghcup-hs#configuration for a more in-depth explanation
- add a
--set
switch toghcup install ghc
to automatically set as default after install - emit warnings when CC/LD is set wrt #82
- add support for version ranges in distro specifiers wrt #84
- e.g.
"(>= 19 && <= 20) || ==0.2.2"
is a valid version key for distro
- e.g.
- Add support for installing haskell-language-server, wrt #65
- When compiling GHC from source create a bindist first, store that bindist in
~/.ghcup/cache
and install it, wrt #51 - Allow to compile over existing version (
ghcup compile ghc -v 8.6.5 -b 8.6.5
) and replace it wrt #59 - simplify installing from custom bindist wrt #60
ghcup install ghc -u <url> <version>
- fix bug when cabal isn't marked executable in bindist
- fix bug when
~/.ghcup
is a valid symlink wrt #49 - Drop support for compiling cabal from source (the old bootstrap script is discontinued)
- Show stray Cabals (useful for pre-releases or compiled ones)
- Fix bug when uninstalling all cabal versions
- Fix bug when setting a non-installed ghc version as current default
- Use yaml instead of generated json for download info for ease of adding new GHC versions #44
- Allow pre-release versions of GHC/cabal
- Add XDG dirs support (set
GHCUP_USE_XDG_DIRS
) wrt #39 - Allow to specify regex for tarball subdir (e.g.
ghc-.*
) - Allow installing arbitrary bindists more seamlessly:
- e.g. installing GHC HEAD:
ghcup -n install ghc -u '{"dlHash": "", "dlSubdir": { "RegexDir": "ghc-.*"}, "dlUri": "https://gitlab.haskell.org/api/v4/projects/1/jobs/artifacts/master/raw/ghc-x86_64-fedora27-linux.tar.xz?job=validate-x86_64-linux-fedora27" }' head
- e.g. installing GHC HEAD:
- Avoid duplicate edits to .bashrc/.zshrc wrt #43
- Fix bug in logging thread dying on newlines
- Allow to install from arbitrary bindists:
ghcup -n install ghc -u '{"dlHash": "", "dlSubdir": "ghc-8.10.1", "dlUri": "https://github.com/commercialhaskell/ghc/releases/download/ghc-8.10.1-release/ghc-8.10.1-x86_64-deb9-linux.tar.xz"}' 8.10.1
- Fix a bug in libarchive not unpacking some uncleanly packed bindists
- Improved fish support in bootstrap-haskell
- Only check for upgrades when not upgrading
- Fix platform detection for i386 docker images
- Improve alpine support
- more/proper bindists
- don't fall back to glibc based bindists
- install bindists with
--disable-ld-override
to avoid ld.gold bugs
- Create a new curses (brick) based TUI, accessible via
ghcup tui
#24 - Support multiple installed versions of cabal #23
- Improvements to
ghcup list
(show unavailable bindists for platform) - Fix redhat downloads #29
- Support for hadrian bindists (fixes alpine-8.10.1) #31
- Add FreeBSD bindists 8.6.5 and 8.8.3
- Fix memory leak during unpack
- Fix errors when PATH variable contains path components that are actually files
- Add
--version
and--numeric-version
options - Add
changelog
command - Also check for available GHC and Cabal updates on start
- Add base versions as tags for every GHC version (these are "installable" tags and the latest GHC version matching the tag will be picked)
- Added
--format-raw
to list subcommand - Allow to install X.Y versions (e.g.: ghcup install 8.8)
- Implement
--keep=<always|errors|never>
to control temporary build directories cleanup - Add proper shell completions to the repo
- Fix building of documentation
- Allow to work in offline mode and use cached files if possible
- Allow to set the downloader via
--downloader=<curl|wget>
- Support for compiling and installing a cross GHC (see README). This is experimental.
- build on all platforms with curl (as a binary), wrt https://gitlab.haskell.org/haskell/ghcup-hs/issues/6
- Fix unlinking of ghc symlinks after new installation, wrt https://gitlab.haskell.org/haskell/ghcup-hs/issues/7
- Fix lesser bug when skipping ghcup update
- Fix bug when removing the set GHC version
- Fix use of undocumented
GHCUP_INSTALL_BASE_PREFIX
variable - skip upgrade if ghcup is already latest version
- fix awful fdopendir bug on mac bug by updating hpath-posix
- First version. Released on an unsuspecting world.