Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

hosc-0.21 support #1105

Merged
merged 5 commits into from
Jan 18, 2025
Merged

hosc-0.21 support #1105

merged 5 commits into from
Jan 18, 2025

Conversation

sss-create
Copy link
Collaborator

@sss-create sss-create commented Jan 15, 2025

I probably won't be able to keep this tempo up. 😅

However, this compiles and was tested by sending patterns from the REPL to SuperCollider. Tidal is still controllable via OSC (tested with Pure Data) too.

edit: would solve #1103

@sss-create
Copy link
Collaborator Author

sss-create commented Jan 15, 2025

Ah! CI shows, there is still a problem with hocs's bytestring version dependency using older GHCs:
the unix package expects 0.10.10.1 exclusively!
https://github.com/tidalcycles/Tidal/actions/runs/12786157753/job/35642668849?pr=1105

bytestring==0.10.10.1/installed-0.10.10.1, hosc => bytestring>=0.11.0.0)```

@yaxu
Copy link
Member

yaxu commented Jan 15, 2025

Ah, that explains why it still isn't compiling for me. I was hoping increasing lower bounds for binary would get me out of dependency hell but it seems not:
https://hackage.haskell.org/package/hosc-0.21/revisions/

I think Rohan is happy to change the dependencies for hosc on hackage further (this is possible without doing a new hosc release). But I'm not sure if this helps?

Perhaps we just have to say that ghc 9.x has been around for several years and we drop support for 8.x Normally I use a recent ghc via ghcup, I just happened to be using the system version on my laptop for some reason.

Debian stable is on ghc 9.x, my laptop install (some linux mint) must be based on oldstable.
https://packages.debian.org/search?keywords=ghc

@cleary do you have a view on this wrt the ansible-based install?

@cleary
Copy link
Contributor

cleary commented Jan 15, 2025

@cleary do you have a view on this wrt the ansible-based install?

Ubuntu 20.04 is my only supported release with ghc 8.x provided, I'm happy to drop support for that now (there are still 2 more supported lts releases)

@sss-create
Copy link
Collaborator Author

@yaxu While dropping support for 8.x seems reasonable, I'm not sure if 9.0.2 has a similar error regarding at least the unix package:
https://github.com/tidalcycles/Tidal/actions/runs/12786157753/job/35642667844?pr=1105

unix expects 0.10.12.1 there, where fromStrict is still not exported from Data.ByteString

@yaxu
Copy link
Member

yaxu commented Jan 15, 2025

Ok have asked Rohan about applying the patch for backward compatibility

see you

@yaxu
Copy link
Member

yaxu commented Jan 15, 2025

hosc 0.21.1 released! seems a bit happier now?

@sss-create
Copy link
Collaborator Author

sss-create commented Jan 16, 2025

I‘d guess the Nix builds fail because there is no hosc-0.21 Nix packages?
Probably needs an edit of this very long file.

I just wonder why the working Nix build is able to use hosc 0.20, although we specify >0.20.

@yaxu
Copy link
Member

yaxu commented Jan 16, 2025

I've not got my head around nix at all I'm afraid..

@sss-create
Copy link
Collaborator Author

Me neither. But by asking some questions on the haskell irc I found out, that there is a script which should update haskell modules in Nix every few hours or at least auto generate PRs that will be merged every few days. So probably waiting one or two days will solve this for us. :)

@ahihi
Copy link
Contributor

ahihi commented Jan 16, 2025

i am using the nix flake, and am happy to test and update it again once hosc 0.21 reaches nixpkgs

@yaxu
Copy link
Member

yaxu commented Jan 16, 2025

Great thanks! Time to merge?

@sss-create
Copy link
Collaborator Author

sss-create commented Jan 16, 2025

Depends what is more important, I guess. To get a new Tidal release done to free hosc‘s way into stackage or don‘t break the Nix package/install. As I understand only one can be chosen currently? In favor of merging and preparing a release could be that Nix also looks at Stackage packages, when Hackage packages are not found — but I am really not sure about the whole Nix process.

@ahihi
Copy link
Contributor

ahihi commented Jan 16, 2025

while we wait for nixpkgs, there is also the option of bringing back the hosc override in flake.nix that was removed in #1098 (updated to 0.21, of course)

@yaxu
Copy link
Member

yaxu commented Jan 16, 2025

I don't know about nix, but I understand everything on stackage comes from hackage. It's like a curated set of hackage package version numbers that work together. So we upload to stackage, then do a PR to remove the upper bounds on hosc in stackage. No rush anyway, tidal is the only thing using hosc on stackage.

@yaxu
Copy link
Member

yaxu commented Jan 17, 2025

Maybe @mitchmindtree has advice as maintainer of https://github.com/mitchmindtree/tidalcycles.nix

Adds a flake input for `hosc` as 0.21 isn't yet on nixpkgs. Rather than
waiting for a nixpkgs PR to update the stackage list, this overrides
`hosc` package with the last v0.21 commit from the hosc repo.
@mitchmindtree
Copy link
Contributor

Ahh I think @ahihi's right, the easiest approach might be to re-add the hosc source to the flake - I've just opened a small PR against this branch here: sss-create#1

fix: Add `hosc` input to nix flake to support v0.21. Update nixpkgs flake input.
@sss-create
Copy link
Collaborator Author

thanks @ahihi, @mitchmindtree and all! Nix and all non-experimental GHC builds are working now :) Time to merge!

@sss-create sss-create merged commit 069fe47 into tidalcycles:dev Jan 18, 2025
19 of 23 checks passed
@yaxu
Copy link
Member

yaxu commented Jan 18, 2025

Thanks all !

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants