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

I am publishing a new version to the store at the moment that is a pretty huge refactoring of a lot of things. For existing users everything will auto-update, but it might take a day or two until the submission shows up in the store, so be patient :slight_smile:

WARNING: This release will reset your juliaup configuration, i.e. all the Julia versions that you have installed with previous juliaup versions will be gone, and you’ll start out with a “clean” install. I hope this doesn’t cause too much trouble, essentially all you’ll need to do is juliaup add <version> all the versions again that you were using so far. My plan is that this is the last time I do something like this, and going forward everything will be backwards compatible.

There are a number of changes to the existing AP, the most significant one that you now set the default via

juliaup default <VERSION>

rather than the previous juliaup setdefault <VERSION>.

There is also lots of new stuff! Here is a list:

  • Lots of new channels:
    • release: always the latest stable, released version, this is the new default channel.
    • lts: always the latest long term support version, currently 1.0.5.
    • beta: if there is currently a beta for a new release, it will be that, otherwise the version from release, so currently it is 1.7.0-beta.2.
    • rc: if there is currently a release candidate for a new release, it will be that, otherwise the version from release, so currently it is 1.6.1.
  • Users always just select channels now, even things like 1.6.1 are now considered a channel. This greatly unifies everything.
  • You can directly specify the channel you want to run when you start Julia by passing a first command line argument that starts with a plus and then the name of the channel. It must be the first argument! For example, if you have the 1.5 channel installed, you can run julia +1.5 to start the latest Julia version in the 1.5. channel. If you have the beta channel installed, you can do julia +beta to run the latest beta etc.
  • You can link arbitrary commands as channels. This is especially useful for folks that compile from source. For example, you can link a source compile to a dev channel with the command juliaup link dev C:\julia\bin\julia.exe. You can also use this to for example start something in WSL: juliaup link wsl wsl ~/julia/julia. Once you have linked something, you can use that channel as every other channel, i.e. julia +dev works or you can also make it the default with juliaup default dev.
  • There is generic garbage collection in place now. For example, if you have the 1.6 channel installed, then run juliaup update and this would switch out an older version from the 1.6.x series against a newer one, it will automatically delete the old version (unless that version is required by another channel).
  • There is a lot more error checking going on, with hopefully better error messages.
  • The entire setup now updates the list of existing Julia versions independently from Windows Store updates. This will allow us to publish new versions much quicker, because we don’t have to wait for our store submissions to go through. Should also make these updates much smaller.

I think the entire solution should be at a stage now where it is ready not just for brave early adopters but a much wider testing audience. While this is still not an official distribution and should still be considered a beta test or something like that, we have about 100 users, and it seems to work for everyone pretty flawlessly, so I think we can ramp up testing to a wider group. So, please, do try it out and report back any problems!

You can get to the Windows Store listing with this link or just search for Julia in the store. Feedback on the entire thing either here in this thread or over at GitHub - JuliaLang/juliaup: Julia installer and version multiplexer.

And if anyone wants to help out with the development of this, please join! Most of the code is actually written in Julia itself, so it should not be that difficult to contribute. One other major project would be to port all of this to Mac and Linux, so if anyone is interested in that, please also get in touch.

22 Likes