From 8bfefc0dec09d7f11e6ba95f8ee48196e6350531 Mon Sep 17 00:00:00 2001 From: Max Horn Date: Mon, 16 Feb 2026 09:18:21 +0100 Subject: [PATCH 1/8] CI: don't use julia-buildpkg We don't need it. --- .github/workflows/CI.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 244c2c2..d355b94 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -23,7 +23,6 @@ jobs: with: version: ${{ matrix.julia-version }} arch: ${{ matrix.julia-arch }} - - uses: julia-actions/julia-buildpkg@v1 - uses: julia-actions/julia-runtest@v1 - name: Run test/basedocstrings.jl run: julia --project --color=yes --code-coverage=all test/basedocstrings.jl From 6f0b26c3cc295dbe6daa0cc846a72eac5e7d0e70 Mon Sep 17 00:00:00 2001 From: Max Horn Date: Mon, 16 Feb 2026 09:28:11 +0100 Subject: [PATCH 2/8] Update CI --- .github/workflows/CI.yml | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index d355b94..5f79b86 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -7,37 +7,45 @@ on: - release-* tags: '*' pull_request: + workflow_dispatch: + +concurrency: + # group by workflow and ref; the last slightly strange component ensures that for pull + # requests, we limit to 1 concurrent job, but for the master branch we don't + group: ${{ github.workflow }}-${{ github.ref }}-${{ github.ref != 'refs/heads/master' || github.run_number }} + # Cancel intermediate builds, but only if it is a pull request build. + cancel-in-progress: ${{ startsWith(github.ref, 'refs/pull/') }} jobs: test: runs-on: ${{ matrix.os }} strategy: + fail-fast: false matrix: julia-version: ['1.0', '1', 'nightly'] os: [ubuntu-latest, windows-latest, macOS-latest] - julia-arch: [x64] steps: - - uses: actions/checkout@v2 - - uses: julia-actions/setup-julia@v1 + - uses: actions/checkout@v6 + - uses: julia-actions/setup-julia@v2 with: version: ${{ matrix.julia-version }} - arch: ${{ matrix.julia-arch }} + - uses: julia-actions/cache@v2 - uses: julia-actions/julia-runtest@v1 - name: Run test/basedocstrings.jl run: julia --project --color=yes --code-coverage=all test/basedocstrings.jl if: matrix.julia-version != '1.0' - uses: julia-actions/julia-processcoverage@v1 - - uses: codecov/codecov-action@v1 + - uses: codecov/codecov-action@v5 with: - file: lcov.info + token: ${{ secrets.CODECOV_TOKEN }} documentation: permissions: write-all runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 - - uses: julia-actions/setup-julia@v1 + - uses: actions/checkout@v6 + - uses: julia-actions/setup-julia@v2 with: version: '1' - name: Instantiate docs/ environment From 15ba2ee5b9a0e13ef168ebac18441c4873ac12a2 Mon Sep 17 00:00:00 2001 From: Max Horn Date: Mon, 16 Feb 2026 11:06:11 +0100 Subject: [PATCH 3/8] Adjust to Julia nightly change --- test/fromstdlib.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/fromstdlib.jl b/test/fromstdlib.jl index feddab3..0bfd0a6 100644 --- a/test/fromstdlib.jl +++ b/test/fromstdlib.jl @@ -329,7 +329,7 @@ using Test # It is theoretically possible to have inline nodes in block context: let m = Markdown.MD() push!(m.content, "Foo") - push!(m.content, Markdown.Link("text", "url")) + push!(m.content, Markdown.Link(["text"], "url")) @test convert(Node, m) == @ast Document() do Paragraph() do "Foo" From 6c3f7b17784751d4edd0640153e9e33aefbaa56b Mon Sep 17 00:00:00 2001 From: Max Horn Date: Mon, 16 Feb 2026 11:10:14 +0100 Subject: [PATCH 4/8] Exclude macOS with Julia 1.0 --- .github/workflows/CI.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 5f79b86..4a756ea 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -24,6 +24,9 @@ jobs: matrix: julia-version: ['1.0', '1', 'nightly'] os: [ubuntu-latest, windows-latest, macOS-latest] + exclude: + - os: macos-latest + version: '1.0' steps: - uses: actions/checkout@v6 From 284965d1a5dec0b475cf6bd317b31bf7d0c84a7f Mon Sep 17 00:00:00 2001 From: Max Horn Date: Mon, 16 Feb 2026 11:24:53 +0100 Subject: [PATCH 5/8] more Julia nightly adjustments --- test/fromstdlib.jl | 48 +++++++++++++++++++++++++++++++--------------- 1 file changed, 33 insertions(+), 15 deletions(-) diff --git a/test/fromstdlib.jl b/test/fromstdlib.jl index 0bfd0a6..82be570 100644 --- a/test/fromstdlib.jl +++ b/test/fromstdlib.jl @@ -126,6 +126,7 @@ using Test @test convert(Node, Markdown.md""" 1. aaa + 2. bbb * aaa @@ -133,7 +134,7 @@ using Test - ccc * ddd """) == @ast Document() do - List(:ordered, true) do + List(:ordered, false) do Item() do; Paragraph() do; "aaa"; end; end Item() do; Paragraph() do; "bbb"; end; end end @@ -267,13 +268,22 @@ using Test end end # This would lead to a SoftBreak() in CommonMark, but not in Markdown - @test convert(Node, Markdown.md""" - foo - bar - """) == @ast Document() do - Paragraph() do - "foo bar" - end + let ast = convert(Node, Markdown.md""" + foo + bar + """) + @test ast in ( + @ast(Document() do + Paragraph() do + "foo bar" # In Julia 1.14, whitespaces are "normalized" + end + end), + @ast(Document() do + Paragraph() do + "foo\nbar" # In Julia 1.14, the newline is preserved + end + end), + ) end # Interpolation @@ -343,13 +353,21 @@ using Test end # Tests from the Documenter Markdown2 module - @test convert(Node, Markdown.parse(raw""" - $$ - f - $$ - """)) == @ast Document() do - Paragraph() do; JuliaValue(nothing, :$); end - Paragraph() do; "f "; JuliaValue(nothing, :$); end + let ast = convert(Node, Markdown.parse(raw""" + $$ + f + $$ + """)) + @test ast in ( + @ast(Document() do + Paragraph() do; JuliaValue(nothing, :$); end + Paragraph() do; "f "; JuliaValue(nothing, :$); end # Julia <= 1.13 + end), + @ast(Document() do + Paragraph() do; JuliaValue(nothing, :$); end + Paragraph() do; "f\n"; JuliaValue(nothing, :$); end # Julia >= 1.14 + end), + ) end @test convert(Node, Markdown.parse(raw""" X $(42) Y From d1a97a7503dc16bfed2445d1200e80204536abda Mon Sep 17 00:00:00 2001 From: Max Horn Date: Mon, 16 Feb 2026 11:28:05 +0100 Subject: [PATCH 6/8] oops --- .github/workflows/CI.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 4a756ea..ee7f751 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -26,7 +26,7 @@ jobs: os: [ubuntu-latest, windows-latest, macOS-latest] exclude: - os: macos-latest - version: '1.0' + julia-version: '1.0' steps: - uses: actions/checkout@v6 From 4656bae0fdb6c261e3e56a07b1f4692c37d715d5 Mon Sep 17 00:00:00 2001 From: Max Horn Date: Mon, 16 Feb 2026 11:30:19 +0100 Subject: [PATCH 7/8] use cache also for docs --- .github/workflows/CI.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index ee7f751..e90d7fc 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -51,6 +51,7 @@ jobs: - uses: julia-actions/setup-julia@v2 with: version: '1' + - uses: julia-actions/cache@v2 - name: Instantiate docs/ environment run: julia --color=yes --project=docs/ -e 'using Pkg; Pkg.instantiate()' - name: Build and deploy From f49c12f1728959e016c12f38a77f62ba0fffec0c Mon Sep 17 00:00:00 2001 From: Max Horn Date: Mon, 16 Feb 2026 11:33:42 +0100 Subject: [PATCH 8/8] Adjust to Pkg change --- test/basedocstrings.jl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/basedocstrings.jl b/test/basedocstrings.jl index c1854bb..f17e2f6 100644 --- a/test/basedocstrings.jl +++ b/test/basedocstrings.jl @@ -6,8 +6,8 @@ using Markdown, Pkg, Test function list_stdlibs() stdlibs = Symbol[] - for stdlib in readdir(Pkg.stdlib_dir()) - stdlib_path = joinpath(Pkg.stdlib_dir(), stdlib) + for stdlib in readdir(Sys.STDLIB) + stdlib_path = joinpath(Sys.STDLIB, stdlib) isdir(stdlib_path) || continue endswith(stdlib, "_jll") && continue push!(stdlibs, Symbol(stdlib))