Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update Documenter 0.27.23 => 1.2.1 #47105

Merged
merged 43 commits into from
Dec 5, 2023
Merged
Show file tree
Hide file tree
Changes from 37 commits
Commits
Show all changes
43 commits
Select commit Hold shift + click to select a range
b24944a
Use Documenter#master
mortenpi Oct 8, 2022
fdcbbdf
Merge branch 'master' into mp/documenter-0.28
mortenpi Oct 8, 2022
d64539f
use mp/fix-source-url branch
mortenpi Oct 8, 2022
c0e8bcc
Merge branch 'master' into mp/documenter-0.28
mortenpi Oct 9, 2022
44d2b51
use Documenter#master again
mortenpi Oct 9, 2022
260b543
wip: documenter 0.28 fix stdlib source links
mortenpi Jan 2, 2023
c906cc9
Merge remote-tracking branch 'origin/master' into mp/stdlib-docs
mortenpi Jan 10, 2023
551d1ce
Merge remote-tracking branch 'origin/master' into mp/stdlib-docs
mortenpi Jun 23, 2023
3a4bbc0
fix
mortenpi Jun 27, 2023
785b992
Merge remote-tracking branch 'origin/master' into mp/stdlib-docs
mortenpi Jun 27, 2023
6adff0f
Clean up doc/make.jl
mortenpi Jun 28, 2023
8a51395
Merge remote-tracking branch 'origin/master' into mp/documenter-0.28
mortenpi Sep 15, 2023
8b92c66
update Documenter
mortenpi Sep 15, 2023
d26fa71
doc: correct unicode-input table generation
mortenpi Sep 15, 2023
3cfa052
size threshold
mortenpi Sep 15, 2023
1b1e3c0
use Documenter 1.0.0
mortenpi Sep 15, 2023
e84df37
Merge branch 'mp/stdlib-docs' into mp/documenter-0.28
mortenpi Sep 15, 2023
e381d5e
Merge branch 'mp/fix-doc-unicode-table' into mp/documenter-0.28
mortenpi Sep 15, 2023
8bb645e
Merge branch 'master' into mp/documenter-0.28
mortenpi Sep 15, 2023
be67eb4
Merge remote-tracking branch 'origin/master' into mp/documenter-0.28
mortenpi Sep 16, 2023
6a63130
Merge branch 'master' into mp/documenter-0.28
mortenpi Sep 18, 2023
64cb40f
Revert #48814 as it's no longer necessary
mortenpi Sep 18, 2023
b91849c
Merge remote-tracking branch 'origin/master' into mp/documenter-0.28
mortenpi Sep 18, 2023
317d3d8
Merge remote-tracking branch 'origin/master' into mp/documenter-0.28
mortenpi Oct 3, 2023
816b5b5
update Documenter
mortenpi Nov 12, 2023
608bb07
Merge remote-tracking branch 'origin/master' into mp/documenter-0.28
mortenpi Nov 12, 2023
c407135
fix :fingers_crossed:
mortenpi Nov 12, 2023
a78d2dd
revertme: test prints
mortenpi Nov 12, 2023
4532811
asdsad
mortenpi Nov 13, 2023
81a3f81
...
mortenpi Nov 13, 2023
305c51d
...
mortenpi Nov 13, 2023
2b621de
print Git version
mortenpi Nov 13, 2023
a9018b4
..
mortenpi Nov 14, 2023
e433597
Git_jll
mortenpi Nov 15, 2023
f0b7302
Merge remote-tracking branch 'origin/master' into mp/documenter-0.28
mortenpi Nov 26, 2023
121bdc9
Merge remote-tracking branch 'origin/master' into mp/documenter-0.28
mortenpi Nov 26, 2023
3da55b3
update documenter branch
mortenpi Nov 26, 2023
ff0da64
Update doc/make.jl
mortenpi Nov 26, 2023
369685e
switch to Documenter 1.2.0
mortenpi Nov 29, 2023
2eeeac1
Merge remote-tracking branch 'origin/master' into mp/documenter-0.28
mortenpi Nov 29, 2023
012cf21
remove debug print
mortenpi Nov 29, 2023
d272c96
use 1.2.1
mortenpi Dec 4, 2023
0db360d
Merge remote-tracking branch 'origin/master' into mp/documenter-0.28
mortenpi Dec 4, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
163 changes: 150 additions & 13 deletions doc/Manifest.toml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,15 @@ git-tree-sha1 = "574baf8110975760d391c710b6341da1afa48d8c"
uuid = "a4c015fc-c6ff-483c-b24f-f7ea428134e9"
version = "0.0.1"

[[deps.AbstractTrees]]
git-tree-sha1 = "faa260e4cb5aba097a73fab382dd4b5819d8ec8c"
uuid = "1520ce14-60c1-5f80-bbc7-55ef81b5835c"
version = "0.4.4"

[[deps.ArgTools]]
uuid = "0dad84c5-d112-42e6-8d28-ef12dabb789f"
version = "1.1.1"

[[deps.Artifacts]]
uuid = "56f22d72-fd6d-98f1-02f0-08ddc0907c33"

Expand All @@ -21,31 +30,80 @@ uuid = "ade2ca70-3891-5945-98fb-dc099432e06a"

[[deps.DocStringExtensions]]
deps = ["LibGit2"]
git-tree-sha1 = "5158c2b41018c5f7eb1470d558127ac274eca0c9"
git-tree-sha1 = "2fb1e02f2b635d0845df5d7c167fec4dd739b00d"
uuid = "ffbed154-4ef7-542d-bbb7-c09d3a79fcae"
version = "0.9.1"
version = "0.9.3"

[[deps.Documenter]]
deps = ["ANSIColoredPrinters", "Base64", "Dates", "DocStringExtensions", "IOCapture", "InteractiveUtils", "JSON", "LibGit2", "Logging", "Markdown", "REPL", "Test", "Unicode"]
git-tree-sha1 = "6030186b00a38e9d0434518627426570aac2ef95"
deps = ["ANSIColoredPrinters", "AbstractTrees", "Base64", "Dates", "DocStringExtensions", "Downloads", "Git", "IOCapture", "InteractiveUtils", "JSON", "LibGit2", "Logging", "Markdown", "MarkdownAST", "Pkg", "PrecompileTools", "REPL", "RegistryInstances", "SHA", "Test", "Unicode"]
git-tree-sha1 = "463925bb005754f6a4b866e9d13709ebcb631499"
repo-rev = "mp/julia-debug"
repo-url = "https://github.com/JuliaDocs/Documenter.jl.git"
uuid = "e30172f5-a6a5-5a46-863b-614d45cd2de4"
version = "0.27.23"
version = "1.1.2"

[[deps.Downloads]]
deps = ["ArgTools", "FileWatching", "LibCURL", "NetworkOptions"]
uuid = "f43a241f-c20a-4ad4-852c-f6b1247861c6"
version = "1.6.0"

[[deps.Expat_jll]]
deps = ["Artifacts", "JLLWrappers", "Libdl"]
git-tree-sha1 = "4558ab818dcceaab612d1bb8c19cee87eda2b83c"
uuid = "2e619515-83b5-522b-bb60-26c02a35a201"
version = "2.5.0+0"

[[deps.FileWatching]]
uuid = "7b1f6079-737a-58dc-b8bc-7a2ca5c1b5ee"

[[deps.Git]]
deps = ["Git_jll"]
git-tree-sha1 = "51764e6c2e84c37055e846c516e9015b4a291c7d"
uuid = "d7ba0133-e1db-5d97-8f8c-041e4b3a1eb2"
version = "1.3.0"

[[deps.Git_jll]]
deps = ["Artifacts", "Expat_jll", "JLLWrappers", "LibCURL_jll", "Libdl", "Libiconv_jll", "OpenSSL_jll", "PCRE2_jll", "Zlib_jll"]
git-tree-sha1 = "bb8f7cc77ec1152414b2af6db533d9471cfbb2d1"
uuid = "f8c6e375-362e-5223-8a59-34ff63f689eb"
version = "2.42.0+0"

[[deps.IOCapture]]
deps = ["Logging", "Random"]
git-tree-sha1 = "f7be53659ab06ddc986428d3a9dcc95f6fa6705a"
git-tree-sha1 = "d75853a0bdbfb1ac815478bacd89cd27b550ace6"
uuid = "b5f81e59-6552-4d32-b1f0-c071b021bf89"
version = "0.2.2"
version = "0.2.3"

[[deps.InteractiveUtils]]
deps = ["Markdown"]
uuid = "b77e0a4c-d291-57a0-90e8-8db25a27a240"

[[deps.JLLWrappers]]
deps = ["Artifacts", "Preferences"]
git-tree-sha1 = "7e5d6779a1e09a36db2a7b6cff50942a0a7d0fca"
uuid = "692b3bcd-3c85-4b1f-b108-f13ce0eb3210"
version = "1.5.0"

[[deps.JSON]]
deps = ["Dates", "Mmap", "Parsers", "Unicode"]
git-tree-sha1 = "3c837543ddb02250ef42f4738347454f95079d4e"
git-tree-sha1 = "31e996f0a15c7b280ba9f76636b3ff9e2ae58c9a"
uuid = "682c06a0-de6a-54ab-a142-c8b1cf79cde6"
version = "0.21.3"
version = "0.21.4"

