Skip to content

Conversation

@IanButterworth
Copy link
Contributor

@IanButterworth IanButterworth commented Jan 6, 2026

What are you trying to accomplish?

Fix Julia workspace support to update all Project.toml files when they have different compat specifiers for the same dependency.

When a Julia workspace has multiple Project.toml files (e.g., root, docs/, test/) that depend on the same package with different compat entries, Dependabot now correctly:

  1. Discovers all workspace Project.toml files using Julia's native [workspace].projects array
  2. Parses dependencies from all project files with per-file requirements
  3. Updates each Project.toml with its specific new requirement

Fixes #13865

Evidence

Tested on https://github.com/IanButterworth/Julia-DependabotTest
with the automated workflow dispatch action https://github.com/IanButterworth/Julia-DependabotTest/actions/workflows/test-dependabot.yml

Run: https://github.com/IanButterworth/Julia-DependabotTest/actions/runs/20785366504/job/59693273940

Looks good, I think

- type: create_pull_request
      expect:
        data:
            base-commit-sha: 6568556f8444abb08a4838ada184f6c0caffcea0
            dependencies:
                - name: JSON
                  previous-requirements:
                    - file: Project.toml
                      groups:
                        - deps
                      requirement: 0.21.4
                      source: null
                    - file: docs/Project.toml
                      groups:
                        - deps
                      requirement: "0.21"
                      source: null
                    - file: test/Project.toml
                      groups:
                        - deps
                      requirement: 0.21.3
                      source: null
                  requirements:
                    - file: Project.toml
                      groups:
                        - deps
                      requirement: 0.21.4, 1.3
                      source: null
                    - file: docs/Project.toml
                      groups:
                        - deps
                      requirement: 0.21, 1.3
                      source: null
                    - file: test/Project.toml
                      groups:
                        - deps
                      requirement: 0.21.3, 1.3
                      source: null
                  version: 1.3.0
                  directory: /DifferentCompatWorkspace.jl
            updated-dependency-files:
                - content: |
                    name = "DifferentCompatWorkspace"
                    uuid = "77777777-7777-7777-7777-777777777777"
                    authors = ["Test User <test@example.com>"]
                    version = "0.1.0"
                    # This workspace mirrors the pattern from Breeze.jl (issue #13865)
                    # where the same dependency has different compat specifiers in different Project.toml files.
                    # Root has a more specific compat (0.21.4), while docs/ and test/ have a broader compat (0.21).
                    [workspace]
                    projects = ["docs", "test"]
                    [deps]
                    JSON = "682c06a0-de6a-54ab-a142-c8b1cf79cde6"
                    [compat]
                    JSON = "0.21.4, 1.3"
                    julia = "1.10"
                  content_encoding: utf-8
                  deleted: false
                  directory: /DifferentCompatWorkspace.jl
                  name: Project.toml
                  operation: update
                  support_file: false
                  type: file
                - content: |
                    name = "DifferentCompatWorkspaceDocs"
                    uuid = "77777777-7777-7777-7777-777777777778"
                    authors = ["Test User <test@example.com>"]
                    version = "0.1.0"
                    # This is the docs subpackage.
                    # Note: JSON compat is "0.21" here, but "0.21.4" in the root Project.toml.
                    # This tests that Dependabot updates each file with its specific compat bound.
                    [deps]
                    JSON = "682c06a0-de6a-54ab-a142-c8b1cf79cde6"
                    Documenter = "e30172f5-a6a5-5a46-863b-614d45cd2de4"
                    [compat]
                    JSON = "0.21, 1.3"
                    Documenter = "1"
                    julia = "1.10"
                  content_encoding: utf-8
                  deleted: false
                  directory: /DifferentCompatWorkspace.jl
                  name: docs/Project.toml
                  operation: update
                  support_file: false
                  type: file
                - content: |
                    name = "DifferentCompatWorkspaceTest"
                    uuid = "77777777-7777-7777-7777-777777777779"
                    authors = ["Test User <test@example.com>"]
                    version = "0.1.0"
                    # This is the test subpackage.
                    # Note: JSON compat is "0.21" here, but "0.21.4" in the root Project.toml.
                    # This tests that Dependabot updates each file with its specific compat bound.
                    [deps]
                    JSON = "682c06a0-de6a-54ab-a142-c8b1cf79cde6"
                    Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40"
                    [compat]
                    JSON = "0.21.3, 1.3"
                    julia = "1.10"
                  content_encoding: utf-8
                  deleted: false
                  directory: /DifferentCompatWorkspace.jl
                  name: test/Project.toml
                  operation: update
                  support_file: false
                  type: file
                - content: |
                    # This file is machine-generated - editing it directly is not advised
                    julia_version = "1.12.3"
                    manifest_format = "2.0"
                    project_hash = "640845e50f8f02447d60d8a9dd86a04a7e1f7405"
                    [[deps.ANSIColoredPrinters]]
                    git-tree-sha1 = "574baf8110975760d391c710b6341da1afa48d8c"
                    uuid = "a4c015fc-c6ff-483c-b24f-f7ea428134e9"
                    version = "0.0.1"
                    [[deps.AbstractTrees]]
                    git-tree-sha1 = "2d9c9a55f9c93e8887ad391fbae72f8ef55e1177"
                    uuid = "1520ce14-60c1-5f80-bbc7-55ef81b5835c"
                    version = "0.4.5"
                    [[deps.ArgTools]]
                    uuid = "0dad84c5-d112-42e6-8d28-ef12dabb789f"
                    version = "1.1.2"
                    [[deps.Artifacts]]
                    uuid = "56f22d72-fd6d-98f1-02f0-08ddc0907c33"
                    version = "1.11.0"
                    [[deps.Base64]]
                    uuid = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f"
                    version = "1.11.0"
                    [[deps.CodecZlib]]
                    deps = ["TranscodingStreams", "Zlib_jll"]
                    git-tree-sha1 = "962834c22b66e32aa10f7611c08c8ca4e20749a9"
                    uuid = "944b1d66-785c-5afd-91f1-9de20f533193"
                    version = "0.7.8"
                    [[deps.CompilerSupportLibraries_jll]]
                    deps = ["Artifacts", "Libdl"]
                    uuid = "e66e0078-7015-5450-92f7-15fbd957f2ae"
                    version = "1.3.0+1"
                    [[deps.Dates]]
                    deps = ["Printf"]
                    uuid = "ade2ca70-3891-5945-98fb-dc099432e06a"
                    version = "1.11.0"
                    [[deps.DifferentCompatWorkspace]]
                    deps = ["JSON"]
                    path = "."
                    uuid = "77777777-7777-7777-7777-777777777777"
                    version = "0.1.0"
                    [[deps.DifferentCompatWorkspaceDocs]]
                    deps = ["Documenter", "JSON"]
                    path = "docs"
                    uuid = "77777777-7777-7777-7777-777777777778"
                    version = "0.1.0"
                    [[deps.DifferentCompatWorkspaceTest]]
                    deps = ["JSON", "Test"]
                    path = "test"
                    uuid = "77777777-7777-7777-7777-777777777779"
                    version = "0.1.0"
                    [[deps.DocStringExtensions]]
                    git-tree-sha1 = "7442a5dfe1ebb773c29cc2962a8980f47221d76c"
                    uuid = "ffbed154-4ef7-542d-bbb7-c09d3a79fcae"
                    version = "0.9.5"
                    [[deps.Documenter]]
                    deps = ["ANSIColoredPrinters", "AbstractTrees", "Base64", "CodecZlib", "Dates", "DocStringExtensions", "Downloads", "Git", "IOCapture", "InteractiveUtils", "JSON", "Logging", "Markdown", "MarkdownAST", "Pkg", "PrecompileTools", "REPL", "RegistryInstances", "SHA", "TOML", "Test", "Unicode"]
                    git-tree-sha1 = "b37458ae37d8bdb643d763451585cd8d0e5b4a9e"
                    uuid = "e30172f5-a6a5-5a46-863b-614d45cd2de4"
                    version = "1.16.1"
                    [[deps.Downloads]]
                    deps = ["ArgTools", "FileWatching", "LibCURL", "NetworkOptions"]
                    uuid = "f43a241f-c20a-4ad4-852c-f6b1247861c6"
                    version = "1.7.0"
                    [[deps.Expat_jll]]
                    deps = ["Artifacts", "JLLWrappers", "Libdl"]
                    git-tree-sha1 = "27af30de8b5445644e8ffe3bcb0d72049c089cf1"
                    uuid = "2e619515-83b5-522b-bb60-26c02a35a201"
                    version = "2.7.3+0"
                    [[deps.FileWatching]]
                    uuid = "7b1f6079-737a-58dc-b8bc-7a2ca5c1b5ee"
                    version = "1.11.0"
                    [[deps.Git]]
                    deps = ["Git_LFS_jll", "Git_jll", "JLLWrappers", "OpenSSH_jll"]
                    git-tree-sha1 = "824a1890086880696fc908fe12a17bcf61738bd8"
                    uuid = "d7ba0133-e1db-5d97-8f8c-041e4b3a1eb2"
                    version = "1.5.0"
                    [[deps.Git_LFS_jll]]
                    deps = ["Artifacts", "JLLWrappers", "Libdl"]
                    git-tree-sha1 = "bb8471f313ed941f299aa53d32a94ab3bee08844"
                    uuid = "020c3dae-16b3-5ae5-87b3-4cb189e250b2"
                    version = "3.7.0+0"
                    [[deps.Git_jll]]
                    deps = ["Artifacts", "Expat_jll", "JLLWrappers", "LibCURL_jll", "Libdl", "Libiconv_jll", "OpenSSL_jll", "PCRE2_jll", "Zlib_jll"]
                    git-tree-sha1 = "46bd50c245fe49ed87377c014a928a549b9ef7ed"
                    uuid = "f8c6e375-362e-5223-8a59-34ff63f689eb"
                    version = "2.52.0+0"
                    [[deps.IOCapture]]
                    deps = ["Logging", "Random"]
                    git-tree-sha1 = "0ee181ec08df7d7c911901ea38baf16f755114dc"
                    uuid = "b5f81e59-6552-4d32-b1f0-c071b021bf89"
                    version = "1.0.0"
                    [[deps.InteractiveUtils]]
                    deps = ["Markdown"]
                    uuid = "b77e0a4c-d291-57a0-90e8-8db25a27a240"
                    version = "1.11.0"
                    [[deps.JLLWrappers]]
                    deps = ["Artifacts", "Preferences"]
                    git-tree-sha1 = "0533e564aae234aff59ab625543145446d8b6ec2"
                    uuid = "692b3bcd-3c85-4b1f-b108-f13ce0eb3210"
                    version = "1.7.1"
                    [[deps.JSON]]
                    deps = ["Dates", "Logging", "Parsers", "PrecompileTools", "StructUtils", "UUIDs", "Unicode"]
                    git-tree-sha1 = "5b6bb73f555bc753a6153deec3717b8904f5551c"
                    uuid = "682c06a0-de6a-54ab-a142-c8b1cf79cde6"
                    version = "1.3.0"
                        [deps.JSON.extensions]
                        JSONArrowExt = ["ArrowTypes"]
                        [deps.JSON.weakdeps]
                        ArrowTypes = "31f734f8-188a-4ce0-8406-c8a06bd891cd"
                    [[deps.JuliaSyntaxHighlighting]]
                    deps = ["StyledStrings"]
                    uuid = "ac6e5ff7-fb65-4e79-a425-ec3bc9c03011"
                    version = "1.12.0"
                    [[deps.LazilyInitializedFields]]
                    git-tree-sha1 = "0f2da712350b020bc3957f269c9caad516383ee0"
                    uuid = "0e77f7df-68c5-4e49-93ce-4cd80f5598bf"
                    version = "1.3.0"
                    [[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", "OpenSSL_jll", "Zlib_jll", "nghttp2_jll"]
                    uuid = "deac9b47-8bc7-5906-a0fe-35ac56dc84c0"
                    version = "8.15.0+0"
                    [[deps.LibGit2]]
                    deps = ["LibGit2_jll", "NetworkOptions", "Printf", "SHA"]
                    uuid = "76f85450-5226-5b5a-8eaa-529ad045b433"
                    version = "1.11.0"
                    [[deps.LibGit2_jll]]
                    deps = ["Artifacts", "LibSSH2_jll", "Libdl", "OpenSSL_jll"]
                    uuid = "e37daf67-58a4-590a-8e99-b0245dd2ffc5"
                    version = "1.9.0+0"
                    [[deps.LibSSH2_jll]]
                    deps = ["Artifacts", "Libdl", "OpenSSL_jll"]
                    uuid = "29816b5a-b9ab-546f-933c-edad1886dfa8"
                    version = "1.11.3+1"
                    [[deps.Libdl]]
                    uuid = "8f399da3-3557-5675-b5ff-fb832c97cbdb"
                    version = "1.11.0"
                    [[deps.Libiconv_jll]]
                    deps = ["Artifacts", "JLLWrappers", "Libdl"]
                    git-tree-sha1 = "be484f5c92fad0bd8acfef35fe017900b0b73809"
                    uuid = "94ce4f54-9a6c-5748-9c1c-f9c7231a4531"
                    version = "1.18.0+0"
                    [[deps.Logging]]
                    uuid = "56ddb016-857b-54e1-b83d-db4d58db5568"
                    version = "1.11.0"
                    [[deps.Markdown]]
                    deps = ["Base64", "JuliaSyntaxHighlighting", "StyledStrings"]
                    uuid = "d6f4376e-aef5-505a-96c1-9c027394607a"
                    version = "1.11.0"
                    [[deps.MarkdownAST]]
                    deps = ["AbstractTrees", "Markdown"]
                    git-tree-sha1 = "465a70f0fc7d443a00dcdc3267a497397b8a3899"
                    uuid = "d0879d2d-cac2-40c8-9cee-1863dc0c7391"
                    version = "0.1.2"
                    [[deps.MozillaCACerts_jll]]
                    uuid = "14a3606d-f60d-562e-9121-12d972cd8159"
                    version = "2025.5.20"
                    [[deps.NetworkOptions]]
                    uuid = "ca575930-c2e3-43a9-ace4-1e988b2c1908"
                    version = "1.3.0"
                    [[deps.OpenSSH_jll]]
                    deps = ["Artifacts", "JLLWrappers", "Libdl", "OpenSSL_jll", "Zlib_jll"]
                    git-tree-sha1 = "301412a644646fdc0ad67d0a87487466b491e53d"
                    uuid = "9bd350c2-7e96-507f-8002-3f2e150b4e1b"
                    version = "10.2.1+0"
                    [[deps.OpenSSL_jll]]
                    deps = ["Artifacts", "Libdl"]
                    uuid = "458c3c95-2e84-50aa-8efc-19380b2a3a95"
                    version = "3.5.4+0"
                    [[deps.PCRE2_jll]]
                    deps = ["Artifacts", "Libdl"]
                    uuid = "efcefdf7-47ab-520b-bdef-62a2eaa19f15"
                    version = "10.44.0+1"
                    [[deps.Parsers]]
                    deps = ["Dates", "PrecompileTools", "UUIDs"]
                    git-tree-sha1 = "7d2f8f21da5db6a806faf7b9b292296da42b2810"
                    uuid = "69de0a69-1ddd-5017-9359-2bf0b02dc9f0"
                    version = "2.8.3"
                    [[deps.Pkg]]
                    deps = ["Artifacts", "Dates", "Downloads", "FileWatching", "LibGit2", "Libdl", "Logging", "Markdown", "Printf", "Random", "SHA", "TOML", "Tar", "UUIDs", "p7zip_jll"]
                    uuid = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f"
                    version = "1.12.1"
                    weakdeps = ["REPL"]
                        [deps.Pkg.extensions]
                        REPLExt = "REPL"
                    [[deps.PrecompileTools]]
                    deps = ["Preferences"]
                    git-tree-sha1 = "07a921781cab75691315adc645096ed5e370cb77"
                    uuid = "aea7be01-6a6a-4083-8856-8a6e6704d82a"
                    version = "1.3.3"
                    [[deps.Preferences]]
                    deps = ["TOML"]
                    git-tree-sha1 = "522f093a29b31a93e34eaea17ba055d850edea28"
                    uuid = "21216c6a-2e73-6563-6e65-726566657250"
                    version = "1.5.1"
                    [[deps.Printf]]
                    deps = ["Unicode"]
                    uuid = "de0858da-6303-5e67-8744-51eddeeeb8d7"
                    version = "1.11.0"
                    [[deps.REPL]]
                    deps = ["InteractiveUtils", "JuliaSyntaxHighlighting", "Markdown", "Sockets", "StyledStrings", "Unicode"]
                    uuid = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb"
                    version = "1.11.0"
                    [[deps.Random]]
                    deps = ["SHA"]
                    uuid = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c"
                    version = "1.11.0"
                    [[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"
                    [[deps.Serialization]]
                    uuid = "9e88b42a-f829-5b0c-bbe9-9e923198166b"
                    version = "1.11.0"
                    [[deps.Sockets]]
                    uuid = "6462fe0b-24de-5631-8697-dd941f90decc"
                    version = "1.11.0"
                    [[deps.StructUtils]]
                    deps = ["Dates", "UUIDs"]
                    git-tree-sha1 = "b0290a55d9e047841d7f5c472edbdc39c72cd0ce"
                    uuid = "ec057cc2-7a8d-4b58-b3b3-92acb9f63b42"
                    version = "2.6.1"
                        [deps.StructUtils.extensions]
                        StructUtilsMeasurementsExt = ["Measurements"]
                        StructUtilsTablesExt = ["Tables"]
                        [deps.StructUtils.weakdeps]
                        Measurements = "eff96d63-e80a-5855-80a2-b1b0885c5ab7"
                        Tables = "bd369af6-aec1-5ad0-b16a-f7cc5008161c"
                    [[deps.StyledStrings]]
                    uuid = "f489334b-da3d-4c2e-b8f0-e476e12c162b"
                    version = "1.11.0"
                    [[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"
                    version = "1.11.0"
                    [[deps.TranscodingStreams]]
                    git-tree-sha1 = "0c45878dcfdcfa8480052b6ab162cdd138781742"
                    uuid = "3bb67fe8-82b1-5028-8e26-92a6c54297fa"
                    version = "0.11.3"
                    [[deps.UUIDs]]
                    deps = ["Random", "SHA"]
                    uuid = "cf7118a7-6976-5b1a-9a39-7adc72f591a4"
                    version = "1.11.0"
                    [[deps.Unicode]]
                    uuid = "4ec0a83e-493e-50e2-b9ac-8f72acf5a8f5"
                    version = "1.11.0"
                    [[deps.Zlib_jll]]
                    deps = ["Libdl"]
                    uuid = "83775a58-1f1d-513f-b197-d71354ab007a"
                    version = "1.3.1+2"
                    [[deps.nghttp2_jll]]
                    deps = ["Artifacts", "Libdl"]
                    uuid = "8e850ede-7688-5339-a07c-302acd2aaf8d"
                    version = "1.64.0+1"
                    [[deps.p7zip_jll]]
                    deps = ["Artifacts", "CompilerSupportLibraries_jll", "Libdl"]
                    uuid = "3f19e933-33d8-53b3-aaab-bd5110c3b7a0"
                    version = "17.7.0+0"
                  content_encoding: utf-8
                  deleted: false
                  directory: /DifferentCompatWorkspace.jl
                  name: Manifest.toml
                  operation: update
                  support_file: false
                  type: file
            pr-title: Update JSON requirement from 0.21.4 to 0.21.4, 1.3 in /DifferentCompatWorkspace.jl in the differentcompatworkspace group across 1 directory
            pr-body: |
                Updates the requirements on [JSON](https://github.com/JuliaIO/JSON.jl) to permit the latest version.
                Updates `JSON` to 1.3.0
                <details>
                <summary>Release notes</summary>
                <p><em>Sourced from <a href="https://cdn2-s1-movies.ddyy.vip/JuliaIO/JSON.jl/releases">JSON's releases</a>.</em></p>
                <blockquote>
                <h2>v1.3.0</h2>
                <h2>JSON v1.3.0</h2>
                <p><a href="https://cdn2-s1-movies.ddyy.vip/JuliaIO/JSON.jl/compare/v1.2.1...v1.3.0">Diff since v1.2.1</a></p>
                <p><strong>Merged pull requests:</strong></p>
                <ul>
                <li>Add new Null/Omit sentinels for overriding omit_null behavior per-field (<a href="https://redirect.github.com/JuliaIO/JSON.jl/issues/408">#408</a>) (<a href="https://cdn2-s1-movies.ddyy.vip/quinnj"><code>@​quinnj</code></a>)</li>
                </ul>
                </blockquote>
                </details>
                <details>
                <summary>Commits</summary>
                <ul>
                <li><a href="https://cdn2-s1-movies.ddyy.vip/JuliaIO/JSON.jl/commit/0c9b9009fabd59405a97847cca0abec7e84f3aab"><code>0c9b900</code></a> Update Project.toml</li>
                <li><a href="https://cdn2-s1-movies.ddyy.vip/JuliaIO/JSON.jl/commit/c065fc68395f43edc89a6170d24e9cc4cfd19016"><code>c065fc6</code></a> Add new Null/Omit sentinels for overriding omit_null behavior per-field (<a href="https://redirect.github.com/JuliaIO/JSON.jl/issues/408">#408</a>)</li>
                <li><a href="https://cdn2-s1-movies.ddyy.vip/JuliaIO/JSON.jl/commit/ac467437609fd0a0e482f56349b4c4f39148f301"><code>ac46743</code></a> Bump version to 1.2.1</li>
                <li><a href="https://cdn2-s1-movies.ddyy.vip/JuliaIO/JSON.jl/commit/d2f1c7b881ef65b346afff902beebbc91af7020e"><code>d2f1c7b</code></a> Ensure isvalidjson doesn't throw during LazyValue initial creation; fixes <a href="https://redirect.github.com/JuliaIO/JSON.jl/issues/40">#40</a>...</li>
                <li><a href="https://cdn2-s1-movies.ddyy.vip/JuliaIO/JSON.jl/commit/dd7d48901bbfaba534210121603a79c32075a599"><code>dd7d489</code></a> Treat array of pairs as object when writing. Fixes <a href="https://redirect.github.com/JuliaIO/JSON.jl/issues/398">#398</a> (<a href="https://redirect.github.com/JuliaIO/JSON.jl/issues/406">#406</a>)</li>
                <li><a href="https://cdn2-s1-movies.ddyy.vip/JuliaIO/JSON.jl/commit/2990e0369e3fddc6523f979845aee9dd960ba4e2"><code>2990e03</code></a> Fix JSONX tests on 32bit (<a href="https://redirect.github.com/JuliaIO/JSON.jl/issues/403">#403</a>)</li>
                <li><a href="https://cdn2-s1-movies.ddyy.vip/JuliaIO/JSON.jl/commit/b2787c38d18aa5a6828eefabc8d4f4726e1c09e7"><code>b2787c3</code></a> [JSONX] Fix unicode handling when unescaping strings (<a href="https://redirect.github.com/JuliaIO/JSON.jl/issues/405">#405</a>)</li>
                <li><a href="https://cdn2-s1-movies.ddyy.vip/JuliaIO/JSON.jl/commit/52d8b907fd26c02a13f6d6f807524e71859cc5bb"><code>52d8b90</code></a> Add support for parsing numbers as Int64 to JSONX (<a href="https://redirect.github.com/JuliaIO/JSON.jl/issues/396">#396</a>)</li>
                <li><a href="https://cdn2-s1-movies.ddyy.vip/JuliaIO/JSON.jl/commit/9ea65ed07553999511516ed455546bbbc0dc7d72"><code>9ea65ed</code></a> Bump version to 1.2</li>
                <li><a href="https://cdn2-s1-movies.ddyy.vip/JuliaIO/JSON.jl/commit/52703447b6c76452d6d0108ba9c148f4eb33fece"><code>5270344</code></a> Restore pre-1.0 compat for object Tuple keys (<a href="https://redirect.github.com/JuliaIO/JSON.jl/issues/400">#400</a>)</li>
                <li>Additional commits viewable in <a href="https://cdn2-s1-movies.ddyy.vip/JuliaIO/JSON.jl/compare/v0.21.4...v1.3.0">compare view</a></li>
                </ul>
                </details>
                <br />
            commit-message: |-
                Update JSON requirement 1.3
                Updates the requirements on [JSON](https://github.com/JuliaIO/JSON.jl) to permit the latest version.
                Updates `JSON` to 1.3.0
                - [Release notes](https://github.com/JuliaIO/JSON.jl/releases)
                - [Commits](https://github.com/JuliaIO/JSON.jl/compare/v0.21.4...v1.3.0)
            dependency-group:
                name: differentcompatworkspace

Checklist

  • I have run the complete test suite (CI passing)
  • I have thoroughly tested my code changes (340 Julia helper tests + Ruby specs pass)
  • I have written clear commit messages
  • I have provided a detailed description
  • The code is well-documented

@IanButterworth IanButterworth force-pushed the ib/julia_workspaces_fixes branch 5 times, most recently from 03ab72b to 2e64fa4 Compare January 7, 2026 02:43
Update find_workspace_project_files to use Julia's authoritative approach
for discovering workspace member projects by reading the [workspace].projects
array from Project.toml files, rather than relying on directory walking with
manifest comparison.

This aligns with how Julia's base_project() function in Base.loading works:
- Reads the [workspace].projects array from root Project.toml
- Recursively processes nested workspaces
- Properly handles JuliaProject.toml variants

Co-Authored-By: Claude <noreply@anthropic.com>
@IanButterworth IanButterworth force-pushed the ib/julia_workspaces_fixes branch from 2e64fa4 to 038783c Compare January 7, 2026 02:44
IanButterworth and others added 2 commits January 7, 2026 09:27
@IanButterworth IanButterworth marked this pull request as ready for review January 7, 2026 15:03
@IanButterworth IanButterworth requested a review from a team as a code owner January 7, 2026 15:03
Copy link

@giordano giordano left a comment

Choose a reason for hiding this comment

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

I mainly went through the julia code and all the tests, looks good to me 👍

@robaiken robaiken merged commit da5b139 into dependabot:main Jan 9, 2026
56 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Julia: dependabot only updates top-level Project.toml if workspaces have different compat specifiers

3 participants