2023-07-26 –, 32-141
The Julia ecosystem provides rich interoperability among Julia packages but it has been nontrivial to deploy functionality from a Julia package to non-technical users. Quickdraw is a simple combination of existing tools that installs a runnable app from any Julia package that defines a main
function. All the end user needs to do is run a single command; all the developer needs to provide is that command.
This cross-platform deployment system already supports every public Julia package with a main
function so development time of package authors is minimal. Following a similar deployment principle as Juliaup, and utilizing Juliaup to install Julia when it is not already installed, Quickdraw is tested against Mac and Linux systems with and without Julia pre-installed, and Windows systems that do already have Julia installed. Unfortunately, this deployment system does not solve the ecosystem wide time to first x issues.
This talk will discuss the usability and security implications of the installation system.
Live Example
To install a game of minesweeper on Linux or Mac, run the following command:
curl -fLsS https://lilithhafner.com/quickdraw | sh -s https://github.com/LilithHafner/Minesweeper.jl
To install this software on Windows, install Julia and then run the following command:
(echo julia -e "import Pkg; Pkg.activate(\"Minesweeper\", shared=true); try Pkg.add(url=\"https://github.com/LilithHafner/Minesweeper.jl\"); catch; println(\"Warning: update failed\") end; using Minesweeper: main; main()" %0 %* && echo pause) > Minesweeper.bat
In both cases, the command will create an executable called Minesweeper
that can be double clicked to run.
I'm Lilith, a person, an artist, and a scientist.