# Makie.jl - Deploying docs with Documenter.jl

**URL:** https://discourse.julialang.org/t/makie-jl-deploying-docs-with-documenter-jl/135234
**Category:** Visualization
**Tags:** makie
**Created:** [January 23, 2026, 10:27pm UTC](https://discourse.julialang.org/t/makie-jl-deploying-docs-with-documenter-jl/135234 "2026-01-23T22:27:33Z")
**Posts on this page:** 8
**Page:** 1

<div class="post-metadata">

### Author: ![Marco-Congedo](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/marco-congedo/32/7321_2.png) [@Marco-Congedo](https://discourse.julialang.org/u/Marco-Congedo)
#### Post date: [January 23, 2026, 10:27pm UTC](https://discourse.julialang.org/t/makie-jl-deploying-docs-with-documenter-jl/135234/1 "2026-01-23T22:27:33Z")

</div>

I am writing a package for plotting time series. The code is [here](https://github.com/Marco-Congedo/EEGPlot.jl/tree/dev).

The package depends on _Makie_ and _GLFW_, not on a specific backend, as the plotting function `eegplot` works differently with the _CairoMakie_ and _GLMakie_ backend.

The documentation, instead, using _Documenter_, depends on _CairoMakie_ and produces some static plots using ```example blocks. The documentation builds locally. When trying to deploy, I have all sorts of errors. The further i can go is using the docs.yml of Makie, but then the build is stuck at

```julia
...
[ Info: SetupBuildDirectory: setting up build directory.
[ Info: Doctest: running doctests.
[ Info: ExpandTemplates: expanding markdown templates.

```

and runs forever.

The docs.yml output is [here](https://github.com/Marco-Congedo/EEGPlot.jl/actions/runs/21302704564/job/61323935789?pr=16)

Any help would be appreciated.  
In the meanwhile i have deployed the docs manually.

---

<div class="post-metadata">

### Author: ![langestefan](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/langestefan/32/207923_2.png) [@langestefan](https://discourse.julialang.org/u/langestefan)
#### Post date: [January 24, 2026, 8:30am UTC](https://discourse.julialang.org/t/makie-jl-deploying-docs-with-documenter-jl/135234/2 "2026-01-24T08:30:24Z")

</div>

> [@Marco-Congedo](#):
>
> When trying to deploy, I have all sorts of errors.

What errors specifically?

> [@Marco-Congedo](#):
>
> ```julia-auto
> [ Info: ExpandTemplates: expanding markdown templates.
> 
> ```

This step is known to take a very long time. If you have many plots it can take an hour.

You could try setting `draft=true` to speedup the rendering. Then for a page you want to see put `Draft=false` in the meta block.

---

<div class="post-metadata">

### Author: ![Marco-Congedo](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/marco-congedo/32/7321_2.png) [@Marco-Congedo](https://discourse.julialang.org/u/Marco-Congedo)
#### Post date: [January 24, 2026, 8:48am UTC](https://discourse.julialang.org/t/makie-jl-deploying-docs-with-documenter-jl/135234/3 "2026-01-24T08:48:17Z")

</div>

The local build taks a few minutes. the documentation creates three plots only, so i don’t think it is a matter of waiting more. I will leave it a while though.

As per the errors, if i use a standard docs.yml, i have errors way before in the process, related to _GLFW_ not finding a display

---

<div class="post-metadata">

### Author: ![langestefan](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/langestefan/32/207923_2.png) [@langestefan](https://discourse.julialang.org/u/langestefan)
#### Post date: [January 24, 2026, 10:38am UTC](https://discourse.julialang.org/t/makie-jl-deploying-docs-with-documenter-jl/135234/4 "2026-01-24T10:38:19Z")

</div>

I have no clue why it would hang, so more debug info would be needed. You can enable global debugging with: [Logging · The Julia Language](https://docs.julialang.org/en/v1/stdlib/Logging/#Environment-variables)

```julia-auto
ENV["JULIA_DEBUG"] = "all"

```

should do the trick

Or just for Documenter:

```julia-auto
ENV["JULIA_DEBUG"] = "Documenter"

```

---

<div class="post-metadata">

### Author: ![Marco-Congedo](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/marco-congedo/32/7321_2.png) [@Marco-Congedo](https://discourse.julialang.org/u/Marco-Congedo)
#### Post date: [January 24, 2026, 11:16am UTC](https://discourse.julialang.org/t/makie-jl-deploying-docs-with-documenter-jl/135234/5 "2026-01-24T11:16:16Z")

</div>

> [@langestefan](#):
>
> `ENV["JULIA_DEBUG"] = "Documenter"`

I did. It is stuck the first time it calls the `eegplot` function of the package to produce a plot in the first ```@example block:

```julia
┌ Debug: Running ExpanderPipeline on index.md
└ @ Documenter ~/.julia/packages/Documenter/xvqbW/src/expander_pipeline.jl:55
┌ Debug: Evaluating @example block:
│ using EEGPlot, Eegle, CairoMakie
│ 
│ # read example EEG data, sampling rate and sensor labels from Eegle
│ X, sr = readASCII(EXAMPLE_Normative_1), 128;
│ sensors = readSensors(EXAMPLE_Normative_1_sensors);
│ 
│ # plot EEG
│ eegplot(X, sr, sensors; fig_size=(814, 450)) 
└ @ Documenter ~/.julia/packages/Documenter/xvqbW/src/expander_pipeline.jl:860

```

---

<div class="post-metadata">

### Author: ![jules](https://avatars.discourse-cdn.com/v4/letter/j/41988e/32.png) [@jules](https://discourse.julialang.org/u/jules)
#### Post date: [January 24, 2026, 11:30am UTC](https://discourse.julialang.org/t/makie-jl-deploying-docs-with-documenter-jl/135234/6 "2026-01-24T11:30:04Z")

</div>

I have not yet seen CairoMakie get stuck in Documenter builds, are you doing anything unusual?

For GLMakie, you need a gpu available so the Makie CI uses xvfb to pretend there’s one on the github actions runners. You don’t need that for CairoMakie.

---

<div class="post-metadata">

### Author: ![Marco-Congedo](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/marco-congedo/32/7321_2.png) [@Marco-Congedo](https://discourse.julialang.org/u/Marco-Congedo)
#### Post date: [January 24, 2026, 1:13pm UTC](https://discourse.julialang.org/t/makie-jl-deploying-docs-with-documenter-jl/135234/7 "2026-01-24T13:13:42Z")

</div>

It appears that the problem is the `eegplot` function attempting to detect the screen size using GLFW, and this hangs in a headless CI environment.

Also, the function calls display(fig), which may cause problems in headless mode with CairoMakie.

I’ve made the following changes:

- Added JULIA\_PLOT\_HEADLESS: “true” to the CI environment in docs.yml to skip GLFW monitor detection.

- Modified `eegplot` in EEGPlot.jl to conditionally call display(fig) only when not in headless mode.

With these changes it works. Thanks for the help and the DEBUG trick.

---

<div class="post-metadata">

### Author: ![langestefan](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/langestefan/32/207923_2.png) [@langestefan](https://discourse.julialang.org/u/langestefan)
#### Post date: [January 24, 2026, 3:25pm UTC](https://discourse.julialang.org/t/makie-jl-deploying-docs-with-documenter-jl/135234/8 "2026-01-24T15:25:48Z")

</div>

> [@Marco-Congedo](#):
>
> Added JULIA\_PLOT\_HEADLESS: “true” to the CI environment in docs.yml to skip GLFW monitor detection.

Maybe good to know for @sdanisch as well if this ever pops up again.
