Skip to content

Commit af39538

Browse files
authored
Better deployment of rc docs #36859
2 parents a6061a6 + cd4330d commit af39538

File tree

1 file changed

+27
-2
lines changed

1 file changed

+27
-2
lines changed

doc/make.jl

Lines changed: 27 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -221,7 +221,10 @@ struct BuildBotConfig <: Documenter.DeployConfig end
221221
function Documenter.deploy_folder(::BuildBotConfig; devurl, kwargs...)
222222
haskey(ENV, "DOCUMENTER_KEY") || return nothing
223223
if Base.GIT_VERSION_INFO.tagged_commit
224-
return "v$(Base.VERSION)"
224+
# Strip extra pre-release info (1.5.0-rc2.0 -> 1.5.0-rc2)
225+
ver = VersionNumber(VERSION.major, VERSION.minor, VERSION.patch,
226+
isempty(VERSION.prerelease) ? () : (VERSION.prerelease[1],))
227+
return "v$(ver)"
225228
elseif Base.GIT_VERSION_INFO.branch == "master"
226229
return devurl
227230
end
@@ -230,11 +233,33 @@ end
230233

231234
const devurl = "v$(VERSION.major).$(VERSION.minor)-dev"
232235

236+
# Hack to make rc docs visible in the version selector
237+
struct Versions versions end
238+
function Documenter.Writers.HTMLWriter.expand_versions(dir::String, v::Versions)
239+
# Find all available docs
240+
available_folders = readdir(dir)
241+
cd(() -> filter!(!islink, available_folders), dir)
242+
filter!(x -> occursin(Base.VERSION_REGEX, x), available_folders)
243+
244+
# Look for docs for an "active" release candidate and insert it
245+
vnums = [VersionNumber(x) for x in available_folders]
246+
master_version = maximum(vnums)
247+
filter!(x -> x.major == 1 && x.minor == master_version.minor-1, vnums)
248+
rc = maximum(vnums)
249+
if !isempty(rc.prerelease) && occursin(r"^rc", rc.prerelease[1])
250+
src = "v$(rc)"
251+
@assert src available_folders
252+
push!(v.versions, src => src, pop!(v.versions))
253+
end
254+
255+
return Documenter.Writers.HTMLWriter.expand_versions(dir, v.versions)
256+
end
257+
233258
deploydocs(
234259
repo = "github.com/JuliaLang/docs.julialang.org.git",
235260
deploy_config = BuildBotConfig(),
236261
target = joinpath(buildroot, "doc", "_build", "html", "en"),
237262
dirname = "en",
238263
devurl = devurl,
239-
versions = ["v#.#", devurl => devurl]
264+
versions = Versions(["v#.#", devurl => devurl]),
240265
)

0 commit comments

Comments
 (0)