[ANN] Juliaup Preview - Julia version manager and Windows Store installer

I just released version 1.1 to the Windows Store.

This is both a big and small update at the same time. In terms of user facing changes, it is very minimal:

  • There is a progress bar for downloads.
  • There are new -h and --help flags.
  • Generally the command line interface is a bit richer.

Under the hood, this is a complete rewrite :slight_smile: Everything is written in Rust now. There are some major benefits to this new approach:

  • Everything is much smaller. The previous juliaup was a couple hundered MB, now it is about 2.5 MB. When you install from the store, the total size now is what you would expect, a little more than 100 MB. Updates to juliaup that don’t include updates to the bundled Julia version are really small and fast now.
  • juliaup has excellent startup performance :slight_smile:
  • The code is much more robust. Rust really forces you to handle errors and catches many via its static type system.
  • This all paves the way to a completely cross-platform version of juliaup.
  • No more C++! The launcher was previously written in C++ (because it needs to be really as fast as possible), but now is also written in Rust, which makes it way, way simpler.

At the same time, a rewrite always is a risk, and I’m sure I outsmarted Rust’s type checker somewhere and managed to introduce some new bugs. So, please be on the lookout for those and report them either here on even better over at GitHub - JuliaLang/juliaup: An experimental Julia version manager. I’ll be monitoring both places and will try to fix anything that comes up quickly.

How do you get the new version? Well, just wait, it is auto-update :slight_smile: You could also check in the Windows Store for updates, but it will probably take a little longer before the files have made it through the store submission pipeline.

22 Likes

Thanks, loving this!

Just got it updated through the Store but there seems to be an issue with the Julia versioning - looks like it’s recommending a downgrade?

Not sure what to do.

1 Like

Ah, I forgot to remove something there from an older version. Two options: 1) I’m going to push out an update that fixes this very soon, 2) you can delete a file called juliaup-versionsdb-winnt-x64.json in your ~/.julia/juliaup folder and then it should also be fixed.

6 Likes

I also hoped to have something like rustup over jill.py, avoiding an extra step installing pip3 would be VERY convenient especially when I use AWS instances pip3 isn’t always available in the AMI.

I was hoping to do this in pure Julia tho so I made a very experimental thing called Ion: GitHub - Roger-luo/IonCLI.jl: The Ion CLI for Julia. and I haven’t got much time to polish it recently. It’s a binary built in pure Julia and thus has a much larger size. And my hope is to get smaller binary when the Julia runtime separated from codegen and llvm. I was hoping it to be more a CLI for more complicated julia workflows like some of the features cargo provides.

I’m very excited to try out juliaup it seems much stable than Ion and smaller too. Thanks for making this!

1 Like