The next release of Tidal is getting harder to install! In particular on Windows - which needs a specific version of ghc (the latest one), in order to compile the new and very exciting link-based scheduling and syncing stuff from @Zalastax (thanks!). The latest version of ghc in chocolatey seems to be causing a lot of problems. As a Linux person I'm a bit distant from these issues.. There are also the ongoing issues with cabal which it seems won't get resolved any time soon.
This is holding back the release of Tidal 1.9.0 and it's be great to get some people together to solve this across windows, linux and mac.
One solution to a lot of these problems is to release Tidal in binary form. @polymorphic.engine has done some great work making this achievable, but we need to get it done and tested. There are different approaches to take
Or all of these! There's a lot of work here, a lot of which is getting automatically built via github actions.. But needs finishing off and testing. Who's up for helping push this forward? Otherwise I'm not sure how 1.9.0 is going to see the light..
I have tried building tidal 1.9.0 and using it to build tidal-gui but it seems very difficult to actually tell the interpreter inside of tidal-gui to load the locally built version of tidal..
so the proper testing of the binary builds (of tidal-listener and tidal-gui at least) depend on tidal 1.9.0 being released (i am actually a bit worried that something might break together with hint).. maybe we should do an intermediate release with tidal-link to be able to properly test?
i'm going on holidays for two weeks starting tomorrow but after that I can spend some time to push this
there are a few things that come to my mind that would need to be done, if someone wants to get started while i'm away:
- the interpreter in tidal-gui is at the moment a bit more advanced than the one in tidal-listener, it wouldn't be hard to update it by just copying over the changes from the hint module of tidal-gui
- the workflows in tidal-listener need to be updated, this is also just a matter of taking a look at the workflows from tidal-gui
i would still say tidal-gui is in a more or less experimental stage (it can sometimes crash for unknown reasons), so while i'm still planning to work on it and make it more stable, i think tidal-listener is probably the way to go for now (I'm not sure how much effort it would take to rewrite the editor plugins though)
chocolatey is IMHO always going to be a bit of a dog’s breakfast. (Source: .net developer from 2001 to 2021.)
I run tidal (and most other things) on MacOS. I have a Windows machine around for other uses, but little time to test before just asking …
How’s the ghcup story on Windows these days?
I imagine that’d be the best way to get a full Haskell setup going on a Windows box if the more self-contained Tidal options are perhaps a bridge too far (at least for today.)
ghcup seems to be cross-platform now. Perhaps it's feasible that editor plugins could install ghcup on behalf of the user. I think the vscode haskell plugin at least interacts with it.
Agreed on chocolatey.
And, if necessary, it looks like a direct install is a one-liner in powershell, which shouldn’t be too tall of a barrier.
From a super-quick skim of the docs, the ghcup install process can be controlled via env vars to be silent, to not install any versions of anything, etc. After install, GHC, cabal, etc. versions can be installed by driving ghcup on the command line, instead of via the ghcup UI. They can even be installed and activated directly inline with launching an editor ala this example from the ghcup docs:
ghcup run --ghc 8.10.7 --cabal latest --hls latest --stack latest --install -- code Setup.hs
Seems promising, albeit unverified as yet.
Agree that tidal-listener should be the way to follow, there are already some issues to work on on the tidal repository, adapting the editor plugins won't be a lot of work (I'm talking from the atom/pulsar perspective)
We have some issues about the listener:
If there are any missing we can add them and work on them.
Ok lacking a team of eager quality assurance people I think we should just release 1.9.0 as-is. Without spending loads of time on the editors we don't really have another way of improving the installation process than shipping it and then improving the process in response to requests for help. There's some issue with the latest haskell version on windows and mac and the way transitions are loaded in BootTidal.hs - once I fix that lets just release it!
Ok I'm just going to go ahead and release it now