I am wondering if there is an established procedure for delivering an application within a Julia package.
I am writing a mesh generator, therefore the main outcome of my package should be a script that reads in user input from a file and then uses the routines in my package to output the mesh. Notably, there is no room for “it will be slow the first time you run it”, since there is no sense in running the script twice – once the mesh is there we are done.
To have an analogy, in python application delivery is achieved with “entry points” defined in the setup file of a package. After runnin the setup you can run your script from the terminal. What is the procedure is Julia? I tried to find inspiration in other package, but had hard time finding a package that actually delivers an application and not just an API.
Currently, what I have is a separate module that is
using the main module of the package, the one defining the mesh generation routines. In this separate module I have a main() function that basically does all the stuff, and which is called when the module is
included. Is this the way to go? Does this ensure that things run fast “from the first time”? I still need to write
julia path_to_script to run it, can this be simplified?