[[deps.LazilyInitializedFields]]
git-tree-sha1 = "8f7f3cabab0fd1800699663533b6d5cb3fc0e612"
uuid = "0e77f7df-68c5-4e49-93ce-4cd80f5598bf"
version = "1.2.2"

[[deps.LibCURL]]
deps = ["LibCURL_jll", "MozillaCACerts_jll"]
uuid = "b27032c2-a3e7-50c8-80cd-2d36dbcbfd21"
version = "0.6.4"

[[deps.LibCURL_jll]]
deps = ["Artifacts", "LibSSH2_jll", "Libdl", "MbedTLS_jll", "Zlib_jll", "nghttp2_jll"]
uuid = "deac9b47-8bc7-5906-a0fe-35ac56dc84c0"
version = "8.0.1+1"

[[deps.LibGit2]]
deps = ["Base64", "LibGit2_jll", "NetworkOptions", "Printf", "SHA"]
Expand All @@ -54,7 +112,7 @@ uuid = "76f85450-5226-5b5a-8eaa-529ad045b433"
[[deps.LibGit2_jll]]
deps = ["Artifacts", "LibSSH2_jll", "Libdl", "MbedTLS_jll"]
uuid = "e37daf67-58a4-590a-8e99-b0245dd2ffc5"
version = "1.7.1+0"
version = "1.6.4+0"

[[deps.LibSSH2_jll]]
deps = ["Artifacts", "Libdl", "MbedTLS_jll"]
Expand All @@ -64,13 +122,25 @@ version = "1.11.0+1"
[[deps.Libdl]]
uuid = "8f399da3-3557-5675-b5ff-fb832c97cbdb"

[[deps.Libiconv_jll]]
deps = ["Artifacts", "JLLWrappers", "Libdl"]
git-tree-sha1 = "f9557a255370125b405568f9767d6d195822a175"
uuid = "94ce4f54-9a6c-5748-9c1c-f9c7231a4531"
version = "1.17.0+0"

[[deps.Logging]]
uuid = "56ddb016-857b-54e1-b83d-db4d58db5568"

[[deps.Markdown]]
deps = ["Base64"]
uuid = "d6f4376e-aef5-505a-96c1-9c027394607a"

[[deps.MarkdownAST]]
deps = ["AbstractTrees", "Markdown"]
git-tree-sha1 = "465a70f0fc7d443a00dcdc3267a497397b8a3899"
uuid = "d0879d2d-cac2-40c8-9cee-1863dc0c7391"
version = "0.1.2"

[[deps.MbedTLS_jll]]
deps = ["Artifacts", "Libdl"]
uuid = "c8ffd9c3-330d-5841-b78e-0817d7145fa1"
Expand All @@ -79,15 +149,47 @@ version = "2.28.2+1"
[[deps.Mmap]]
uuid = "a63ad114-7e13-5084-954f-fe012c677804"

[[deps.MozillaCACerts_jll]]
uuid = "14a3606d-f60d-562e-9121-12d972cd8159"
version = "2023.1.10"

[[deps.NetworkOptions]]
uuid = "ca575930-c2e3-43a9-ace4-1e988b2c1908"
version = "1.2.0"

[[deps.OpenSSL_jll]]
deps = ["Artifacts", "JLLWrappers", "Libdl"]
git-tree-sha1 = "cc6e1927ac521b659af340e0ca45828a3ffc748f"
uuid = "458c3c95-2e84-50aa-8efc-19380b2a3a95"
version = "3.0.12+0"

[[deps.PCRE2_jll]]
deps = ["Artifacts", "Libdl"]
uuid = "efcefdf7-47ab-520b-bdef-62a2eaa19f15"
version = "10.42.0+1"

[[deps.Parsers]]
deps = ["Dates"]
git-tree-sha1 = "3d5bf43e3e8b412656404ed9466f1dcbf7c50269"
deps = ["Dates", "PrecompileTools", "UUIDs"]
git-tree-sha1 = "a935806434c9d4c506ba941871b327b96d41f2bf"
uuid = "69de0a69-1ddd-5017-9359-2bf0b02dc9f0"
version = "2.4.0"
version = "2.8.0"

[[deps.Pkg]]
deps = ["Artifacts", "Dates", "Downloads", "FileWatching", "LibGit2", "Libdl", "Logging", "Markdown", "Printf", "REPL", "Random", "SHA", "Serialization", "TOML", "Tar", "UUIDs", "p7zip_jll"]
uuid = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f"
version = "1.11.0"

