Skip to content

fix: one deploy decision for the documentation, taken with the preview label - #411

Merged
ocots merged 2 commits into
mainfrom
fix/410-preview-deploy-decision
Nov 7, 2026
Merged

ocots merged 2 commits into
mainfrom
fix/410-preview-deploy-decision

Conversation

@ocots

@ocots ocots commented Nov 7, 2026 •

Copy link
Copy Markdown
Member

Plan: one deploy decision for the documentation

Conventions: ct-conventions v0.11.0; ct-agents v0.4.0.

What and why

A pull request labelled run documentation without documentation push preview announced a deployment that never happened (#410): DocumenterVitepress.MarkdownVitepress decides the deploy base during makedocs with push_preview=true hard-coded when it is given no deploy_decision, so the site was built for previews/PR<n>, then deploydocs, which reads the label, refused it.

What changes

File After
AGENTS.md pins ct-conventions v0.11.0, which tightens SITE13 this way (control-toolbox/ct-conventions#54)
docs/make.jl computes deploy_decision once with Documenter.deploy_folder(…; push_preview), push_preview read from DOCUMENTER_PUSH_PREVIEW; passes it to MarkdownVitepress; calls deploydocs only when deploy_decision.all_ok and bases.txt exists, and says why otherwise

No behaviour change for a push to main (deploys dev), a stable tag, or a pull request with the preview label.

Verification

Decision computed locally for each event (read-only, nothing deployed):

local                  all_ok=false subfolder="" bases=[""]
PR, no label           all_ok=false subfolder="" bases=[""]
push to main           all_ok=true subfolder="dev" bases=["dev"]

The pull request with the preview label needs the GitHub API (the PR must come from the same repository), so it is checked here in CI:

  • this PR with run documentation only (run 42379217136): Bases that will be built: [""], "Skipping deployment: no preview requested (label documentation push preview absent).";
  • then with documentation push preview (run 42382155802): Bases that will be built: ["previews/PR411"], Deploying: ✔, online at https://control-toolbox.org/OptimalControlProblems.jl/previews/PR411/.

Follow-up

SITE13 is tightened the same way in ct-conventions v0.11.0 (control-toolbox/ct-conventions#54, #55). One issue per package using DocumenterVitepress: control-toolbox/CTBase.jl#648, control-toolbox/CTModels.jl#517, control-toolbox/CTSolvers.jl#326, control-toolbox/CTFlows.jl#516, control-toolbox/CTLie.jl#81, control-toolbox/OptimalControl.jl#1042.

The label documentation push preview did not exist in this repository (it does in every other one): created, same color and description.

Rebased on main after #408 (conflict in docs/make.jl, the fix reapplied on the new file).

Closes #410

🤖 Generated with Claude Code

ocots and others added 2 commits November 7, 2026 15:29
…w label

DocumenterVitepress decided the deploy base during makedocs with
push_preview=true hard-coded, so a pull request without the label
'documentation push preview' was built for previews/PR<n> and announced a
deployment that deploydocs then refused. make.jl now computes the decision
once, with the label, passes it to MarkdownVitepress, and calls deploydocs
only when it says to deploy (SITE13).

Closes #410

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
v0.11.0 tightens SITE13 with the deploy decision this pull request applies.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@ocots
ocots force-pushed the fix/410-preview-deploy-decision branch from 035f30b to 4e7e61e Compare November 7, 2026 14:33
@ocots
ocots merged commit eabc9b7 into main Nov 7, 2026
17 checks passed
@ocots
ocots deleted the fix/410-preview-deploy-decision branch November 7, 2026 14:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation push preview With 'run documentation': also deploy a preview of the docs run documentation Trigger the Documentation workflow on this PR

Projects

None yet

Development

Successfully merging this pull request may close these issues.

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

1 participant