JuliaApps proposal

Eric_Sadit_Tellez
Thu, 11 Apr 2024 04:04:09 +0000
Tooling

Hi everyone,

I’ve put JuliaApps for your consideration: https://github.com/sadit/JuliaApps. This tool aims to simplify sharing Julia packages/applications with people who don’t know the Julia programming language. Most of the work involves handling isolated environments.

It is a simple bash-based workaround (until juliac is ready) to run Julia packages as commands/applications. The core idea is to clone Julia package repositories, instantiate them, and run them using the appropriate environments. It uses an entry point that handles the command line arguments (currently, it uses Comonicon.jl’s command_main for this).

Installing

Clone the repository; the unique script is japps. Give execution permissions chmod +x japps; copy japps to some directory in your executable path. It may be a good idea to put it in the same directory than juliaup.

This procedure only works for unix based systems

Usage

The idea is then to install packages having entry points, for instance:

japps install https://github.com/sadit/XGrep.jl

this will clone the XGrep repo, instantiate it, and try to precompile it.

then, it can be used as follows:

japps run XGrep -h

bash> japps --help

Install and run julia packages from command line easily

 usage: ./japps <commands> args...

 commands: run install uninstall update list help
...

Packages not need to be in some registry to be installed. Updates are basically git pull on the repository, followed by instantiation and precompiling.

It is also posible to make that japps run XGrep becomes just XGrep using symbolic links to japps and storing these symbolic links in the same directory where japps is installed.

Comonicon.jl is faster than ParseArgs.jl; however, it is still slow than what most of us really want.

This is a work-in-progress and any comment, idea, pull-requests are welcome.

Best,
Eric

5 posts - 3 participants