juliaup
juliaup copied to clipboard
support nightly channels
The way this works is that we mark which versions are nightly versions
in the versions db during the build process and then special-case those
when added as a channel or when updated. Right now, juliaup update
will always download new nightly tarballs, which could potentially be
wasteful if that's called again in quick succession, but I think for now
that should be a reasonable solution.
I have also gotten rid of a lot of code duplication in build.rs
, which
should make adding new platforms easier in the future. I hope I didn't
miss anything there.
Closes #96
Ok, I'm torn about this PR :) I definitely want to include it eventually, but maybe we should just power through the auto-update stuff first and get a finished build out that works on Linux/Mac, and then start to add new features?
Yes, there's no rush here, so we can finish that stuff up first. Just if you're planning any bigger changes to the build.rs
recipe, I think it would be worth looking at this PR first because rebasing that file might be a bit of a pain.
Ok, I have now rebased this. @davidanthoff The auto-update stuff seems to be mostly working now, right? Do you happen to have a moment to review some time this week?
I'll try :)
Bump.
Any update?
I wanted to use/test this, so I needed to figure out how to build it while it is still being reviewed (which could take a while as davidanthoff is a single person supporting a ton of quality-of-life julia software -- I can not express how much your work has made my life easier). Here are the directions for other rust-incompetent people like me:
Install rust with rustup (well... this is meta)
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
Get this branch and build it
git clone https://github.com/JuliaLang/juliaup.git
cd juliaup
git checkout sds/nightly
cargo build
You probably want to now overwrite your local juliaup
install with this one (no idea how bad of an idea that is, but I did it by simply copying over the compiled files). You can run the newly compiled juliaup
and test it out
cd target/debug
cp juliaup julialauncher ~/.juliaup/bin/
juliaup add nightly
juliaup default nightly
Seems to be working fine for me. I will report any problems here if I uncover them.
This was written by a person that does not know much about rust or about juliaup
Chance of a review and possible merge here, @davidanthoff? Or maybe deputize @simeonschaub to become another maintainer?
I have been using this for about a month and on the nightly releases it works quite well, including updating to current nightlies. I have not encountered any bugs.
There was one minor issue that got me a bit confused, but it is probably due to the fact that this branch is not aware of the newest julia versions. I ran juliaup default release
to temporarily switch to a non-nightly version and got this message:
julia --project=. -t4
The latest version of Julia in the `release` channel is 1.7.1+0~x64. You currently have `1.7.2+0~x64` installed. Run:
juliaup update
to install Julia 1.7.1+0~x64 and update the `release` channel to that version
which is claiming that 1.7.1 is newer than 1.7.2 and it does not even know about the existence of 1.7.3, which I think is the actually newest version.
what version of juliaup is this?
Naturally, the one from this very pull request, unreleased, locally compiled.
You likely just need to rebase this branch, this branch doesn't include the latest Julia versions
I rebased it here: https://github.com/visr/juliaup/tree/night
It was a bit tricky due to the (nice) refactor of build.rs
in this PR, integrating for instance da7b0034060e8bc4b24fc8a5c7a02e8bb09330e1 from master, but I think it's good now. It works well for me:
> juliaup add 1.7
Installing Julia 1.7.3+0 (x64).
> juliaup add rc
Installing Julia 1.8.0-rc1+0 (x64).
> juliaup add nightly
Installing Julia 1.9.0-latest+0 (x64).
Would be great to see this land, maybe this helps.
+1 for merging this
@davidanthoff Is it ok to go ahead with some of these merges?
I would prefer that we hold off with this until after Juliacon. We have a video coming out at Juliacon that will encourage a lot of folks to use this, I still have one pretty significant change that I must get in before that, and really we should already be at a point where we have hardly any code churn with the deadline (i.e. I feel I'm behind schedule already).
But, once we have Juliacon behind us, I'm all game to merge this!
I'm really looking forward to this feature. The convenience of being able to test locally with the most recent development version will be nice.
@simeonschaub can you rebase this?
For the last few weeks I have been using the rebase that visr mentioned in this comment https://github.com/JuliaLang/juliaup/pull/197#issuecomment-1172395911
@vchuravy I updated my branch to current main in #384.
Any new info on this?
When is the merge planned ?
Is there any chance this can be merged after another rebase (before JuliaCon 2023 is too close again)? Or are there new blockers that make merging this infeasible now?
I think merging this is infeasible, see https://github.com/JuliaLang/juliaup/issues/96#issuecomment-1366895620.
see #601 support this on current master
Alright, I merged a different nightly branch, thanks for this nevertheless!