-
-
Notifications
You must be signed in to change notification settings - Fork 14.1k
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
crystal: 0.31.1 -> 0.32.1 #75545
crystal: 0.31.1 -> 0.32.1 #75545
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Could you also add this version to the top-level?
Do you know from which version onwards? |
Looks like it bumped as part of 0.32.0. See crystal-lang/crystal@47b68e9, which points to crystal-lang/distribution-scripts@6e8201b |
@GrahamcOfBorg build crystal |
@filalex77 any update on this? |
@kimburgess, upstream changed from llvm 4 to 8, while we are currently using llvm 7 so looks like crystal isn't too picky about the llvm version. I suggest we don't do anything special and just use whatever is the default llvm in nixpkgs. |
There was a 0.32.1 release in the meanwhile. @kimburgess |
Seems like there's a linux build failure still, so the specs probably shouldn't be enabled after all. |
Ah yes, sorry about that - I was still playing around with work on those specs. I've now added patches to either:
This lets the check phase run for some added sanity / confirmation that the build is stable. |
You don't need to package the binary derivations - we should be self-hosted using |
@peterhoeg how far back do you want to go with that? They were added to match the build pattern used by 0.30.x and earlier. The potential danger in chaining builds is a machine without access to a cache for P.S. I'll rebase and neaten up this scattering of commits for you prior to merge too. |
The last release will build the next release is the guarantee. Bootstrapping crystal from the original ruby version is possible but takes hours (and is only possible on x86). Depends if your aim is to have maximum trust for everything, or whether your aim is to support building without a binary cache or what the tradeoff you want to make is. |
This pull request has been mentioned on NixOS Discourse. There might be relevant details there: https://discourse.nixos.org/t/nixos-20-03-feature-freeze/5655/7 |
@manveru re the discourse mention: still here. I’ve been awaiting an answer from @peterhoeg on the binary dependency. Sorry if that was unclear. As a co-maintainer do either of you have a preference? |
I don't mind having a binary dependency, it really cuts down the build times when changing the generic derivation, which needs to rebuild all the versions before it as well. As an experiment I also once tried building all versions all the way back to the Ruby one, but turns out we don't have the required ancient LLVM version in any revision of nixpkgs, so I gave up on that. While from a theoretical and security perspective, having a full bootstrap would probably be beneficial. Another option would be to split up the generic derivation into "frozen" ones, and keep one for each version that won't be touched in future. But even then it will be a major drag for mass rebuilds if any of the dependencies change. What I would like instead is actually reducing the number of versions we keep. Crystal is still a pretty fast moving target, and if one really needs older versions they can use a specific checkout of nixpkgs. I don't think it makes sense to have anything older than 1 year in the available versions, nobody tests them to make sure they are still working, not to mention we have checks disabled for them as well, so even if they still build, they might be broken at any time. |
Cool. Deprecating / removing old versions is probably best handled outside of this PR. Definitely agree that limiting available builds makes sense in order to keep noise to a minimum in the top level packages. I've tidied things up for what's needed here for now. |
Thanks for all the hard work on the tests @kimburgess. Let's reassess the situation with binary builders when crystal hits 1.0. I'm with both you and @manveru on this. |
crystal: 0.31.1 -> 0.32.1 (cherry picked from commit 306e1f9)
crystal: 0.31.1 -> 0.32.1
Things done
sandbox
innix.conf
on non-NixOS linux)nix-shell -p nix-review --run "nix-review wip"
./result/bin/
)nix path-info -S
before and after)Notify maintainers
cc @manveru @david50407 @peterhoeg
Note: it may be worth switching building inputs across to use
llvm_8
so that it's matched to the official builds.