Workflow Tips
As already elaborated in , Julia’s REPL provides rich functionality that facilitates an efficient interactive workflow. Here are some tips that might further enhance your experience at the command line.
The most basic Julia workflows involve using a text editor in conjunction with the command line. A common pattern includes the following elements:
Put code under development in a temporary module. Create a file, say
Tmp.jl
, and include within itPut your test code in another file. Create another file, say
tst.jl
, which looks likeinclude("Tmp.jl")
import .Tmp
Tmp.say_hello()
# say_hello()
# your other test code here
and includes tests for the contents of
Tmp
. Alternatively, you can wrap the contents of your test file in a module, asThe advantage is that your testing code is now contained in a module and does not use the global scope in
Main
for definitions, which is a bit more tidy.Lather. Rinse. Repeat. Explore ideas at the
julia
command prompt. Save good ideas intst.jl
. To executetst.jl
after it has been changed, justinclude
it again.
It is also possible to interact with a Julia REPL in the browser via IJulia. See the package home for details.
Whether you’re at the REPL or in IJulia, you can typically improve your development experience with . It is common to configure Revise to start whenever julia is started, as per the instructions in the Revise documentation. Once configured, Revise will track changes to files in any loaded modules, and to any files loaded in to the REPL with includet
(but not with plain include
); you can then edit the files and the changes take effect without restarting your julia session. A standard workflow is similar to the REPL-based workflow above, with the following modifications:
Put your code in a module somewhere on your load path. There are several options for achieving this, of which two recommended choices are:
For “throw-away” projects, you can avoid any need for cleanup by doing your work in your temporary directory (e.g.,
/tmp
).Navigate to your temporary directory and launch Julia, then do the following:
If you restart your Julia session you’ll have to re-issue that command modifying
LOAD_PATH
.In step 2 below, edit
MyPkg/src/MyPkg.jl
to change the source code, and create any test file of your choosing.
Develop your package
Before loading any code, make sure you’re running Revise: say
using Revise
or follow its documentation on configuring it to run automatically.julia> using MyPkg
julia> include("runtests.jl")
You can iteratively modify the code in MyPkg in your editor and re-run the tests with
include("runtests.jl")
. You generally should not need to restart your Julia session to see the changes take effect (subject to a few ).