Skip to content

Developer guide

Olivier Cots edited this page Oct 30, 2025 · 2 revisions

🧑‍💻 Developer Guide

This tutorial explains how to develop a repository from the control-toolbox ecosystem, based on the template CTAppTemplate.jl.
We assume you have installed Julia and that your package is called MyAwesomePackage.jl.


1️⃣ Clone the repository

  1. Navigate to the folder where you want to store the repository, e.g.:
cd ~/dev
  1. Copy the SSH or HTTPS URL from GitHub (see screenshot):

clone repository screenshot

  1. Clone the repository:
git clone the-url-you-have-copied

2️⃣ Install VSCode

We recommend using Visual Studio Code to develop:

VSCode

  1. Install the Julia extension.
  2. Optional but recommended extensions:
    • GitHub Actions
    • GitHub Markdown Preview
    • Jupyter & Jupyter Notebook Renderers
    • Markdown Preview for GitHub Alerts

3️⃣ Run unit tests

  1. Open the folder of your package in VSCode:

open folder in VSCode

  1. Open a terminal in VSCode and start Julia's interactive session:
using Pkg
Pkg.activate(".")
Pkg.test()

Tip

To add unit tests, see the Unit Testing documentation.


4️⃣ Build the documentation

  1. Open a terminal in VSCode and start Julia's interactive session.
  2. Run:
using Pkg
Pkg.activate("docs")
Pkg.develop(path=pwd()); include("docs/make.jl"); Pkg.rm("MyAwesomePackage")

[!NOTE] Explanation of the three commands:

  • Pkg.develop(path=pwd()): Adds the package to docs/Project.toml so it can be used in docs/make.jl or markdown files.
  • include("docs/make.jl"): Builds the documentation in docs/build. Open docs/build/index.html to view it.
  • Pkg.rm("MyAwesomePackage"): Removes the package from docs/Project.toml after building.

Tip

Learn more about Documenter.jl for generating documentation from docstrings and markdown files.


Quick summary

Step Action
Clone git clone ...
Dev environment Install VSCode + Julia extension
Unit tests Pkg.activate("."); Pkg.test()
Build docs Pkg.activate("docs"); Pkg.develop(...); include("docs/make.jl")

📚 References:

Clone this wiki locally