I’m trying to figure out most convenient workflow/project structure for my use-case.
Currently I have a directory with multiple *.jl files without defining any new Modules or Packages.
This project is under continuous development and is being used on multiple devices.
On new device:
install Julia
git clone project
julia packages.jl (acts like “py -m pip install -r requirements.txt” )
Now each time to run:
git pull (if needed)
julia
include(“main.jl”)
[1, 2, 3] |> main (user needs to specify arguments)
Only problem I have with this workflow is precompilation at include(“main.jl”):
If you constantly update the file and want to get the new versions in the REPL, you might try includet from Revise.jl.
It als works with git updates like git pull.
But as you call it “Project” and “under development” you might also consider to create a module. Julia is able to instantiate packages very quickly. You could develop it locally and using FooPackacke and Revise can also track this package and updates.
julia> @time using Images, ImageIO, Distributions
9.281217 seconds (19.22 M allocations: 1.062 GiB, 4.74% gc time)
but on 1.6
julia> @time using Images, ImageIO, Distributions
4.413289 seconds (7.16 M allocations: 511.739 MiB, 5.40% gc time, 23.08% compilation time)
Also, Images is a large umbrella package. If you need only a subset of functionality, start with ImageCore and then add other specific components as needed.