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

**URL:** https://discourse.julialang.org/t/ann-juliaup-preview-julia-version-manager-and-windows-store-installer/61920
**Category:** Community
**Tags:** announcement, juliaup
**Created:** [May 27, 2021, 12:50pm UTC](https://discourse.julialang.org/t/ann-juliaup-preview-julia-version-manager-and-windows-store-installer/61920 "2021-05-27T12:50:16Z")
**Posts on this page:** 20
**Page:** 1

<div class="post-metadata">

### Author: ![davidanthoff](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/davidanthoff/32/223493_2.png) [@davidanthoff](https://discourse.julialang.org/u/davidanthoff)
#### Post date: [May 27, 2021, 12:50pm UTC](https://discourse.julialang.org/t/ann-juliaup-preview-julia-version-manager-and-windows-store-installer/61920/1 "2021-05-27T12:50:17Z")

</div>

I am looking for some brave Windows users that are willing to test drive a new installer for Julia on Windows that is called `Juliaup`.

`Juliaup` is a new Julia version manager for Windows that is distributed via the Windows Store and manages your Julia installation on Windows. `Juliaup` makes it easy to keep your Julia installation up-to-date and to manage multiple Julia versions on one system. `Juliaup` is currently in preview, but should be fairly stable and ready for real world usage.

If you want to try it, here is what you should do:

- Make sure you don’t have any version of Julia on your PATH. `Juliaup` will handle all `PATH` related aspects of your Julia installation.
- Install Julia from the Windows Store [here](https://www.microsoft.com/store/apps/9NJNWW8PVKMN).

Once you have that installed, `julia` is on the `PATH`, there is a start menu shortcut and it will show up as a profile in Windows Terminal. Any of those will start Julia. The VS Code extension will also automatically find this Julia installation.

I am currently shipping an outdated version of Julia out-of-the-box. This is on purpose, so that you can experience `Juliaup` first hand! When you start Julia, you should see a message that tells you that you are using an outdated Julia version, and that you can update to the latest version with `juliaup update`. Just run that from a command prompt, and then everything should be up-to-date. That is the same experience you’ll have in the future when a new Julia version is released.

There are more things you can do with `juliaup`:

- `juliaup status` shows you which Julia versions you have installed and which one is configured as the default.
- `juliaup add 1.5.1` adds Julia 1.5.1 to your system.
- `juliaup setdefault 1.5.3` configures the `julia` command to start Julia 1.5.3.
- `juliaup setdefault 1.6` configures the `julia` command to start the latest 1.6.x version of Julia you have installed on your system (and inform you if there is a newer version in 1.6.x available).
- `juliaup setdefault 1` configures the `julia` command to start the latest 1.x version of Julia (this is also the default value).
- `juliaup remove 1.5.3` deletes Julia 1.5.3 from your system.
- `juliaup add 1.6.1~x86` installs the 32 bit version of Julia 1.6.1 on your system.
- `juliaup setdefault 1.6~x86` configures the `julia` command to start the latest 1.6.x 32 bit version of Julia you have installed on your system.
- `juliaup` shows you what other commands are available.

This entire system around `juliaup` installs Julia versions into `~/.julia/juliaup`. If you want to restart from scratch, just delete that entire folder.

The code for `Juliaup` and the installer is hosted at [GitHub - JuliaLang/juliaup: Julia installer and version multiplexer](https://github.com/JuliaLang/juliaup). Most of it is written in Julia itself, so it should be fairly easy to help and contribute 🙂 Which of course would be fantastic! There is a long list of improvements that would make things work smoother, we need help with the artwork for the store listing, and it would be great if some folks would try to port this to Mac and Linux!

The caveat for all of this is: this is a preview release, and things might be broken or break. If you have a deadline coming up and need a working Julia version, this is not for you!

If you do try this, please report back about your experience here! In particular if things work, before we could make this a more official option we need some confirmation that things actually work for folks.

---

<div class="post-metadata">

### Author: ![lungben](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/lungben/32/12314_2.png) [@lungben](https://discourse.julialang.org/u/lungben)
#### Post date: [May 27, 2021, 1:51pm UTC](https://discourse.julialang.org/t/ann-juliaup-preview-julia-version-manager-and-windows-store-installer/61920/2 "2021-05-27T13:51:16Z")

</div>

I just tried it, it is great, thanks!

One suggestion: I had Julia 1.6 installed before with Revise in my startup. After installing Juliaup (with Julia 1.5), Julia did not start because Revise is not in my (blank) 1.5 default environment. This is of course easy to fix, but slightly inconvenient.  
Would it be possible to copy the newest / closest existing default environment if a new Julia minor version is installed?

---

<div class="post-metadata">

### Author: ![davidanthoff](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/davidanthoff/32/223493_2.png) [@davidanthoff](https://discourse.julialang.org/u/davidanthoff)
#### Post date: [May 27, 2021, 2:01pm UTC](https://discourse.julialang.org/t/ann-juliaup-preview-julia-version-manager-and-windows-store-installer/61920/3 "2021-05-27T14:01:56Z")

</div>

> [@lungben](#):
>
> Would it be possible to copy the newest / closest existing default environment if a new Julia minor version is installed?

Good idea, tracking it [here](https://github.com/JuliaLang/juliaup/issues/44)!

---

<div class="post-metadata">

### Author: ![rafael.guerra](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/rafael.guerra/32/216610_2.png) [@rafael.guerra](https://discourse.julialang.org/u/rafael.guerra)
#### Post date: [May 27, 2021, 2:11pm UTC](https://discourse.julialang.org/t/ann-juliaup-preview-julia-version-manager-and-windows-store-installer/61920/4 "2021-05-27T14:11:51Z")

</div>

Brilliant. Easy to install and update!

Not sure about this “_the VS Code extension will also automatically find this Julia installation._”, as it did not seem to load the startup.jl file in:  
`C:\Users\jrafa\.julia\juliaup\x64\julia-1.6.1\etc\julia\startup.jl` ?

Wish list: it could ship with JuliaMono fonts and have JuliaMono Semibold font as default.

---

<div class="post-metadata">

### Author: ![lungben](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/lungben/32/12314_2.png) [@lungben](https://discourse.julialang.org/u/lungben)
#### Post date: [May 27, 2021, 2:18pm UTC](https://discourse.julialang.org/t/ann-juliaup-preview-julia-version-manager-and-windows-store-installer/61920/5 "2021-05-27T14:18:09Z")

</div>

Some more nice-to-haves:

- The default Julia starts with 1 thread, but I think most users want Julia running with Threads == physical CPU cores. Could Juliaup set the JULIA\_NUM\_THREADS environment variable automatically?
- Maybe an automatic way to set up complete notebook or development environments, especially Pluto.jl, Jupyter + IJulia, VSCode+ Julia ?

---

<div class="post-metadata">

### Author: ![davidanthoff](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/davidanthoff/32/223493_2.png) [@davidanthoff](https://discourse.julialang.org/u/davidanthoff)
#### Post date: [May 27, 2021, 2:19pm UTC](https://discourse.julialang.org/t/ann-juliaup-preview-julia-version-manager-and-windows-store-installer/61920/6 "2021-05-27T14:19:03Z")

</div>

> [@rafael.guerra](#):
>
> Not sure about this “ _the VS Code extension will also automatically find this Julia installation._ ”, as it did not seem to load the startup.jl file in:  
> `C:\Users\jrafa\.julia\juliaup\x64\julia-1.6.1\etc\julia\startup.jl` ?

Hm, so I think you should probably treat `C:\Users\jrafa\.julia\juliaup\x64\julia-1.6.1\etc\julia\startup.jl` as read-only, right? The way the VS Code extension should (in theory) find this install is that if there is a `julia` command on the `PATH`, then the extension will use that. So not sure, but maybe you have another `julia` on your `PATH` somehow? You can pretty easily figure out which version of Julia exactly is running inside the VS Code Julia REPL by typing `Sys.BINDIR` in the REPL.

> [@rafael.guerra](#):
>
> Wish list: it could ship with JuliaMono fonts and have JuliaMono Semibold font as default.

> <https://github.com/JuliaLang/juliaup/issues/46>
>
> Should we? Not sure, because Windows Terminal for example has pretty nice new de…fault fonts. But we should investigate. I think technically this might actually be fairly simple because MSIX does support font install, AFAIK.

---

<div class="post-metadata">

### Author: ![davidanthoff](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/davidanthoff/32/223493_2.png) [@davidanthoff](https://discourse.julialang.org/u/davidanthoff)
#### Post date: [May 27, 2021, 2:21pm UTC](https://discourse.julialang.org/t/ann-juliaup-preview-julia-version-manager-and-windows-store-installer/61920/7 "2021-05-27T14:21:43Z")

</div>

> [@lungben](#):
>
> The default Julia starts with 1 thread, but I think most users want Julia running with Threads == physical CPU cores. Could Juliaup set the JULIA\_NUM\_THREADS environment variable automatically?

Hm, I’m a bit hesitant about this, I think if the core dev team thinks that the default should be to use as many threads as core, they should just make that the default in Julia itself.

> [@lungben](#):
>
> Maybe an automatic way to set up complete notebook or development environments, especially Pluto.jl, Jupyter + IJulia, VSCode+ Julia ?

For VS Code, we’ll soon have native Jupyter notebooks support in the Julia extension that will no longer require installation of IJulia.jl. So at that point it should be enough to install Julia, VS Code and then some VS Code extensions.

---

<div class="post-metadata">

### Author: ![nilshg](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/nilshg/32/2283_2.png) [@nilshg](https://discourse.julialang.org/u/nilshg)
#### Post date: [May 27, 2021, 2:34pm UTC](https://discourse.julialang.org/t/ann-juliaup-preview-julia-version-manager-and-windows-store-installer/61920/8 "2021-05-27T14:34:48Z")

</div>

Note that this has always been the default in Juno, so it’s semi-officially endorsed by nature of Juno shipping bundled with JuliaPro.

---

<div class="post-metadata">

### Author: ![Klaas\_Pauly](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/klaas_pauly/32/14819_2.png) [@Klaas\_Pauly](https://discourse.julialang.org/u/Klaas_Pauly)
#### Post date: [May 27, 2021, 2:50pm UTC](https://discourse.julialang.org/t/ann-juliaup-preview-julia-version-manager-and-windows-store-installer/61920/9 "2021-05-27T14:50:12Z")

</div>

Great work, thanks!  
The download (although slow) and installation worked fine, that is, the `~/.julia/juliaup` folders and start menu shortcut are created and the commands such as `juliaup update` work fine. However, it seems that `julia` is not added to the `PATH`, and consequently, VS Code did not automatically find this installation. I did check that there were no other `julia` versions on the `PATH` or any other Julia installation folders left before starting this whole procedure (uninstalled all previous Julia versions), and I also removed the Julia VS Code extension before starting, to make the install as clean as possible. After installing `juliaup` and the Julia VS Code extension, the executable path in VS Code points to `~\AppData\Local\Programs\Julia 1.5.1\bin\julia.exe` which is strange as that path (`\Programs\Julia 1.5.1`) does not even exist (anymore), and is also not on my `PATH` (anymore). I’m working on a Windows 10 Enterprise laptop managed by my institute (although I have administrator rights).

---

<div class="post-metadata">

### Author: ![davidanthoff](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/davidanthoff/32/223493_2.png) [@davidanthoff](https://discourse.julialang.org/u/davidanthoff)
#### Post date: [May 27, 2021, 4:51pm UTC](https://discourse.julialang.org/t/ann-juliaup-preview-julia-version-manager-and-windows-store-installer/61920/10 "2021-05-27T16:51:41Z")

</div>

@Klaas_Pauly Are you sure that `julia` is not on the `PATH`? If `juliaup` works I can’t really imagine a scenario where `julia` itself wouldn’t also work… When you start a command prompt and type `julia`, what happens?

Re the VS Code situation: my best guess is that you have a path to the Julia binary configured in VS Code, and that will stay around, even if you uninstall the VS Code extension. The way to fix this is to go into your user settings in VS Code, go to the Julia section and remove the configuration for the Julia binary path, so that that setting is just empty. At that point the extension should find the Juliaup configured Julia.

---

<div class="post-metadata">

### Author: ![davidanthoff](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/davidanthoff/32/223493_2.png) [@davidanthoff](https://discourse.julialang.org/u/davidanthoff)
#### Post date: [May 27, 2021, 4:52pm UTC](https://discourse.julialang.org/t/ann-juliaup-preview-julia-version-manager-and-windows-store-installer/61920/11 "2021-05-27T16:52:39Z")

</div>

> [@nilshg](#):
>
> Note that this has always been the default in Juno, so it’s semi-officially endorsed by nature of Juno shipping bundled with JuliaPro.

I have to admit that experience makes me hesitant to add something similar here 🙂 At least from my point of view the bundled JuliaPro stuff often didn’t work very smoothly…

---

<div class="post-metadata">

### Author: ![oheil](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/oheil/32/220745_2.png) [@oheil](https://discourse.julialang.org/u/oheil)
#### Post date: [May 27, 2021, 4:54pm UTC](https://discourse.julialang.org/t/ann-juliaup-preview-julia-version-manager-and-windows-store-installer/61920/12 "2021-05-27T16:54:27Z")

</div>

For the PATH and how Windows 10 finds the executables, juliaup uses the folder AppData\Local\Microsoft\WindowsApps\ . There you find (hard) links (I think) to the executables and this folder is in the PATH by default.  
This is in my opinion, a very clean way to make julia available as easy as possible without changing anything the user may have set by purpose (like an entry in the PATH envrionment).

---

<div class="post-metadata">

### Author: ![davidanthoff](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/davidanthoff/32/223493_2.png) [@davidanthoff](https://discourse.julialang.org/u/davidanthoff)
#### Post date: [May 27, 2021, 4:58pm UTC](https://discourse.julialang.org/t/ann-juliaup-preview-julia-version-manager-and-windows-store-installer/61920/13 "2021-05-27T16:58:27Z")

</div>

Yes, exactly! And that whole part is actually handled by the MSIX installer engine that ships with Windows 10, the way we hook into this is that we just declare that we want something to appear on the path in [this line](https://github.com/JuliaLang/juliaup/blob/62df5518b9b4dbb93c50ba52f45543663cbaba98/msix/appxmanifest.xml#L41) in the setup program.

---

<div class="post-metadata">

### Author: ![nilshg](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/nilshg/32/2283_2.png) [@nilshg](https://discourse.julialang.org/u/nilshg)
#### Post date: [May 27, 2021, 5:18pm UTC](https://discourse.julialang.org/t/ann-juliaup-preview-julia-version-manager-and-windows-store-installer/61920/14 "2021-05-27T17:18:40Z")

</div>

Haha, fair point, although it was true as well for regular Juno without JuliaPro, which I guess is what most people use in practice. I guess I wanted to point out that a significant part of the Julia userbase is used to (or has unknowingly accepted) the fact that the “official” Julia IDE runs on multiple threads by default.

---

<div class="post-metadata">

### Author: ![davidanthoff](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/davidanthoff/32/223493_2.png) [@davidanthoff](https://discourse.julialang.org/u/davidanthoff)
#### Post date: [May 27, 2021, 5:20pm UTC](https://discourse.julialang.org/t/ann-juliaup-preview-julia-version-manager-and-windows-store-installer/61920/15 "2021-05-27T17:20:33Z")

</div>

Oh, sorry, I completely missed the context of your comment, I was thinking that you were talking about something entirely different (namely bundling a lot of software together) 🙂

---

<div class="post-metadata">

### Author: ![Klaas\_Pauly](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/klaas_pauly/32/14819_2.png) [@Klaas\_Pauly](https://discourse.julialang.org/u/Klaas_Pauly)
#### Post date: [May 27, 2021, 5:41pm UTC](https://discourse.julialang.org/t/ann-juliaup-preview-julia-version-manager-and-windows-store-installer/61920/16 "2021-05-27T17:41:54Z")

</div>

Oh OK, thanks for the clarification @oheil! I was actually looking for “julia” somewhere in the path so completely missed that… And you were right @davidanthoff, it was indeed a path I had entered manually (which I assumed would be gone when I uninstalled the extension). Everything works like a charm now, thanks!!

---

<div class="post-metadata">

### Author: ![ufechner7](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ufechner7/32/51363_2.png) [@ufechner7](https://discourse.julialang.org/u/ufechner7)
#### Post date: [May 27, 2021, 5:49pm UTC](https://discourse.julialang.org/t/ann-juliaup-preview-julia-version-manager-and-windows-store-installer/61920/17 "2021-05-27T17:49:52Z")

</div>

Is there a way to include git bash in this kind of setup? Julia without git would not help me.

---

<div class="post-metadata">

### Author: ![PetrKryslUCSD](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/petrkryslucsd/32/215825_2.png) [@PetrKryslUCSD](https://discourse.julialang.org/u/PetrKryslUCSD)
#### Post date: [May 27, 2021, 5:57pm UTC](https://discourse.julialang.org/t/ann-juliaup-preview-julia-version-manager-and-windows-store-installer/61920/18 "2021-05-27T17:57:37Z")

</div>

> [@Portable Julia](https://discourse.julialang.org/t/portable-julia/45339/9):
>
> An update has been posted: [http://hogwarts.ucsd.edu/~pkrysl/shared/Portable\_Julia-1.6.zip](http://hogwarts.ucsd.edu/~pkrysl/shared/Portable_Julia-1.6.zip) Julia 1.6 release candidate 1 is used. The newest VS code. The user’s system does not need to have Git installed: the portable version of it is included. All the user needs to do is to double-click a batch file: everything installs itself, and VS code pops up preconfigured for work with Julia. Thanks to Julia 1.6 the installation is much quicker than it used to be: 4 minutes flat till the editor comes up o…

---

<div class="post-metadata">

### Author: ![davidanthoff](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/davidanthoff/32/223493_2.png) [@davidanthoff](https://discourse.julialang.org/u/davidanthoff)
#### Post date: [May 27, 2021, 6:12pm UTC](https://discourse.julialang.org/t/ann-juliaup-preview-julia-version-manager-and-windows-store-installer/61920/19 "2021-05-27T18:12:16Z")

</div>

> [@ufechner7](#):
>
> Is there a way to include git bash in this kind of setup? Julia without git would not help me.

I don’t think I want `Juliaup` to go in the direction of bundling more stuff, in my view it should really just be for Julia and nothing else. Maybe other tools that bundle more things could sit on top of it, not sure…

But I think with the release of `winget` the entire situation should just get a lot easier, I’m pretty sure `winget install git` should be enough to get git installed on Windows already. And then once we think that Juliaup is stable, `winget install julia` would be enough to get this Juliaup/Julia story installed.

---

<div class="post-metadata">

### Author: ![rafael.guerra](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/rafael.guerra/32/216610_2.png) [@rafael.guerra](https://discourse.julialang.org/u/rafael.guerra)
#### Post date: [May 27, 2021, 6:32pm UTC](https://discourse.julialang.org/t/ann-juliaup-preview-julia-version-manager-and-windows-store-installer/61920/20 "2021-05-27T18:32:27Z")

</div>

With Juliaup there is now only one single big Julia app in Win10 showing in the list of installed programs, with possibly many versions encapsulated inside it.  
In snapshot below, Julia 1.6.1 was the legacy installation, while Juliaup’s installed “Julia” containing in this case 2 versions after updating:

 ![Juliaup](https://global.discourse-cdn.com/julialang/original/3X/b/c/bc5ee5cb86d1945c965e8e7a72274b9c255cc679.png)

Assume that hobby Julia users can safely remove the different installations of Julia and work from now on with Juliaup only?

[Next page](https://discourse.julialang.org/t/ann-juliaup-preview-julia-version-manager-and-windows-store-installer/61920.md?page=2)