[[deps.PrecompileTools]]
deps = ["Preferences"]
git-tree-sha1 = "03b4c25b43cb84cee5c90aa9b5ea0a78fd848d2f"
uuid = "aea7be01-6a6a-4083-8856-8a6e6704d82a"
version = "1.2.0"

[[deps.Preferences]]
deps = ["TOML"]
git-tree-sha1 = "00805cd429dcb4870060ff49ef443486c262e38e"
uuid = "21216c6a-2e73-6563-6e65-726566657250"
version = "1.4.1"

[[deps.Printf]]
deps = ["Unicode"]
Expand All @@ -101,6 +203,12 @@ uuid = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb"
deps = ["SHA"]
uuid = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c"

[[deps.RegistryInstances]]
deps = ["LazilyInitializedFields", "Pkg", "TOML", "Tar"]
git-tree-sha1 = "ffd19052caf598b8653b99404058fce14828be51"
uuid = "2792f1a3-b283-48e8-9a74-f99dce5104f3"
version = "0.1.0"

[[deps.SHA]]
uuid = "ea8e919c-243c-51af-8825-aaa63cd721ce"
version = "0.7.0"
Expand All @@ -111,9 +219,38 @@ uuid = "9e88b42a-f829-5b0c-bbe9-9e923198166b"
[[deps.Sockets]]
uuid = "6462fe0b-24de-5631-8697-dd941f90decc"

[[deps.TOML]]
deps = ["Dates"]
uuid = "fa267f1f-6049-4f14-aa54-33bafae1ed76"
version = "1.0.3"

[[deps.Tar]]
deps = ["ArgTools", "SHA"]
uuid = "a4e569a6-e804-4fa4-b0f3-eef7a1d5b13e"
version = "1.10.0"

[[deps.Test]]
deps = ["InteractiveUtils", "Logging", "Random", "Serialization"]
uuid = "8dfed614-e22c-5e08-85e1-65c5234f0b40"

[[deps.UUIDs]]
deps = ["Random", "SHA"]
uuid = "cf7118a7-6976-5b1a-9a39-7adc72f591a4"

[[deps.Unicode]]
uuid = "4ec0a83e-493e-50e2-b9ac-8f72acf5a8f5"

[[deps.Zlib_jll]]
deps = ["Libdl"]
uuid = "83775a58-1f1d-513f-b197-d71354ab007a"
version = "1.2.13+1"

[[deps.nghttp2_jll]]
deps = ["Artifacts", "Libdl"]
uuid = "8e850ede-7688-5339-a07c-302acd2aaf8d"
version = "1.52.0+1"

[[deps.p7zip_jll]]
deps = ["Artifacts", "Libdl"]
uuid = "3f19e933-33d8-53b3-aaab-bd5110c3b7a0"
version = "17.4.0+2"
68 changes: 67 additions & 1 deletion doc/make.jl
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ using Pkg
Pkg.instantiate()

using Documenter
import LibGit2

baremodule GenStdLib end

Expand Down Expand Up @@ -42,6 +43,68 @@ cd(joinpath(@__DIR__, "src")) do
end
end

