[Doc] A pull request without the preview label announces a deployment that never happens

Abierto
#1,042 0 comentarios 0 reacciones 1 asignado Ver en GitHub

Los mantenedores suelen responder en 1 día

@ocots ya está trabajando en esto.

Desde el 7/11/2026.

Evaluación

Este issue todavía no se ha evaluado.

Descripción

documentation

Written by Claude (Claude Code) at the request of ocots.

Problem

On a pull request labelled run documentation but not documentation push preview, the documentation job announces a deployment that never happens:

DOCUMENTER_PUSH_PREVIEW: false
┌ Info: Deployment criteria for deploying preview build from GitHub Actions:
│ - ✔ `push_preview` keyword argument to deploydocs is `true`
└ Deploying: ✔
[ Info: Bases that will be built: ["previews/PR<n>"]
[ Info: Deploying docs for base "previews/PR<n>" from build/1
│ - ✘ `push_preview` keyword argument to deploydocs is `true`
└ Deploying: ✘

DocumenterVitepress.MarkdownVitepress decides where the site goes during makedocs. Given no deploy_decision, it computes one with push_preview=true hard-coded (DocumenterVitepress 0.3, src/writer.jl, render); the label only reaches deploydocs. Found in control-toolbox/OptimalControlProblems.jl#410.

Fix

Apply SITE13 as tightened in ct-conventions v0.11.0 (control-toolbox/ct-conventions#54): in docs/make.jl,

push_preview = get(ENV, "DOCUMENTER_PUSH_PREVIEW", "false") == "true"
deploy_decision = Documenter.deploy_folder(
    Documenter.auto_detect_deploy_system();
    repo=repo_url, devbranch="main", devurl="dev", push_preview=push_preview,
)
# MarkdownVitepress(; …, deploy_decision=deploy_decision)

bases_file = joinpath(@__DIR__, "build", "bases.txt")
if !deploy_decision.all_ok
    reason = if get(ENV, "GITHUB_EVENT_NAME", "") == "pull_request" && !push_preview
        "no preview requested (label `documentation push preview` absent)"
    else
        "the deployment criteria above are not met"
    end
    @info "Skipping deployment: $(reason)."
elseif !isfile(bases_file)
    @info "Skipping deployment: no bases were built (prerelease with existing higher stable release)."
else
    DocumenterVitepress.deploydocs(; repo=repo_url * ".git", devbranch="main", push_preview=push_preview)
end

Use the repo, devbranch and devurl this make.jl already passes to MarkdownVitepress. Reference implementation: control-toolbox/OptimalControlProblems.jl#411. Pin ct-conventions v0.11.0 in AGENTS.md once it is released.

Done when

  • A pull request with run documentation only builds without announcing a deployment, and says why it does not deploy.
  • With documentation push preview, the preview is built for previews/PR<n> and deployed.
  • A push to main still deploys dev.

🤖 Generated with Claude Code

Lenguaje dominante
Julia
Estrellas
135
Forks
11
Merge medio
7 h 49 min
PR fusionados (30 d)
23

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de control-toolbox/OptimalControl.jl

Todos los issues de control-toolbox/OptimalControl.jl

Issues similares

Más issues de Julia

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.