Style Guide

This section describes the coding style rules that apply to our code and that we recommend you to use it also.

In some cases, our style guide diverges from Julia's official Style Guide (Please read it!). All such cases will be explicitly noted and justified.

Our style guide adopts many recommendations from the BlueStyle. Please read the BlueStyle before contributing to this package. If not following, your pull requests may not be accepted.

Info

The style guide is always a work in progress, and not all EasyJobsBase code follows the rules. When modifying EasyJobsBase, please fix the style violations of the surrounding code (i.e., leave the code tidier than when you started). If large changes are needed, consider separating them into another pull request.

Formatting

Run JuliaFormatter

EasyJobsBase uses JuliaFormatter as an auto-formatting tool.

We use the options contained in .JuliaFormatter.toml.

To format your code, cd to the EasyJobsBase directory, then run:

julia> using Pkg
julia> Pkg.add("JuliaFormatter") Resolving package versions... Installed OrderedCollections ─ v1.6.2 Installed Tokenize ─────────── v0.5.25 Installed URIs ─────────────── v1.4.2 Installed Compat ───────────── v4.7.0 Installed Crayons ──────────── v4.1.1 Installed DataStructures ───── v0.18.14 Installed CommonMark ───────── v0.8.12 Installed JuliaFormatter ───── v1.0.34 Installed Glob ─────────────── v1.3.1 Installed CSTParser ────────── v3.3.6 Updating `~/work/EasyJobsBase.jl/EasyJobsBase.jl/docs/Project.toml` [98e50ef6] + JuliaFormatter v1.0.34 Updating `~/work/EasyJobsBase.jl/EasyJobsBase.jl/docs/Manifest.toml` [00ebfdb7] + CSTParser v3.3.6 [a80b9123] + CommonMark v0.8.12 [34da2185] + Compat v4.7.0 [a8cc5b0e] + Crayons v4.1.1 [864edb3b] + DataStructures v0.18.14 [c27321d9] + Glob v1.3.1 [98e50ef6] + JuliaFormatter v1.0.34 [bac558e1] + OrderedCollections v1.6.2 [0796e94c] + Tokenize v0.5.25 [5c2747f8] + URIs v1.4.2 [0dad84c5] + ArgTools v1.1.1 [56f22d72] + Artifacts [f43a241f] + Downloads v1.6.0 [7b1f6079] + FileWatching [b27032c2] + LibCURL v0.6.3 [8f399da3] + Libdl [44cfe95a] + Pkg v1.9.2 [a4e569a6] + Tar v1.10.0 [deac9b47] + LibCURL_jll v7.84.0+0 [29816b5a] + LibSSH2_jll v1.10.2+0 [c8ffd9c3] + MbedTLS_jll v2.28.2+0 [14a3606d] + MozillaCACerts_jll v2022.10.11 [83775a58] + Zlib_jll v1.2.13+0 [8e850ede] + nghttp2_jll v1.48.0+0 [3f19e933] + p7zip_jll v17.4.0+0 Precompiling project... Compat URIs OrderedCollections Crayons Glob DataStructures Tokenize CommonMark CSTParser JuliaFormatter 10 dependencies successfully precompiled in 45 seconds. 13 already precompiled.
julia> using JuliaFormatter: format
julia> format("docs")ERROR: IOError: realpath("docs"): no such file or directory (ENOENT)
julia> format("src")ERROR: IOError: realpath("src"): no such file or directory (ENOENT)
julia> format("test")ERROR: IOError: realpath("test"): no such file or directory (ENOENT)
Info

A continuous integration check verifies that all PRs made to EasyJobsBase have passed the formatter.

The following sections outline extra style guide points that are not fixed automatically by JuliaFormatter.

Use the Julia extension for Visual Studio Code

Please use Visual Studio Code with the Julia extension to edit, format, and test your code. We do not recommend using other editors to edit your code for the time being.

This extension already has JuliaFormatter integrated. So to format your code, follow the steps listed here.