# Because we have standard libraries that are hosted outside of the julia repo,
# but their docs are included in the manual, we need to populate the remotes argument
# of makedocs(), to make sure that Documenter knows how to resolve the directories
# in stdlib/ to the correct remote Git repositories (for source and edit links).
#
# This function parses the *.version files in stdlib/, returning a dictionary with
# all the key-value pairs from those files. *_GIT_URL and *_SHA1 fields are the ones
# we will actually be interested in.
function parse_stdlib_version_file(path)
values = Dict{String,String}()
for line in readlines(path)
m = match(r"^([A-Z0-9_]+)\s+:?=\s+(\S+)\s?$", line)
mortenpi marked this conversation as resolved.
Show resolved Hide resolved
if isnothing(m)
@warn "Unable to parse line in $(path)" line
else
values[m[1]] = m[2]
end
end
return values
end
# This generates the value that will be passed to the `remotes` argument of makedocs(),
# by looking through all *.version files in stdlib/.
documenter_stdlib_remotes = let stdlib_dir = realpath(joinpath(@__DIR__, "..", "stdlib"))
LilithHafner marked this conversation as resolved.
Show resolved Hide resolved
# Get a list of all *.version files in stdlib/..
version_files = filter(readdir(stdlib_dir)) do fname
isfile(joinpath(stdlib_dir, fname)) && endswith(fname, ".version")
end
# .. and then parse them, each becoming an entry for makedocs's remotes.
# The values for each are of the form path => (remote, sha1), where
# - path: the path to the stdlib package's root directory, i.e. "stdlib/$PACKAGE"
# - remote: a Documenter.Remote object, pointing to the Git repository where package is hosted
# - sha1: the SHA1 of the commit that is included with the current Julia version
remotes_list = map(version_files) do version_fname
package = match(r"(.+)\.version", version_fname)[1]
versionfile = parse_stdlib_version_file(joinpath(stdlib_dir, version_fname))
# From the (all uppercase) $(package)_GIT_URL and $(package)_SHA1 fields, we'll determine
# the necessary information. If this logic happens to fail for some reason for any of the
# standard libraries, we'll crash the documentation build, so that it could be fixed.
remote = let git_url_key = "$(uppercase(package))_GIT_URL"
haskey(versionfile, git_url_key) || error("Missing $(git_url_key) in $version_fname")
m = match(LibGit2.GITHUB_REGEX, versionfile[git_url_key])
isnothing(m) && error("Unable to parse $(git_url_key)='$(versionfile[git_url_key])' in $version_fname")
Documenter.Remotes.GitHub(m[2], m[3])
end
package_sha = let sha_key = "$(uppercase(package))_SHA1"
haskey(versionfile, sha_key) || error("Missing $(sha_key) in $version_fname")
versionfile[sha_key]
end
# Construct the absolute (local) path to the stdlib package's root directory
package_root_dir = joinpath(stdlib_dir, "$(package)-$(package_sha)")
# Documenter needs package_root_dir to exist --- it's just a sanity check it does on the remotes= keyword.
# In normal (local) builds, this will be the case, since the Makefiles will have unpacked the standard
# libraries. However, on CI we do this thing where we actually build docs in a clean worktree, just
# unpacking the `usr/` directory from the main build, and the unpacked stdlibs will be missing, and this
# will cause Documenter to throw an error. However, we don't _actually_ need the source files of the standard
# libraries to be present, so we just generate empty root directories to satisfy the check in Documenter.
isdir(package_root_dir) || mkpath(package_root_dir)
LilithHafner marked this conversation as resolved.
Show resolved Hide resolved
package_root_dir => (remote, package_sha)
end
Dict(remotes_list)
end

# Check if we are building a PDF
const render_pdf = "pdf" in ARGS

Expand Down Expand Up @@ -299,9 +362,12 @@ else
collapselevel = 1,
sidebar_sitename = false,
ansicolor = true,
size_threshold = 800 * 2^10, # 800 KiB
size_threshold_warn = 200 * 2^10, # the manual has quite a few large pages, so we warn at 200+ KiB only
)
end

@info read(`$(Sys.which("git")) --version`, String)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I see you added a dep on LibGit2 for LibGit2.GITHUB_REGEX here and Documenter.jl also depends on LibGit2. Is this info statement because Documentor also uses git via shelling out? If not it may be misleading. (somewhat related: JuliaLang/Pkg.jl#2679)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is just a debug print and I'll remove this. Generally, I need to do a pass on this PR before we merge, to clean it all up.

The issue I ran into here was that Git on the Windows runners is ancient (and I was trying to figure out what version it is exactly). But I resolved that by switching Documenter to Git.jl (which is the better than relying on the system's git binary anyway).

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just a note here though: kinda silly to depend on LibGit2 just for this regex nowadays. JuliaDocs/Documenter.jl#2363

const output_path = joinpath(buildroot, "doc", "_build", (render_pdf ? "pdf" : "html"), "en")
makedocs(
build = output_path,
Expand All @@ -310,12 +376,12 @@ makedocs(
doctest = ("doctest=fix" in ARGS) ? (:fix) : ("doctest=only" in ARGS) ? (:only) : ("doctest=true" in ARGS) ? true : false,
linkcheck = "linkcheck=true" in ARGS,
linkcheck_ignore = ["https://bugs.kde.org/show_bug.cgi?id=136779"], # fails to load from nanosoldier?
strict = true,
mortenpi marked this conversation as resolved.
Show resolved Hide resolved
checkdocs = :none,
format = format,
sitename = "The Julia Language",
authors = "The Julia Project",
pages = PAGES,
remotes = documenter_stdlib_remotes,
)

# Update URLs to external stdlibs (JuliaLang/julia#43199)
Expand Down
4 changes: 0 additions & 4 deletions stdlib/Dates/docs/src/index.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,3 @@
```@meta
EditURL = "https://github.com/JuliaLang/julia/blob/master/stdlib/Dates/docs/src/index.md"
```

# Dates

```@meta
Expand Down