-
Notifications
You must be signed in to change notification settings - Fork 89
Developing Juliaup
Lilith Orion Hafner edited this page Jul 3, 2024
·
2 revisions
This document has a collection of tips on how to work on Juliaup itself.
- Install the rust toolchain https://rustup.rs/
- (Optional) Install VS Code and the
rust-analyzer
extension. There are also debugger extensions that work. - (Optional) Install cargo-release if you want to create releases by running
cargo install cargo-release
. - (Optional) Install cargo-msix if you want to build MSIX packages locally by running
cargo install cargo-msix
. You will also need PowerShell to run a script that vendors the current Julia version into the MSIX.
-
cd
to the source and runcargo build
. -
cd
totargets/debug
and run./juliaup
and./julia
to use the newly built version. - You can run
cargo build --release
to build a release build that you can then find intargets/release
.
-
cd
to the source. - Run
cargo run -- ARGS
to compile and runjuliaup
from source.ARGS
are the regularjuliaup
command line arguments. For examplecargo run -- status
. - Run
cargo run --bin julialauncher -- ARGS
to run thejulialauncher
(that in a normal install is symlinked asjulia
). For examplecargo run --bin julialauncher -- +lts
. - Run
cargo run --bin juliainstaller -- ARGS
to run thejuliainstaller
(the binary that is downloaded and then executed by the install shell script).ARGS
here can be left out or specify the Julia channel one wants to use.
-
cd
to the source. - Run
cargo test
.
-
cd
to the source. - Run
cargo update
to update all dependencies to the latest compatible version. This works similar to Julia, i.e. it will update the specific versions used and recorded inCargo.lock
(the equivalent to a JuliaManifest.toml
), subject to the semver constraints recorded inCargo.toml
(the equivalent to a JuliaProject.toml
). - To update packages over a semver breaking version jump you need to manually edit the
Cargo.toml
. The crates extension for VS Code is very convenient for this.