From 883e7ef7404c28a24fa6eef4287cf54ee6499eff Mon Sep 17 00:00:00 2001 From: Kristoffer Carlsson Date: Wed, 5 Nov 2025 21:19:43 +0100 Subject: [PATCH 1/2] inline the historical stdlib data, use `STDLIBS_BY_VERSION` in case we ask for a version later than what we have data for --- data/version_map_compressed.jl | 1257 +++++++++++++++++++++++++++++ src/HistoricalStdlibs.jl | 92 ++- src/Operations.jl | 6 +- src/Types.jl | 28 +- test/Project.toml | 2 - test/historical_stdlib_version.jl | 15 - test/runtests.jl | 6 +- 7 files changed, 1359 insertions(+), 47 deletions(-) create mode 100644 data/version_map_compressed.jl diff --git a/data/version_map_compressed.jl b/data/version_map_compressed.jl new file mode 100644 index 0000000000..c0097a45b6 --- /dev/null +++ b/data/version_map_compressed.jl @@ -0,0 +1,1257 @@ +## This file autogenerated by ext/HistoricalStdlibGenerator/generate_historical_stdlibs.jl + +# Julia standard libraries with segment-based compression: +# - Each stdlib split into segments where base info (name, uuid, deps, weakdeps) is constant +# - Within each segment, only package version numbers stored per Julia version range + +# UUID constants +const ArgTools_uuid = UUID("0dad84c5-d112-42e6-8d28-ef12dabb789f") +const Artifacts_uuid = UUID("56f22d72-fd6d-98f1-02f0-08ddc0907c33") +const Base64_uuid = UUID("2a0f44e3-6c83-55bd-87e4-b1978d98bd5f") +const CRC32c_uuid = UUID("8bf52ea8-c179-5cab-976a-9e18b702a9bc") +const CompilerSupportLibraries_jll_uuid = UUID("e66e0078-7015-5450-92f7-15fbd957f2ae") +const Dates_uuid = UUID("ade2ca70-3891-5945-98fb-dc099432e06a") +const DelimitedFiles_uuid = UUID("8bb1440f-4735-579b-a4ab-409b98df4dab") +const Distributed_uuid = UUID("8ba89e20-285c-5b6f-9357-94700520ee1b") +const Downloads_uuid = UUID("f43a241f-c20a-4ad4-852c-f6b1247861c6") +const FileWatching_uuid = UUID("7b1f6079-737a-58dc-b8bc-7a2ca5c1b5ee") +const Future_uuid = UUID("9fa8497b-333b-5362-9e8d-4d0656e87820") +const GMP_jll_uuid = UUID("781609d7-10c4-51f6-84f2-b8444358ff6d") +const InteractiveUtils_uuid = UUID("b77e0a4c-d291-57a0-90e8-8db25a27a240") +const JuliaSyntaxHighlighting_uuid = UUID("ac6e5ff7-fb65-4e79-a425-ec3bc9c03011") +const LLD_jll_uuid = UUID("d55e3150-da41-5e91-b323-ecfd1eec6109") +const LLVMLibUnwind_jll_uuid = UUID("47c5dbc3-30ba-59ef-96a6-123e260183d9") +const LazyArtifacts_uuid = UUID("4af54fe1-eca0-43a8-85a7-787d91b784e3") +const LibCURL_jll_uuid = UUID("deac9b47-8bc7-5906-a0fe-35ac56dc84c0") +const LibCURL_uuid = UUID("b27032c2-a3e7-50c8-80cd-2d36dbcbfd21") +const LibGit2_jll_uuid = UUID("e37daf67-58a4-590a-8e99-b0245dd2ffc5") +const LibGit2_uuid = UUID("76f85450-5226-5b5a-8eaa-529ad045b433") +const LibOSXUnwind_jll_uuid = UUID("a83860b7-747b-57cf-bf1f-3e79990d037f") +const LibSSH2_jll_uuid = UUID("29816b5a-b9ab-546f-933c-edad1886dfa8") +const LibUV_jll_uuid = UUID("183b4373-6708-53ba-ad28-60e28bb38547") +const LibUnwind_jll_uuid = UUID("745a5e78-f969-53e9-954f-d19f2f74f4e3") +const Libdl_uuid = UUID("8f399da3-3557-5675-b5ff-fb832c97cbdb") +const LinearAlgebra_uuid = UUID("37e2e46d-f89d-539d-b4ee-838fcccc9c8e") +const Logging_uuid = UUID("56ddb016-857b-54e1-b83d-db4d58db5568") +const MPFR_jll_uuid = UUID("3a97d323-0669-5f0c-9066-3539efd106a3") +const Markdown_uuid = UUID("d6f4376e-aef5-505a-96c1-9c027394607a") +const MbedTLS_jll_uuid = UUID("c8ffd9c3-330d-5841-b78e-0817d7145fa1") +const Mmap_uuid = UUID("a63ad114-7e13-5084-954f-fe012c677804") +const MozillaCACerts_jll_uuid = UUID("14a3606d-f60d-562e-9121-12d972cd8159") +const NetworkOptions_uuid = UUID("ca575930-c2e3-43a9-ace4-1e988b2c1908") +const OpenBLAS_jll_uuid = UUID("4536629a-c528-5b80-bd46-f80d51c5b363") +const OpenLibm_jll_uuid = UUID("05823500-19ac-5b8b-9628-191a04bc5112") +const OpenSSL_jll_uuid = UUID("458c3c95-2e84-50aa-8efc-19380b2a3a95") +const PCRE2_jll_uuid = UUID("efcefdf7-47ab-520b-bdef-62a2eaa19f15") +const Pkg_uuid = UUID("44cfe95a-1eb2-52ea-b672-e2afdf69b78f") +const Printf_uuid = UUID("de0858da-6303-5e67-8744-51eddeeeb8d7") +const Profile_uuid = UUID("9abbd945-dff8-562f-b5e8-e1ebf5ef1b79") +const REPL_uuid = UUID("3fa0cd96-eef1-5676-8a61-b3b8758bbffb") +const Random_uuid = UUID("9a3f8284-a2c9-5f02-9a11-845980a1fd5c") +const SHA_uuid = UUID("ea8e919c-243c-51af-8825-aaa63cd721ce") +const Serialization_uuid = UUID("9e88b42a-f829-5b0c-bbe9-9e923198166b") +const SharedArrays_uuid = UUID("1a1011a3-84de-559e-8e89-a11a2f7dc383") +const Sockets_uuid = UUID("6462fe0b-24de-5631-8697-dd941f90decc") +const SparseArrays_uuid = UUID("2f01184e-e22b-5df5-ae63-d93ebab69eaf") +const Statistics_uuid = UUID("10745b16-79ce-11e8-11f9-7d13ad32a3b2") +const StyledStrings_uuid = UUID("f489334b-da3d-4c2e-b8f0-e476e12c162b") +const SuiteSparse_jll_uuid = UUID("bea87d4a-7f5b-5778-9afe-8cc45184846c") +const SuiteSparse_uuid = UUID("4607b0f0-06f3-5cda-b6b1-a6196a1729e9") +const TOML_uuid = UUID("fa267f1f-6049-4f14-aa54-33bafae1ed76") +const Tar_uuid = UUID("a4e569a6-e804-4fa4-b0f3-eef7a1d5b13e") +const Test_uuid = UUID("8dfed614-e22c-5e08-85e1-65c5234f0b40") +const UUIDs_uuid = UUID("cf7118a7-6976-5b1a-9a39-7adc72f591a4") +const Unicode_uuid = UUID("4ec0a83e-493e-50e2-b9ac-8f72acf5a8f5") +const Zlib_jll_uuid = UUID("83775a58-1f1d-513f-b197-d71354ab007a") +const Zstd_jll_uuid = UUID("3161d3a3-bdf6-5164-811a-617609db77b4") +const dSFMT_jll_uuid = UUID("05ff407c-b0c1-5878-9df8-858cc2e60c36") +const libLLVM_jll_uuid = UUID("8f36deef-c2a5-5394-99ed-8e07531fb29a") +const libblastrampoline_jll_uuid = UUID("8e850b90-86db-534c-a0d3-1478176c7d93") +const nghttp2_jll_uuid = UUID("8e850ede-7688-5339-a07c-302acd2aaf8d") +const p7zip_jll_uuid = UUID("3f19e933-33d8-53b3-aaab-bd5110c3b7a0") + +# Format: UUID => [StdlibSegment(...), ...] +const STDLIB_SEGMENTS = Dict{UUID, Vector{StdlibSegment}}( + ArgTools_uuid => [ + StdlibSegment( + base_info = StdlibBaseInfo(name = "ArgTools", uuid = ArgTools_uuid), + version_ranges = [ + (v"1.6.0", v"1.10.10") => v"1.1.1", + (v"1.11.0", v"1.14.0") => v"1.1.2", + ], + ), + ], + Artifacts_uuid => [ + StdlibSegment( + base_info = StdlibBaseInfo(name = "Artifacts", uuid = Artifacts_uuid), + version_ranges = [ + (v"1.6.0", v"1.10.10") => nothing, + (v"1.11.0", v"1.14.0") => v"1.11.0", + ], + ), + ], + Base64_uuid => [ + StdlibSegment( + base_info = StdlibBaseInfo(name = "Base64", uuid = Base64_uuid), + version_ranges = [ + (v"1.0.0", v"1.10.10") => nothing, + (v"1.11.0", v"1.14.0") => v"1.11.0", + ], + ), + ], + CRC32c_uuid => [ + StdlibSegment( + base_info = StdlibBaseInfo(name = "CRC32c", uuid = CRC32c_uuid), + version_ranges = [ + (v"1.0.0", v"1.10.10") => nothing, + (v"1.11.0", v"1.14.0") => v"1.11.0", + ], + ), + ], + CompilerSupportLibraries_jll_uuid => [ + StdlibSegment( + base_info = StdlibBaseInfo(name = "CompilerSupportLibraries_jll", uuid = CompilerSupportLibraries_jll_uuid, deps = UUID[Artifacts_uuid, Libdl_uuid]), + version_ranges = [ + (v"1.6.0", v"1.6.2") => v"0.3.6+1", + (v"1.6.3", v"1.7.1") => v"0.5.0+0", + (v"1.7.3", v"1.8.2") => v"0.5.2+0", + (v"1.8.4", v"1.8.4") => v"1.0.1+0", + (v"1.9.0", v"1.9.1") => v"1.0.2+0", + (v"1.9.2", v"1.9.4") => v"1.0.5+0", + (v"1.10.0", v"1.10.0") => v"1.0.5+1", + (v"1.10.1", v"1.10.1") => v"1.1.0+0", + (v"1.10.3", v"1.11.5") => v"1.1.1+0", + (v"1.12.0", v"1.14.0") => v"1.3.0+1", + ], + ), + ], + Dates_uuid => [ + StdlibSegment( + base_info = StdlibBaseInfo(name = "Dates", uuid = Dates_uuid, deps = UUID[Printf_uuid]), + version_ranges = [ + (v"1.0.0", v"1.10.10") => nothing, + (v"1.11.0", v"1.14.0") => v"1.11.0", + ], + ), + ], + DelimitedFiles_uuid => [ + StdlibSegment( + base_info = StdlibBaseInfo(name = "DelimitedFiles", uuid = DelimitedFiles_uuid, deps = UUID[Mmap_uuid]), + version_ranges = [ + (v"1.0.0", v"1.8.4") => nothing, + ], + ), + ], + Distributed_uuid => [ + StdlibSegment( + base_info = StdlibBaseInfo(name = "Distributed", uuid = Distributed_uuid, deps = UUID[LinearAlgebra_uuid, Sockets_uuid, Random_uuid, Serialization_uuid]), + version_ranges = [ + (v"1.0.0", v"1.0.4") => nothing, + ], + ), + StdlibSegment( + base_info = StdlibBaseInfo(name = "Distributed", uuid = Distributed_uuid, deps = UUID[Sockets_uuid, Random_uuid, Serialization_uuid]), + version_ranges = [ + (v"1.1.0", v"1.10.10") => nothing, + (v"1.11.0", v"1.14.0") => v"1.11.0", + ], + ), + ], + Downloads_uuid => [ + StdlibSegment( + base_info = StdlibBaseInfo(name = "Downloads", uuid = Downloads_uuid, deps = UUID[ArgTools_uuid, LibCURL_uuid, NetworkOptions_uuid]), + version_ranges = [ + (v"1.6.0", v"1.6.1") => v"1.4.0", + (v"1.6.2", v"1.6.3") => v"1.4.2", + (v"1.6.4", v"1.6.7") => v"1.4.3", + (v"1.7.0", v"1.7.1") => v"1.5.2", + ], + ), + StdlibSegment( + base_info = StdlibBaseInfo(name = "Downloads", uuid = Downloads_uuid, deps = UUID[ArgTools_uuid, FileWatching_uuid, LibCURL_uuid, NetworkOptions_uuid]), + version_ranges = [ + (v"1.7.3", v"1.7.3") => v"1.5.3", + (v"1.8.0", v"1.12.1") => v"1.6.0", + (v"1.13.0", v"1.14.0") => v"1.7.0", + ], + ), + ], + FileWatching_uuid => [ + StdlibSegment( + base_info = StdlibBaseInfo(name = "FileWatching", uuid = FileWatching_uuid), + version_ranges = [ + (v"1.0.0", v"1.10.10") => nothing, + (v"1.11.0", v"1.14.0") => v"1.11.0", + ], + ), + ], + Future_uuid => [ + StdlibSegment( + base_info = StdlibBaseInfo(name = "Future", uuid = Future_uuid, deps = UUID[Random_uuid]), + version_ranges = [ + (v"1.0.0", v"1.10.10") => nothing, + (v"1.11.0", v"1.14.0") => v"1.11.0", + ], + ), + ], + GMP_jll_uuid => [ + StdlibSegment( + base_info = StdlibBaseInfo(name = "GMP_jll", uuid = GMP_jll_uuid, deps = UUID[Artifacts_uuid, Libdl_uuid]), + version_ranges = [ + (v"1.6.0", v"1.6.6") => v"6.2.0+5", + (v"1.6.7", v"1.6.7") => v"6.2.1+2", + (v"1.7.0", v"1.7.3") => v"6.2.1+1", + (v"1.8.0", v"1.9.4") => v"6.2.1+2", + (v"1.10.0", v"1.10.10") => v"6.2.1+6", + (v"1.11.0", v"1.11.5") => v"6.3.0+0", + (v"1.12.0", v"1.12.1") => v"6.3.0+2", + ], + ), + StdlibSegment( + base_info = StdlibBaseInfo(name = "GMP_jll", uuid = GMP_jll_uuid, deps = UUID[Artifacts_uuid, Libdl_uuid, CompilerSupportLibraries_jll_uuid]), + version_ranges = [ + (v"1.13.0", v"1.14.0") => v"6.3.0+2", + ], + ), + ], + InteractiveUtils_uuid => [ + StdlibSegment( + base_info = StdlibBaseInfo(name = "InteractiveUtils", uuid = InteractiveUtils_uuid, deps = UUID[LinearAlgebra_uuid, Markdown_uuid]), + version_ranges = [ + (v"1.0.0", v"1.0.4") => nothing, + ], + ), + StdlibSegment( + base_info = StdlibBaseInfo(name = "InteractiveUtils", uuid = InteractiveUtils_uuid, deps = UUID[Markdown_uuid]), + version_ranges = [ + (v"1.1.0", v"1.10.10") => nothing, + (v"1.11.0", v"1.14.0") => v"1.11.0", + ], + ), + ], + JuliaSyntaxHighlighting_uuid => [ + StdlibSegment( + base_info = StdlibBaseInfo(name = "JuliaSyntaxHighlighting", uuid = JuliaSyntaxHighlighting_uuid, deps = UUID[StyledStrings_uuid]), + version_ranges = [ + (v"1.12.0", v"1.14.0") => v"1.12.0", + ], + ), + ], + LLD_jll_uuid => [ + StdlibSegment( + base_info = StdlibBaseInfo(name = "LLD_jll", uuid = LLD_jll_uuid, deps = UUID[Pkg_uuid, Artifacts_uuid, Zlib_jll_uuid, libLLVM_jll_uuid, Libdl_uuid, TOML_uuid]), + version_ranges = [ + (v"1.9.0", v"1.9.4") => v"14.0.6+3", + ], + ), + StdlibSegment( + base_info = StdlibBaseInfo(name = "LLD_jll", uuid = LLD_jll_uuid, deps = UUID[Artifacts_uuid, Zlib_jll_uuid, libLLVM_jll_uuid, Libdl_uuid]), + version_ranges = [ + (v"1.10.0", v"1.10.10") => v"15.0.7+10", + (v"1.11.0", v"1.11.4") => v"16.0.6+4", + (v"1.11.5", v"1.11.5") => v"16.0.6+5", + (v"1.12.0", v"1.12.1") => v"18.1.7+5", + (v"1.13.0", v"1.14.0") => v"20.1.8+0", + ], + ), + ], + LLVMLibUnwind_jll_uuid => [ + StdlibSegment( + base_info = StdlibBaseInfo(name = "LLVMLibUnwind_jll", uuid = LLVMLibUnwind_jll_uuid, deps = UUID[Artifacts_uuid, Libdl_uuid]), + version_ranges = [ + (v"1.7.0", v"1.7.3") => v"11.0.1+1", + (v"1.8.0", v"1.11.5") => v"12.0.1+0", + (v"1.12.0", v"1.14.0") => v"19.1.4+0", + ], + ), + ], + LazyArtifacts_uuid => [ + StdlibSegment( + base_info = StdlibBaseInfo(name = "LazyArtifacts", uuid = LazyArtifacts_uuid, deps = UUID[Pkg_uuid, Artifacts_uuid]), + version_ranges = [ + (v"1.6.0", v"1.10.10") => nothing, + (v"1.11.0", v"1.14.0") => v"1.11.0", + ], + ), + ], + LibCURL_uuid => [ + StdlibSegment( + base_info = StdlibBaseInfo(name = "LibCURL", uuid = LibCURL_uuid, deps = UUID[MozillaCACerts_jll_uuid, LibCURL_jll_uuid]), + version_ranges = [ + (v"1.6.0", v"1.7.3") => v"0.6.2", + (v"1.8.0", v"1.9.2") => v"0.6.3", + (v"1.9.4", v"1.12.1") => v"0.6.4", + (v"1.13.0", v"1.14.0") => v"1.0.0", + ], + ), + ], + LibCURL_jll_uuid => [ + StdlibSegment( + base_info = StdlibBaseInfo(name = "LibCURL_jll", uuid = LibCURL_jll_uuid, deps = UUID[LibSSH2_jll_uuid, Artifacts_uuid, Zlib_jll_uuid, nghttp2_jll_uuid, Libdl_uuid, MbedTLS_jll_uuid]), + version_ranges = [ + (v"1.6.0", v"1.6.7") => v"7.73.0+3", + (v"1.7.0", v"1.7.3") => v"7.73.0+4", + (v"1.8.0", v"1.9.2") => v"7.84.0+0", + (v"1.9.4", v"1.10.10") => v"8.4.0+0", + (v"1.11.0", v"1.11.5") => v"8.6.0+0", + ], + ), + StdlibSegment( + base_info = StdlibBaseInfo(name = "LibCURL_jll", uuid = LibCURL_jll_uuid, deps = UUID[LibSSH2_jll_uuid, OpenSSL_jll_uuid, Artifacts_uuid, Zlib_jll_uuid, nghttp2_jll_uuid, Libdl_uuid]), + version_ranges = [ + (v"1.12.0", v"1.12.1") => v"8.11.1+1", + ], + ), + StdlibSegment( + base_info = StdlibBaseInfo(name = "LibCURL_jll", uuid = LibCURL_jll_uuid, deps = UUID[LibSSH2_jll_uuid, Zstd_jll_uuid, OpenSSL_jll_uuid, Artifacts_uuid, Zlib_jll_uuid, nghttp2_jll_uuid, Libdl_uuid, CompilerSupportLibraries_jll_uuid]), + version_ranges = [ + (v"1.13.0", v"1.14.0") => v"8.16.0+0", + ], + ), + ], + LibGit2_uuid => [ + StdlibSegment( + base_info = StdlibBaseInfo(name = "LibGit2", uuid = LibGit2_uuid), + version_ranges = [ + (v"1.0.0", v"1.3.1") => nothing, + ], + ), + StdlibSegment( + base_info = StdlibBaseInfo(name = "LibGit2", uuid = LibGit2_uuid, deps = UUID[Printf_uuid]), + version_ranges = [ + (v"1.4.0", v"1.5.3") => nothing, + ], + ), + StdlibSegment( + base_info = StdlibBaseInfo(name = "LibGit2", uuid = LibGit2_uuid, deps = UUID[Base64_uuid, NetworkOptions_uuid, Printf_uuid, SHA_uuid]), + version_ranges = [ + (v"1.6.0", v"1.9.4") => nothing, + ], + ), + StdlibSegment( + base_info = StdlibBaseInfo(name = "LibGit2", uuid = LibGit2_uuid, deps = UUID[Base64_uuid, NetworkOptions_uuid, Printf_uuid, LibGit2_jll_uuid, SHA_uuid]), + version_ranges = [ + (v"1.10.0", v"1.10.10") => nothing, + (v"1.11.0", v"1.11.5") => v"1.11.0", + ], + ), + StdlibSegment( + base_info = StdlibBaseInfo(name = "LibGit2", uuid = LibGit2_uuid, deps = UUID[NetworkOptions_uuid, Printf_uuid, LibGit2_jll_uuid, SHA_uuid]), + version_ranges = [ + (v"1.12.0", v"1.14.0") => v"1.11.0", + ], + ), + ], + LibGit2_jll_uuid => [ + StdlibSegment( + base_info = StdlibBaseInfo(name = "LibGit2_jll", uuid = LibGit2_jll_uuid, deps = UUID[LibSSH2_jll_uuid, Artifacts_uuid, Libdl_uuid, MbedTLS_jll_uuid]), + version_ranges = [ + (v"1.6.0", v"1.7.3") => v"1.2.3+0", + (v"1.8.0", v"1.8.4") => v"1.3.0+0", + (v"1.9.0", v"1.9.4") => v"1.5.0+1", + (v"1.10.0", v"1.10.10") => v"1.6.4+0", + (v"1.11.0", v"1.11.5") => v"1.7.2+0", + ], + ), + StdlibSegment( + base_info = StdlibBaseInfo(name = "LibGit2_jll", uuid = LibGit2_jll_uuid, deps = UUID[LibSSH2_jll_uuid, OpenSSL_jll_uuid, Artifacts_uuid, Libdl_uuid]), + version_ranges = [ + (v"1.12.0", v"1.12.1") => v"1.9.0+0", + ], + ), + StdlibSegment( + base_info = StdlibBaseInfo(name = "LibGit2_jll", uuid = LibGit2_jll_uuid, deps = UUID[LibSSH2_jll_uuid, OpenSSL_jll_uuid, Artifacts_uuid, Zlib_jll_uuid, Libdl_uuid, CompilerSupportLibraries_jll_uuid, PCRE2_jll_uuid]), + version_ranges = [ + (v"1.13.0", v"1.14.0") => v"1.9.1+0", + ], + ), + ], + LibOSXUnwind_jll_uuid => [ + StdlibSegment( + base_info = StdlibBaseInfo(name = "LibOSXUnwind_jll", uuid = LibOSXUnwind_jll_uuid, deps = UUID[Artifacts_uuid, Libdl_uuid]), + version_ranges = [ + (v"1.6.0", v"1.6.7") => v"0.0.6+1", + ], + ), + ], + LibSSH2_jll_uuid => [ + StdlibSegment( + base_info = StdlibBaseInfo(name = "LibSSH2_jll", uuid = LibSSH2_jll_uuid, deps = UUID[Artifacts_uuid, Libdl_uuid, MbedTLS_jll_uuid]), + version_ranges = [ + (v"1.6.0", v"1.6.7") => v"1.9.1+0", + (v"1.7.0", v"1.7.3") => v"1.9.1+2", + (v"1.8.0", v"1.9.2") => v"1.10.2+0", + (v"1.9.4", v"1.11.5") => v"1.11.0+1", + ], + ), + StdlibSegment( + base_info = StdlibBaseInfo(name = "LibSSH2_jll", uuid = LibSSH2_jll_uuid, deps = UUID[OpenSSL_jll_uuid, Artifacts_uuid, Libdl_uuid]), + version_ranges = [ + (v"1.12.0", v"1.12.1") => v"1.11.3+1", + ], + ), + StdlibSegment( + base_info = StdlibBaseInfo(name = "LibSSH2_jll", uuid = LibSSH2_jll_uuid, deps = UUID[OpenSSL_jll_uuid, Artifacts_uuid, Zlib_jll_uuid, Libdl_uuid, CompilerSupportLibraries_jll_uuid]), + version_ranges = [ + (v"1.13.0", v"1.14.0") => v"1.11.3+1", + ], + ), + ], + LibUV_jll_uuid => [ + StdlibSegment( + base_info = StdlibBaseInfo(name = "LibUV_jll", uuid = LibUV_jll_uuid, deps = UUID[Artifacts_uuid, Libdl_uuid]), + version_ranges = [ + (v"1.6.0", v"1.6.3") => v"2.0.1+1", + (v"1.6.4", v"1.6.4") => v"2.0.1+4", + (v"1.6.5", v"1.8.0") => v"2.0.1+5", + (v"1.8.2", v"1.8.4") => v"2.0.1+11", + (v"1.9.0", v"1.9.4") => v"2.0.1+13", + (v"1.10.0", v"1.10.10") => v"2.0.1+14", + (v"1.11.0", v"1.11.5") => v"2.0.1+16", + (v"1.12.0", v"1.12.1") => v"2.0.1+20", + (v"1.13.0", v"1.14.0") => v"2.0.1+21", + ], + ), + ], + LibUnwind_jll_uuid => [ + StdlibSegment( + base_info = StdlibBaseInfo(name = "LibUnwind_jll", uuid = LibUnwind_jll_uuid, deps = UUID[Artifacts_uuid, Libdl_uuid]), + version_ranges = [ + (v"1.6.0", v"1.7.3") => v"1.3.2+0", + (v"1.8.0", v"1.8.4") => v"1.5.0+0", + (v"1.9.0", v"1.9.4") => v"1.5.0+4", + (v"1.10.0", v"1.10.10") => v"1.5.0+5", + (v"1.11.0", v"1.11.5") => v"1.7.2+2", + (v"1.12.0", v"1.12.1") => v"1.8.1+2", + ], + ), + StdlibSegment( + base_info = StdlibBaseInfo(name = "LibUnwind_jll", uuid = LibUnwind_jll_uuid, deps = UUID[Artifacts_uuid, Zlib_jll_uuid, Libdl_uuid, CompilerSupportLibraries_jll_uuid]), + version_ranges = [ + (v"1.13.0", v"1.14.0") => v"1.8.3+0", + ], + ), + ], + Libdl_uuid => [ + StdlibSegment( + base_info = StdlibBaseInfo(name = "Libdl", uuid = Libdl_uuid), + version_ranges = [ + (v"1.0.0", v"1.10.10") => nothing, + (v"1.11.0", v"1.14.0") => v"1.11.0", + ], + ), + ], + LinearAlgebra_uuid => [ + StdlibSegment( + base_info = StdlibBaseInfo(name = "LinearAlgebra", uuid = LinearAlgebra_uuid, deps = UUID[Libdl_uuid]), + version_ranges = [ + (v"1.0.0", v"1.6.7") => nothing, + ], + ), + StdlibSegment( + base_info = StdlibBaseInfo(name = "LinearAlgebra", uuid = LinearAlgebra_uuid, deps = UUID[libblastrampoline_jll_uuid, Libdl_uuid]), + version_ranges = [ + (v"1.7.0", v"1.8.4") => nothing, + ], + ), + StdlibSegment( + base_info = StdlibBaseInfo(name = "LinearAlgebra", uuid = LinearAlgebra_uuid, deps = UUID[OpenBLAS_jll_uuid, libblastrampoline_jll_uuid, Libdl_uuid]), + version_ranges = [ + (v"1.9.0", v"1.10.10") => nothing, + (v"1.11.0", v"1.11.5") => v"1.11.0", + (v"1.12.0", v"1.12.1") => v"1.12.0", + (v"1.13.0", v"1.14.0") => v"1.13.0", + ], + ), + ], + Logging_uuid => [ + StdlibSegment( + base_info = StdlibBaseInfo(name = "Logging", uuid = Logging_uuid), + version_ranges = [ + (v"1.0.0", v"1.10.10") => nothing, + (v"1.11.0", v"1.14.0") => v"1.11.0", + ], + ), + ], + MPFR_jll_uuid => [ + StdlibSegment( + base_info = StdlibBaseInfo(name = "MPFR_jll", uuid = MPFR_jll_uuid, deps = UUID[Artifacts_uuid, GMP_jll_uuid, Libdl_uuid]), + version_ranges = [ + (v"1.6.0", v"1.6.7") => v"4.1.1+0", + (v"1.7.0", v"1.8.4") => v"4.1.1+1", + (v"1.9.0", v"1.9.4") => v"4.1.1+4", + (v"1.10.0", v"1.10.10") => v"4.2.0+1", + (v"1.11.0", v"1.11.5") => v"4.2.1+0", + (v"1.12.0", v"1.12.1") => v"4.2.2+0", + ], + ), + StdlibSegment( + base_info = StdlibBaseInfo(name = "MPFR_jll", uuid = MPFR_jll_uuid, deps = UUID[Artifacts_uuid, GMP_jll_uuid, Libdl_uuid, CompilerSupportLibraries_jll_uuid]), + version_ranges = [ + (v"1.13.0", v"1.14.0") => v"4.2.2+0", + ], + ), + ], + Markdown_uuid => [ + StdlibSegment( + base_info = StdlibBaseInfo(name = "Markdown", uuid = Markdown_uuid, deps = UUID[Base64_uuid]), + version_ranges = [ + (v"1.0.0", v"1.10.10") => nothing, + (v"1.11.0", v"1.11.5") => v"1.11.0", + ], + ), + StdlibSegment( + base_info = StdlibBaseInfo(name = "Markdown", uuid = Markdown_uuid, deps = UUID[Base64_uuid, JuliaSyntaxHighlighting_uuid, StyledStrings_uuid]), + version_ranges = [ + (v"1.12.0", v"1.14.0") => v"1.11.0", + ], + ), + ], + MbedTLS_jll_uuid => [ + StdlibSegment( + base_info = StdlibBaseInfo(name = "MbedTLS_jll", uuid = MbedTLS_jll_uuid, deps = UUID[Artifacts_uuid, Libdl_uuid]), + version_ranges = [ + (v"1.6.0", v"1.6.6") => v"2.24.0+1", + (v"1.6.7", v"1.6.7") => v"2.24.0+4", + (v"1.7.0", v"1.7.3") => v"2.24.0+2", + (v"1.8.0", v"1.8.4") => v"2.28.0+0", + (v"1.9.0", v"1.9.4") => v"2.28.2+0", + (v"1.10.0", v"1.10.10") => v"2.28.2+1", + (v"1.11.0", v"1.11.5") => v"2.28.6+0", + ], + ), + ], + Mmap_uuid => [ + StdlibSegment( + base_info = StdlibBaseInfo(name = "Mmap", uuid = Mmap_uuid), + version_ranges = [ + (v"1.0.0", v"1.10.10") => nothing, + (v"1.11.0", v"1.14.0") => v"1.11.0", + ], + ), + ], + MozillaCACerts_jll_uuid => [ + StdlibSegment( + base_info = StdlibBaseInfo(name = "MozillaCACerts_jll", uuid = MozillaCACerts_jll_uuid), + version_ranges = [ + (v"1.6.0", v"1.7.3") => v"2020.7.22", + (v"1.8.0", v"1.8.4") => v"2022.2.1", + (v"1.9.0", v"1.9.4") => v"2022.10.11", + (v"1.10.0", v"1.10.10") => v"2023.1.10", + (v"1.11.0", v"1.11.5") => v"2023.12.12", + (v"1.12.0", v"1.12.1") => v"2025.5.20", + (v"1.13.0", v"1.14.0") => v"2025.9.9", + ], + ), + ], + NetworkOptions_uuid => [ + StdlibSegment( + base_info = StdlibBaseInfo(name = "NetworkOptions", uuid = NetworkOptions_uuid), + version_ranges = [ + (v"1.6.0", v"1.11.5") => v"1.2.0", + (v"1.12.0", v"1.14.0") => v"1.3.0", + ], + ), + ], + OpenBLAS_jll_uuid => [ + StdlibSegment( + base_info = StdlibBaseInfo(name = "OpenBLAS_jll", uuid = OpenBLAS_jll_uuid, deps = UUID[Artifacts_uuid, Libdl_uuid, CompilerSupportLibraries_jll_uuid]), + version_ranges = [ + (v"1.6.0", v"1.6.3") => v"0.3.10+3", + (v"1.6.4", v"1.6.4") => v"0.3.10+9", + (v"1.6.5", v"1.6.7") => v"0.3.10+10", + (v"1.7.0", v"1.7.0") => v"0.3.13+9", + (v"1.7.1", v"1.7.3") => v"0.3.13+11", + (v"1.8.0", v"1.8.4") => v"0.3.20+0", + (v"1.9.0", v"1.9.4") => v"0.3.21+4", + (v"1.10.0", v"1.10.0") => v"0.3.23+2", + (v"1.10.1", v"1.10.10") => v"0.3.23+4", + (v"1.11.0", v"1.11.5") => v"0.3.27+1", + (v"1.12.0", v"1.14.0") => v"0.3.29+0", + ], + ), + ], + OpenLibm_jll_uuid => [ + StdlibSegment( + base_info = StdlibBaseInfo(name = "OpenLibm_jll", uuid = OpenLibm_jll_uuid, deps = UUID[Artifacts_uuid, Libdl_uuid]), + version_ranges = [ + (v"1.6.0", v"1.6.7") => v"0.7.4+0", + (v"1.7.0", v"1.7.3") => v"0.7.5+0", + (v"1.8.0", v"1.9.4") => v"0.8.1+0", + (v"1.10.0", v"1.10.5") => v"0.8.1+2", + (v"1.10.9", v"1.10.9") => v"0.8.1+4", + (v"1.10.10", v"1.10.10") => v"0.8.5+0", + (v"1.11.0", v"1.11.0") => v"0.8.1+2", + (v"1.11.4", v"1.11.4") => v"0.8.1+4", + (v"1.11.5", v"1.11.5") => v"0.8.5+0", + (v"1.12.0", v"1.12.1") => v"0.8.7+0", + ], + ), + StdlibSegment( + base_info = StdlibBaseInfo(name = "OpenLibm_jll", uuid = OpenLibm_jll_uuid, deps = UUID[Artifacts_uuid, Libdl_uuid, CompilerSupportLibraries_jll_uuid]), + version_ranges = [ + (v"1.13.0", v"1.14.0") => v"0.8.7+0", + ], + ), + ], + OpenSSL_jll_uuid => [ + StdlibSegment( + base_info = StdlibBaseInfo(name = "OpenSSL_jll", uuid = OpenSSL_jll_uuid, deps = UUID[Artifacts_uuid, Libdl_uuid]), + version_ranges = [ + (v"1.12.0", v"1.12.1") => v"3.5.1+0", + (v"1.13.0", v"1.14.0") => v"3.5.4+0", + ], + ), + ], + PCRE2_jll_uuid => [ + StdlibSegment( + base_info = StdlibBaseInfo(name = "PCRE2_jll", uuid = PCRE2_jll_uuid, deps = UUID[Artifacts_uuid, Libdl_uuid]), + version_ranges = [ + (v"1.6.0", v"1.6.0") => v"10.35.0+0", + (v"1.6.1", v"1.6.6") => v"10.36.0+0", + (v"1.6.7", v"1.6.7") => v"10.40.0+0", + (v"1.7.0", v"1.7.3") => v"10.36.0+2", + (v"1.8.0", v"1.8.4") => v"10.40.0+0", + (v"1.9.0", v"1.9.4") => v"10.42.0+0", + (v"1.10.0", v"1.11.5") => v"10.42.0+1", + (v"1.12.0", v"1.12.1") => v"10.44.0+1", + (v"1.13.0", v"1.14.0") => v"10.46.0+0", + ], + ), + ], + Pkg_uuid => [ + StdlibSegment( + base_info = StdlibBaseInfo(name = "Pkg", uuid = Pkg_uuid, deps = UUID[REPL_uuid, LibGit2_uuid, Random_uuid, Dates_uuid, UUIDs_uuid, Markdown_uuid, Printf_uuid, SHA_uuid]), + version_ranges = [ + (v"1.0.0", v"1.0.0") => nothing, + (v"1.0.2", v"1.0.2") => v"1.0.2", + (v"1.0.3", v"1.0.3") => v"1.0.3", + (v"1.0.4", v"1.0.4") => v"1.0.4", + (v"1.1.0", v"1.1.0") => v"1.1.2", + (v"1.1.1", v"1.1.1") => v"1.1.3", + (v"1.2.0", v"1.2.0") => v"1.2.0", + ], + ), + StdlibSegment( + base_info = StdlibBaseInfo(name = "Pkg", uuid = Pkg_uuid, deps = UUID[REPL_uuid, Logging_uuid, LibGit2_uuid, Libdl_uuid, Random_uuid, Dates_uuid, UUIDs_uuid, Markdown_uuid, Printf_uuid, SHA_uuid]), + version_ranges = [ + (v"1.3.0", v"1.3.0") => v"1.3.0", + ], + ), + StdlibSegment( + base_info = StdlibBaseInfo(name = "Pkg", uuid = Pkg_uuid, deps = UUID[REPL_uuid, Logging_uuid, LibGit2_uuid, Test_uuid, Libdl_uuid, Random_uuid, Dates_uuid, UUIDs_uuid, Markdown_uuid, Printf_uuid, SHA_uuid]), + version_ranges = [ + (v"1.3.1", v"1.3.1") => v"1.3.1", + ], + ), + StdlibSegment( + base_info = StdlibBaseInfo(name = "Pkg", uuid = Pkg_uuid, deps = UUID[REPL_uuid, Logging_uuid, LibGit2_uuid, Libdl_uuid, Random_uuid, Dates_uuid, UUIDs_uuid, Markdown_uuid, Printf_uuid, SHA_uuid]), + version_ranges = [ + (v"1.4.0", v"1.4.0") => v"1.4.0", + (v"1.5.0", v"1.5.0") => v"1.5.0", + (v"1.5.3", v"1.5.3") => v"1.5.3", + ], + ), + StdlibSegment( + base_info = StdlibBaseInfo(name = "Pkg", uuid = Pkg_uuid, deps = UUID[p7zip_jll_uuid, REPL_uuid, Logging_uuid, Artifacts_uuid, LibGit2_uuid, Libdl_uuid, Random_uuid, Serialization_uuid, Tar_uuid, Dates_uuid, UUIDs_uuid, Markdown_uuid, Printf_uuid, SHA_uuid, Downloads_uuid, TOML_uuid]), + version_ranges = [ + (v"1.6.0", v"1.6.1") => v"1.5.0", + (v"1.6.2", v"1.6.5") => v"1.6.2", + (v"1.6.6", v"1.6.6") => v"1.6.6", + (v"1.6.7", v"1.6.7") => v"1.6.7", + (v"1.7.0", v"1.7.3") => v"1.7.0", + (v"1.8.0", v"1.8.4") => v"1.8.0", + ], + ), + StdlibSegment( + base_info = StdlibBaseInfo(name = "Pkg", uuid = Pkg_uuid, deps = UUID[p7zip_jll_uuid, REPL_uuid, Logging_uuid, Artifacts_uuid, LibGit2_uuid, FileWatching_uuid, Libdl_uuid, Random_uuid, Serialization_uuid, Tar_uuid, Dates_uuid, UUIDs_uuid, Markdown_uuid, Printf_uuid, SHA_uuid, Downloads_uuid, TOML_uuid]), + version_ranges = [ + (v"1.9.0", v"1.9.1") => v"1.9.0", + (v"1.9.2", v"1.9.4") => v"1.9.2", + (v"1.10.0", v"1.10.10") => v"1.10.0", + ], + ), + StdlibSegment( + base_info = StdlibBaseInfo(name = "Pkg", uuid = Pkg_uuid, deps = UUID[p7zip_jll_uuid, Logging_uuid, Artifacts_uuid, LibGit2_uuid, FileWatching_uuid, Libdl_uuid, Random_uuid, Tar_uuid, Dates_uuid, UUIDs_uuid, Markdown_uuid, Printf_uuid, SHA_uuid, Downloads_uuid, TOML_uuid], weakdeps = UUID[REPL_uuid]), + version_ranges = [ + (v"1.11.0", v"1.11.5") => v"1.11.0", + (v"1.12.0", v"1.12.1") => v"1.12.0", + (v"1.13.0", v"1.13.0") => v"1.13.0", + ], + ), + StdlibSegment( + base_info = StdlibBaseInfo(name = "Pkg", uuid = Pkg_uuid, deps = UUID[Zstd_jll_uuid, p7zip_jll_uuid, Logging_uuid, Artifacts_uuid, LibGit2_uuid, FileWatching_uuid, Libdl_uuid, Random_uuid, Tar_uuid, Dates_uuid, UUIDs_uuid, Markdown_uuid, Printf_uuid, SHA_uuid, Downloads_uuid, TOML_uuid], weakdeps = UUID[REPL_uuid]), + version_ranges = [ + (v"1.14.0", v"1.14.0") => v"1.13.0", + ], + ), + ], + Printf_uuid => [ + StdlibSegment( + base_info = StdlibBaseInfo(name = "Printf", uuid = Printf_uuid, deps = UUID[Unicode_uuid]), + version_ranges = [ + (v"1.0.0", v"1.10.10") => nothing, + (v"1.11.0", v"1.14.0") => v"1.11.0", + ], + ), + ], + Profile_uuid => [ + StdlibSegment( + base_info = StdlibBaseInfo(name = "Profile", uuid = Profile_uuid, deps = UUID[Printf_uuid]), + version_ranges = [ + (v"1.0.0", v"1.10.10") => nothing, + ], + ), + StdlibSegment( + base_info = StdlibBaseInfo(name = "Profile", uuid = Profile_uuid), + version_ranges = [ + (v"1.11.0", v"1.11.5") => v"1.11.0", + ], + ), + StdlibSegment( + base_info = StdlibBaseInfo(name = "Profile", uuid = Profile_uuid, deps = UUID[StyledStrings_uuid]), + version_ranges = [ + (v"1.12.0", v"1.14.0") => v"1.11.0", + ], + ), + ], + REPL_uuid => [ + StdlibSegment( + base_info = StdlibBaseInfo(name = "REPL", uuid = REPL_uuid, deps = UUID[Sockets_uuid, InteractiveUtils_uuid, Markdown_uuid]), + version_ranges = [ + (v"1.0.0", v"1.5.3") => nothing, + ], + ), + StdlibSegment( + base_info = StdlibBaseInfo(name = "REPL", uuid = REPL_uuid, deps = UUID[Unicode_uuid, Sockets_uuid, InteractiveUtils_uuid, Markdown_uuid]), + version_ranges = [ + (v"1.6.0", v"1.10.10") => nothing, + ], + ), + StdlibSegment( + base_info = StdlibBaseInfo(name = "REPL", uuid = REPL_uuid, deps = UUID[Unicode_uuid, Sockets_uuid, InteractiveUtils_uuid, Markdown_uuid, StyledStrings_uuid]), + version_ranges = [ + (v"1.11.0", v"1.11.5") => v"1.11.0", + ], + ), + StdlibSegment( + base_info = StdlibBaseInfo(name = "REPL", uuid = REPL_uuid, deps = UUID[Unicode_uuid, Sockets_uuid, JuliaSyntaxHighlighting_uuid, InteractiveUtils_uuid, Markdown_uuid, StyledStrings_uuid]), + version_ranges = [ + (v"1.12.0", v"1.12.1") => v"1.11.0", + ], + ), + StdlibSegment( + base_info = StdlibBaseInfo(name = "REPL", uuid = REPL_uuid, deps = UUID[Unicode_uuid, Sockets_uuid, FileWatching_uuid, JuliaSyntaxHighlighting_uuid, Dates_uuid, InteractiveUtils_uuid, Markdown_uuid, StyledStrings_uuid]), + version_ranges = [ + (v"1.13.0", v"1.14.0") => v"1.11.0", + ], + ), + ], + Random_uuid => [ + StdlibSegment( + base_info = StdlibBaseInfo(name = "Random", uuid = Random_uuid, deps = UUID[Serialization_uuid]), + version_ranges = [ + (v"1.0.0", v"1.6.7") => nothing, + ], + ), + StdlibSegment( + base_info = StdlibBaseInfo(name = "Random", uuid = Random_uuid, deps = UUID[Serialization_uuid, SHA_uuid]), + version_ranges = [ + (v"1.7.0", v"1.9.4") => nothing, + ], + ), + StdlibSegment( + base_info = StdlibBaseInfo(name = "Random", uuid = Random_uuid, deps = UUID[SHA_uuid]), + version_ranges = [ + (v"1.10.0", v"1.10.10") => nothing, + (v"1.11.0", v"1.14.0") => v"1.11.0", + ], + ), + ], + SHA_uuid => [ + StdlibSegment( + base_info = StdlibBaseInfo(name = "SHA", uuid = SHA_uuid), + version_ranges = [ + (v"1.0.0", v"1.7.3") => nothing, + (v"1.8.0", v"1.12.1") => v"0.7.0", + (v"1.13.0", v"1.14.0") => v"1.0.0", + ], + ), + ], + Serialization_uuid => [ + StdlibSegment( + base_info = StdlibBaseInfo(name = "Serialization", uuid = Serialization_uuid), + version_ranges = [ + (v"1.0.0", v"1.10.10") => nothing, + (v"1.11.0", v"1.14.0") => v"1.11.0", + ], + ), + ], + SharedArrays_uuid => [ + StdlibSegment( + base_info = StdlibBaseInfo(name = "SharedArrays", uuid = SharedArrays_uuid, deps = UUID[Distributed_uuid, Random_uuid, Serialization_uuid, Mmap_uuid]), + version_ranges = [ + (v"1.0.0", v"1.10.10") => nothing, + (v"1.11.0", v"1.14.0") => v"1.11.0", + ], + ), + ], + Sockets_uuid => [ + StdlibSegment( + base_info = StdlibBaseInfo(name = "Sockets", uuid = Sockets_uuid), + version_ranges = [ + (v"1.0.0", v"1.10.10") => nothing, + (v"1.11.0", v"1.14.0") => v"1.11.0", + ], + ), + ], + SparseArrays_uuid => [ + StdlibSegment( + base_info = StdlibBaseInfo(name = "SparseArrays", uuid = SparseArrays_uuid, deps = UUID[LinearAlgebra_uuid, Random_uuid]), + version_ranges = [ + (v"1.0.0", v"1.8.4") => nothing, + ], + ), + StdlibSegment( + base_info = StdlibBaseInfo(name = "SparseArrays", uuid = SparseArrays_uuid, deps = UUID[LinearAlgebra_uuid, Libdl_uuid, Random_uuid, Serialization_uuid, SuiteSparse_jll_uuid]), + version_ranges = [ + (v"1.9.0", v"1.9.4") => nothing, + (v"1.10.0", v"1.10.10") => v"1.10.0", + (v"1.11.0", v"1.11.5") => v"1.11.0", + (v"1.12.0", v"1.12.1") => v"1.12.0", + (v"1.13.0", v"1.14.0") => v"1.13.0", + ], + ), + ], + Statistics_uuid => [ + StdlibSegment( + base_info = StdlibBaseInfo(name = "Statistics", uuid = Statistics_uuid, deps = UUID[SparseArrays_uuid, LinearAlgebra_uuid]), + version_ranges = [ + (v"1.0.0", v"1.8.4") => nothing, + (v"1.9.0", v"1.9.4") => v"1.9.0", + (v"1.10.0", v"1.10.10") => v"1.10.0", + ], + ), + ], + StyledStrings_uuid => [ + StdlibSegment( + base_info = StdlibBaseInfo(name = "StyledStrings", uuid = StyledStrings_uuid), + version_ranges = [ + (v"1.11.0", v"1.14.0") => v"1.11.0", + ], + ), + ], + SuiteSparse_uuid => [ + StdlibSegment( + base_info = StdlibBaseInfo(name = "SuiteSparse", uuid = SuiteSparse_uuid, deps = UUID[SparseArrays_uuid, LinearAlgebra_uuid, Libdl_uuid]), + version_ranges = [ + (v"1.0.0", v"1.0.3") => nothing, + ], + ), + StdlibSegment( + base_info = StdlibBaseInfo(name = "SuiteSparse", uuid = SuiteSparse_uuid, deps = UUID[SparseArrays_uuid, LinearAlgebra_uuid, Libdl_uuid, Serialization_uuid]), + version_ranges = [ + (v"1.0.4", v"1.0.4") => nothing, + ], + ), + StdlibSegment( + base_info = StdlibBaseInfo(name = "SuiteSparse", uuid = SuiteSparse_uuid, deps = UUID[SparseArrays_uuid, LinearAlgebra_uuid, Libdl_uuid]), + version_ranges = [ + (v"1.1.0", v"1.1.1") => nothing, + ], + ), + StdlibSegment( + base_info = StdlibBaseInfo(name = "SuiteSparse", uuid = SuiteSparse_uuid, deps = UUID[SparseArrays_uuid, LinearAlgebra_uuid, Libdl_uuid, Serialization_uuid]), + version_ranges = [ + (v"1.2.0", v"1.14.0") => nothing, + ], + ), + ], + SuiteSparse_jll_uuid => [ + StdlibSegment( + base_info = StdlibBaseInfo(name = "SuiteSparse_jll", uuid = SuiteSparse_jll_uuid, deps = UUID[OpenBLAS_jll_uuid, Artifacts_uuid, Libdl_uuid]), + version_ranges = [ + (v"1.6.0", v"1.6.7") => v"5.4.1+1", + ], + ), + StdlibSegment( + base_info = StdlibBaseInfo(name = "SuiteSparse_jll", uuid = SuiteSparse_jll_uuid, deps = UUID[Pkg_uuid, Artifacts_uuid, libblastrampoline_jll_uuid, Libdl_uuid]), + version_ranges = [ + (v"1.7.0", v"1.8.4") => v"5.10.1+0", + (v"1.9.0", v"1.9.4") => v"5.10.1+6", + ], + ), + StdlibSegment( + base_info = StdlibBaseInfo(name = "SuiteSparse_jll", uuid = SuiteSparse_jll_uuid, deps = UUID[Artifacts_uuid, libblastrampoline_jll_uuid, Libdl_uuid]), + version_ranges = [ + (v"1.10.0", v"1.10.10") => v"7.2.1+1", + (v"1.11.0", v"1.11.5") => v"7.7.0+0", + (v"1.12.0", v"1.12.1") => v"7.8.3+2", + ], + ), + StdlibSegment( + base_info = StdlibBaseInfo(name = "SuiteSparse_jll", uuid = SuiteSparse_jll_uuid, deps = UUID[Artifacts_uuid, libblastrampoline_jll_uuid, Libdl_uuid, CompilerSupportLibraries_jll_uuid]), + version_ranges = [ + (v"1.13.0", v"1.14.0") => v"7.10.1+0", + ], + ), + ], + TOML_uuid => [ + StdlibSegment( + base_info = StdlibBaseInfo(name = "TOML", uuid = TOML_uuid, deps = UUID[Dates_uuid]), + version_ranges = [ + (v"1.6.0", v"1.8.4") => v"1.0.0", + (v"1.9.0", v"1.14.0") => v"1.0.3", + ], + ), + ], + Tar_uuid => [ + StdlibSegment( + base_info = StdlibBaseInfo(name = "Tar", uuid = Tar_uuid, deps = UUID[ArgTools_uuid, SHA_uuid]), + version_ranges = [ + (v"1.6.0", v"1.6.0") => v"1.9.0", + (v"1.6.1", v"1.6.1") => v"1.9.1", + (v"1.6.2", v"1.6.7") => v"1.9.3", + (v"1.7.0", v"1.8.0") => v"1.10.0", + (v"1.8.2", v"1.8.4") => v"1.10.1", + (v"1.9.0", v"1.14.0") => v"1.10.0", + ], + ), + ], + Test_uuid => [ + StdlibSegment( + base_info = StdlibBaseInfo(name = "Test", uuid = Test_uuid, deps = UUID[Logging_uuid, Distributed_uuid, Random_uuid, InteractiveUtils_uuid]), + version_ranges = [ + (v"1.0.0", v"1.5.3") => nothing, + ], + ), + StdlibSegment( + base_info = StdlibBaseInfo(name = "Test", uuid = Test_uuid, deps = UUID[Logging_uuid, Random_uuid, Serialization_uuid, InteractiveUtils_uuid]), + version_ranges = [ + (v"1.6.0", v"1.10.10") => nothing, + (v"1.11.0", v"1.14.0") => v"1.11.0", + ], + ), + ], + UUIDs_uuid => [ + StdlibSegment( + base_info = StdlibBaseInfo(name = "UUIDs", uuid = UUIDs_uuid, deps = UUID[Random_uuid]), + version_ranges = [ + (v"1.0.0", v"1.0.4") => nothing, + ], + ), + StdlibSegment( + base_info = StdlibBaseInfo(name = "UUIDs", uuid = UUIDs_uuid, deps = UUID[Random_uuid, SHA_uuid]), + version_ranges = [ + (v"1.1.0", v"1.10.10") => nothing, + (v"1.11.0", v"1.14.0") => v"1.11.0", + ], + ), + ], + Unicode_uuid => [ + StdlibSegment( + base_info = StdlibBaseInfo(name = "Unicode", uuid = Unicode_uuid), + version_ranges = [ + (v"1.0.0", v"1.10.10") => nothing, + (v"1.11.0", v"1.14.0") => v"1.11.0", + ], + ), + ], + Zlib_jll_uuid => [ + StdlibSegment( + base_info = StdlibBaseInfo(name = "Zlib_jll", uuid = Zlib_jll_uuid, deps = UUID[Libdl_uuid]), + version_ranges = [ + (v"1.6.0", v"1.6.6") => v"1.2.12+0", + (v"1.6.7", v"1.6.7") => v"1.2.12+3", + (v"1.7.0", v"1.7.1") => v"1.2.12+1", + (v"1.7.3", v"1.8.4") => v"1.2.12+3", + (v"1.9.0", v"1.9.4") => v"1.2.13+0", + (v"1.10.0", v"1.11.5") => v"1.2.13+1", + (v"1.12.0", v"1.14.0") => v"1.3.1+2", + ], + ), + ], + Zstd_jll_uuid => [ + StdlibSegment( + base_info = StdlibBaseInfo(name = "Zstd_jll", uuid = Zstd_jll_uuid, deps = UUID[Libdl_uuid, CompilerSupportLibraries_jll_uuid]), + version_ranges = [ + (v"1.13.0", v"1.14.0") => v"1.5.7+1", + ], + ), + ], + dSFMT_jll_uuid => [ + StdlibSegment( + base_info = StdlibBaseInfo(name = "dSFMT_jll", uuid = dSFMT_jll_uuid, deps = UUID[Artifacts_uuid, Libdl_uuid]), + version_ranges = [ + (v"1.6.0", v"1.6.7") => v"2.2.4+0", + (v"1.7.0", v"1.9.4") => v"2.2.4+1", + (v"1.10.0", v"1.10.10") => v"2.2.4+4", + (v"1.11.0", v"1.11.5") => v"2.2.5+0", + (v"1.12.0", v"1.14.0") => v"2.2.5+2", + ], + ), + ], + libLLVM_jll_uuid => [ + StdlibSegment( + base_info = StdlibBaseInfo(name = "libLLVM_jll", uuid = libLLVM_jll_uuid, deps = UUID[Artifacts_uuid, Libdl_uuid]), + version_ranges = [ + (v"1.6.0", v"1.6.0") => v"11.0.1+2", + (v"1.6.1", v"1.6.7") => v"11.0.1+3", + (v"1.7.0", v"1.7.3") => v"12.0.1+4", + (v"1.8.0", v"1.8.4") => v"13.0.1+3", + (v"1.9.0", v"1.9.4") => v"14.0.6+3", + (v"1.10.0", v"1.10.10") => v"15.0.7+10", + (v"1.11.0", v"1.11.4") => v"16.0.6+4", + (v"1.11.5", v"1.11.5") => v"16.0.6+5", + (v"1.12.0", v"1.12.1") => v"18.1.7+5", + ], + ), + StdlibSegment( + base_info = StdlibBaseInfo(name = "libLLVM_jll", uuid = libLLVM_jll_uuid, deps = UUID[Zstd_jll_uuid, Artifacts_uuid, Zlib_jll_uuid, Libdl_uuid, CompilerSupportLibraries_jll_uuid]), + version_ranges = [ + (v"1.13.0", v"1.14.0") => v"20.1.8+0", + ], + ), + ], + libblastrampoline_jll_uuid => [ + StdlibSegment( + base_info = StdlibBaseInfo(name = "libblastrampoline_jll", uuid = libblastrampoline_jll_uuid, deps = UUID[OpenBLAS_jll_uuid, Artifacts_uuid, Libdl_uuid]), + version_ranges = [ + (v"1.7.0", v"1.7.3") => v"3.0.4+0", + (v"1.8.0", v"1.8.4") => v"5.1.1+0", + ], + ), + StdlibSegment( + base_info = StdlibBaseInfo(name = "libblastrampoline_jll", uuid = libblastrampoline_jll_uuid, deps = UUID[Artifacts_uuid, Libdl_uuid]), + version_ranges = [ + (v"1.9.0", v"1.9.0") => v"5.7.0+0", + (v"1.9.1", v"1.9.4") => v"5.8.0+0", + (v"1.10.0", v"1.10.3") => v"5.8.0+1", + (v"1.10.5", v"1.11.5") => v"5.11.0+0", + (v"1.12.0", v"1.12.0") => v"5.13.1+1", + (v"1.12.1", v"1.14.0") => v"5.15.0+0", + ], + ), + ], + nghttp2_jll_uuid => [ + StdlibSegment( + base_info = StdlibBaseInfo(name = "nghttp2_jll", uuid = nghttp2_jll_uuid, deps = UUID[Artifacts_uuid, Libdl_uuid]), + version_ranges = [ + (v"1.6.0", v"1.6.7") => v"1.41.0+0", + (v"1.7.0", v"1.7.3") => v"1.41.0+1", + (v"1.8.0", v"1.9.2") => v"1.48.0+0", + (v"1.9.4", v"1.10.10") => v"1.52.0+1", + (v"1.11.0", v"1.11.5") => v"1.59.0+0", + (v"1.12.0", v"1.12.1") => v"1.64.0+1", + ], + ), + StdlibSegment( + base_info = StdlibBaseInfo(name = "nghttp2_jll", uuid = nghttp2_jll_uuid, deps = UUID[Artifacts_uuid, Libdl_uuid, CompilerSupportLibraries_jll_uuid]), + version_ranges = [ + (v"1.13.0", v"1.14.0") => v"1.67.1+0", + ], + ), + ], + p7zip_jll_uuid => [ + StdlibSegment( + base_info = StdlibBaseInfo(name = "p7zip_jll", uuid = p7zip_jll_uuid, deps = UUID[Artifacts_uuid, Libdl_uuid]), + version_ranges = [ + (v"1.6.0", v"1.6.6") => v"16.2.1+0", + (v"1.6.7", v"1.6.7") => v"17.4.0+0", + (v"1.7.0", v"1.7.3") => v"16.2.1+1", + (v"1.8.0", v"1.9.4") => v"17.4.0+0", + (v"1.10.0", v"1.11.5") => v"17.4.0+2", + (v"1.12.0", v"1.12.1") => v"17.5.0+2", + (v"1.13.0", v"1.14.0") => v"17.6.0+0", + ], + ), + ] +) + +# Next, we also embed a list of stdlibs that must _always_ be treated as stdlibs, +# because they cannot be resolved in the registry; they have only ever existed within +# the Julia stdlib source tree, and because of that, trying to resolve them will fail. +const UNREGISTERED_STDLIBS = Dict{UUID, StdlibInfo}( + Base64_uuid => StdlibInfo( + "Base64", + Base64_uuid, + nothing, + UUID[], + UUID[], + ), + CRC32c_uuid => StdlibInfo( + "CRC32c", + CRC32c_uuid, + nothing, + UUID[], + UUID[], + ), + Dates_uuid => StdlibInfo( + "Dates", + Dates_uuid, + nothing, + UUID[Printf_uuid], + UUID[], + ), + Distributed_uuid => StdlibInfo( + "Distributed", + Distributed_uuid, + nothing, + UUID[Sockets_uuid, Random_uuid, Serialization_uuid], + UUID[], + ), + FileWatching_uuid => StdlibInfo( + "FileWatching", + FileWatching_uuid, + nothing, + UUID[], + UUID[], + ), + Future_uuid => StdlibInfo( + "Future", + Future_uuid, + nothing, + UUID[Random_uuid], + UUID[], + ), + InteractiveUtils_uuid => StdlibInfo( + "InteractiveUtils", + InteractiveUtils_uuid, + nothing, + UUID[Markdown_uuid], + UUID[], + ), + LibGit2_uuid => StdlibInfo( + "LibGit2", + LibGit2_uuid, + nothing, + UUID[], + UUID[], + ), + Libdl_uuid => StdlibInfo( + "Libdl", + Libdl_uuid, + nothing, + UUID[], + UUID[], + ), + LinearAlgebra_uuid => StdlibInfo( + "LinearAlgebra", + LinearAlgebra_uuid, + nothing, + UUID[Libdl_uuid], + UUID[], + ), + Logging_uuid => StdlibInfo( + "Logging", + Logging_uuid, + nothing, + UUID[], + UUID[], + ), + Markdown_uuid => StdlibInfo( + "Markdown", + Markdown_uuid, + nothing, + UUID[Base64_uuid], + UUID[], + ), + Mmap_uuid => StdlibInfo( + "Mmap", + Mmap_uuid, + nothing, + UUID[], + UUID[], + ), + Pkg_uuid => StdlibInfo( + "Pkg", + Pkg_uuid, + v"1.1.3", + UUID[REPL_uuid, LibGit2_uuid, Random_uuid, Dates_uuid, UUIDs_uuid, Markdown_uuid, Printf_uuid, SHA_uuid], + UUID[], + ), + Printf_uuid => StdlibInfo( + "Printf", + Printf_uuid, + nothing, + UUID[Unicode_uuid], + UUID[], + ), + Profile_uuid => StdlibInfo( + "Profile", + Profile_uuid, + nothing, + UUID[Printf_uuid], + UUID[], + ), + REPL_uuid => StdlibInfo( + "REPL", + REPL_uuid, + nothing, + UUID[Sockets_uuid, InteractiveUtils_uuid, Markdown_uuid], + UUID[], + ), + Random_uuid => StdlibInfo( + "Random", + Random_uuid, + nothing, + UUID[Serialization_uuid], + UUID[], + ), + Serialization_uuid => StdlibInfo( + "Serialization", + Serialization_uuid, + nothing, + UUID[], + UUID[], + ), + SharedArrays_uuid => StdlibInfo( + "SharedArrays", + SharedArrays_uuid, + nothing, + UUID[Distributed_uuid, Random_uuid, Serialization_uuid, Mmap_uuid], + UUID[], + ), + Sockets_uuid => StdlibInfo( + "Sockets", + Sockets_uuid, + nothing, + UUID[], + UUID[], + ), + SparseArrays_uuid => StdlibInfo( + "SparseArrays", + SparseArrays_uuid, + nothing, + UUID[LinearAlgebra_uuid, Random_uuid], + UUID[], + ), + SuiteSparse_uuid => StdlibInfo( + "SuiteSparse", + SuiteSparse_uuid, + nothing, + UUID[SparseArrays_uuid, LinearAlgebra_uuid, Libdl_uuid], + UUID[], + ), + Test_uuid => StdlibInfo( + "Test", + Test_uuid, + nothing, + UUID[Logging_uuid, Distributed_uuid, Random_uuid, InteractiveUtils_uuid], + UUID[], + ), + UUIDs_uuid => StdlibInfo( + "UUIDs", + UUIDs_uuid, + nothing, + UUID[Random_uuid, SHA_uuid], + UUID[], + ), + Unicode_uuid => StdlibInfo( + "Unicode", + Unicode_uuid, + nothing, + UUID[], + UUID[], + ) +) diff --git a/src/HistoricalStdlibs.jl b/src/HistoricalStdlibs.jl index 6867d1e832..90e82c24b8 100644 --- a/src/HistoricalStdlibs.jl +++ b/src/HistoricalStdlibs.jl @@ -11,17 +11,89 @@ struct StdlibInfo weakdeps::Vector{UUID} end +# Base info struct for stdlib segments (excludes version) +Base.@kwdef struct StdlibBaseInfo + name::String + uuid::UUID + deps::Vector{UUID} = UUID[] + weakdeps::Vector{UUID} = UUID[] +end + +# Segment struct that combines base info with version ranges +Base.@kwdef struct StdlibSegment + base_info::StdlibBaseInfo + version_ranges::Vector{Pair{Tuple{VersionNumber, VersionNumber}, Union{Nothing, VersionNumber}}} +end + const DictStdLibs = Dict{UUID, StdlibInfo} -# Julia standard libraries with duplicate entries removed so as to store only the -# first release in a set of releases that all contain the same set of stdlibs. -# -# This needs to be populated via HistoricalStdlibVersions.jl by consumers -# (e.g. BinaryBuilder) that want to use the "resolve things as if it were a -# different Julia version than what is currently running" feature. +# Load the compressed version map data structure +include(joinpath(@__DIR__, "..", "data", "version_map_compressed.jl")) + +# Populated by HistoricalStdlibVersions.jl, used if we have a version later than we know about const STDLIBS_BY_VERSION = Pair{VersionNumber, DictStdLibs}[] -# This is a list of stdlibs that must _always_ be treated as stdlibs, -# because they cannot be resolved in the registry; they have only ever existed within -# the Julia stdlib source tree, and because of that, trying to resolve them will fail. -const UNREGISTERED_STDLIBS = DictStdLibs() +""" + query_stdlib_segments(julia_version::VersionNumber) -> DictStdLibs + +Query the compressed stdlib segments to build a dictionary of stdlib info +for the given Julia version. Returns a Dict{UUID, StdlibInfo} containing +all stdlibs available for that Julia version. +""" +function query_stdlib_segments(julia_version::VersionNumber) + result = DictStdLibs() + + # Normalize the julia_version to just major.minor.patch + jv = VersionNumber(julia_version.major, julia_version.minor, julia_version.patch) + + # Iterate through all stdlib UUIDs in the segments + for (uuid, segments) in STDLIB_SEGMENTS + # For each stdlib, find the segment and version range that matches + for segment in segments + for (range, pkg_version) in segment.version_ranges + min_v, max_v = range + # Check if julia_version falls within this range + if jv >= min_v && jv <= max_v + # Found the matching range, create StdlibInfo + result[uuid] = StdlibInfo( + segment.base_info.name, + segment.base_info.uuid, + pkg_version, + segment.base_info.deps, + segment.base_info.weakdeps + ) + @goto next_stdlib + end + end + end + @label next_stdlib + end + + return result +end + +""" + version_covered_by_segments(julia_version::VersionNumber) -> Bool + +Check if the given Julia version is covered by at least one stdlib in STDLIB_SEGMENTS. +Returns false if the version is outside all recorded ranges, indicating we should +fall back to STDLIBS_BY_VERSION. +""" +function version_covered_by_segments(julia_version::VersionNumber) + # Normalize the julia_version to just major.minor.patch + jv = VersionNumber(julia_version.major, julia_version.minor, julia_version.patch) + + # Check if any stdlib has a range that covers this version + for (uuid, segments) in STDLIB_SEGMENTS + for segment in segments + for (range, pkg_version) in segment.version_ranges + min_v, max_v = range + if jv >= min_v && jv <= max_v + return true + end + end + end + end + + return false +end diff --git a/src/Operations.jl b/src/Operations.jl index 84378fbc30..bc876e4f67 100644 --- a/src/Operations.jl +++ b/src/Operations.jl @@ -382,12 +382,12 @@ function fixups_from_projectfile!(ctx::Context) for pkg in values(env.manifest) if ctx.julia_version !== VERSION && is_stdlib(pkg.uuid, ctx.julia_version) # Special handling for non-current julia_version resolving given the source for historical stdlibs - # isn't available at this stage as Pkg thinks it should not be needed, so rely on STDLIBS_BY_VERSION + # isn't available at this stage as Pkg thinks it should not be needed, so query stdlib info on-demand stdlibs = Types.get_last_stdlibs(ctx.julia_version) p = stdlibs[pkg.uuid] pkg.weakdeps = Dict{String, Base.UUID}(stdlibs[uuid].name => uuid for uuid in p.weakdeps) - # pkg.exts = p.exts # TODO: STDLIBS_BY_VERSION doesn't record this - # pkg.entryfile = p.entryfile # TODO: STDLIBS_BY_VERSION doesn't record this + # pkg.exts = p.exts # TODO: stdlib data doesn't record this + # pkg.entryfile = p.entryfile # TODO: stdlib data doesn't record this for (name, _) in pkg.weakdeps if !(name in p.deps) delete!(pkg.deps, name) diff --git a/src/Types.jl b/src/Types.jl index ba783d0d4d..451cada358 100644 --- a/src/Types.jl +++ b/src/Types.jl @@ -566,20 +566,26 @@ function is_or_was_stdlib(uuid::UUID, julia_version::Union{VersionNumber, Nothin end -function historical_stdlibs_check() - return if isempty(STDLIBS_BY_VERSION) - pkgerror("If you want to set `julia_version`, you must first populate the `STDLIBS_BY_VERSION` global constant. Try `using HistoricalStdlibVersions`") - end -end - -# Find the entry in `STDLIBS_BY_VERSION` -# that corresponds to the requested version, and use that. -# If we can't find one, defaults to `UNREGISTERED_STDLIBS` +# Query stdlib info for a specific Julia version. +# Uses the compressed STDLIB_SEGMENTS data structure if available, +# otherwise falls back to STDLIBS_BY_VERSION for backwards compatibility. function get_last_stdlibs(julia_version::VersionNumber; use_historical_for_current_version = false) if !use_historical_for_current_version && julia_version == VERSION return stdlib_infos() end - historical_stdlibs_check() + + # Use the new compressed data structure if this version is covered + if version_covered_by_segments(julia_version) + stdlibs = query_stdlib_segments(julia_version) + # Merge with unregistered stdlibs + return merge(UNREGISTERED_STDLIBS, stdlibs) + end + + # Fall back to old STDLIBS_BY_VERSION logic for versions outside the covered range + if isempty(STDLIBS_BY_VERSION) + pkgerror("If you want to set `julia_version`, you must first populate the `STDLIBS_BY_VERSION` global constant. Try `using HistoricalStdlibVersions`") + end + last_stdlibs = UNREGISTERED_STDLIBS last_version = nothing @@ -604,7 +610,6 @@ end # stdlibs as normal packages so that we get the latest versions of everything, ignoring # julia compat. So we set the list of stdlibs to that of only the unregistered stdlibs. function get_last_stdlibs(::Nothing) - historical_stdlibs_check() return UNREGISTERED_STDLIBS end @@ -634,7 +639,6 @@ function stdlib_version(uuid::UUID, julia_version::Union{VersionNumber, Nothing} end function is_unregistered_stdlib(uuid::UUID) - historical_stdlibs_check() return haskey(UNREGISTERED_STDLIBS, uuid) end diff --git a/test/Project.toml b/test/Project.toml index 4760acba31..546ac30bdb 100644 --- a/test/Project.toml +++ b/test/Project.toml @@ -1,7 +1,6 @@ [deps] Aqua = "4c88cf16-eb10-579e-8560-4a9242c79595" Dates = "ade2ca70-3891-5945-98fb-dc099432e06a" -HistoricalStdlibVersions = "6df8b67a-e8a0-4029-b4b7-ac196fe72102" LibGit2 = "76f85450-5226-5b5a-8eaa-529ad045b433" Logging = "56ddb016-857b-54e1-b83d-db4d58db5568" Markdown = "d6f4376e-aef5-505a-96c1-9c027394607a" @@ -17,4 +16,3 @@ UUIDs = "cf7118a7-6976-5b1a-9a39-7adc72f591a4" [compat] Aqua = "0.8.10" -HistoricalStdlibVersions = "2" diff --git a/test/historical_stdlib_version.jl b/test/historical_stdlib_version.jl index 3f4967737b..5e57b127ee 100644 --- a/test/historical_stdlib_version.jl +++ b/test/historical_stdlib_version.jl @@ -6,15 +6,10 @@ using Base.BinaryPlatforms: HostPlatform, Platform, platforms_match using Test using TOML -ENV["HISTORICAL_STDLIB_VERSIONS_AUTO_REGISTER"] = "false" -using HistoricalStdlibVersions - include("utils.jl") using .Utils @testset "is_stdlib() across versions" begin - HistoricalStdlibVersions.register!() - networkoptions_uuid = Base.UUID("ca575930-c2e3-43a9-ace4-1e988b2c1908") pkg_uuid = Base.UUID("44cfe95a-1eb2-52ea-b672-e2afdf69b78f") mbedtls_jll_uuid = Base.UUID("c8ffd9c3-330d-5841-b78e-0817d7145fa1") @@ -44,17 +39,13 @@ using .Utils @test is_stdlib(mbedtls_jll_uuid, v"1.11") @test is_stdlib(mbedtls_jll_uuid, v"1.10") - HistoricalStdlibVersions.unregister!() # Test that we can probe for stdlibs for the current version with no STDLIBS_BY_VERSION, # but that we throw a PkgError if we ask for a particular julia version. @test is_stdlib(networkoptions_uuid) - @test_throws Pkg.Types.PkgError is_stdlib(networkoptions_uuid, v"1.6") end @testset "Pkg.add() with julia_version" begin - HistoricalStdlibVersions.register!() - # A package with artifacts that went from normal package -> stdlib gmp_jll_uuid = "781609d7-10c4-51f6-84f2-b8444358ff6d" # A package that has always only ever been an stdlib @@ -153,12 +144,9 @@ end p7zip_jll_uuid = Base.UUID("3f19e933-33d8-53b3-aaab-bd5110c3b7a0") @test !("Pkg" in keys(Pkg.dependencies()[p7zip_jll_uuid].dependencies)) end - - HistoricalStdlibVersions.unregister!() end @testset "Resolving for another version of Julia" begin - HistoricalStdlibVersions.register!() temp_pkg_dir() do dir function find_by_name(versions, name) idx = findfirst(p -> p.name == name, versions) @@ -207,7 +195,6 @@ end @test mpfr !== nothing @test mpfr.version.major == 4 && mpfr.version.minor == 0 end - HistoricalStdlibVersions.unregister!() end HelloWorldC_jll_UUID = Base.UUID("dca1746e-5efc-54fc-8249-22745bc95a49") @@ -218,7 +205,6 @@ libblastrampoline_jll_UUID = Base.UUID("8e850b90-86db-534c-a0d3-1478176c7d93") isolate(loaded_depot = true) do @testset "Elliot and Mosè's mini Pkg test suite" begin # https://github.com/JuliaPackaging/JLLPrefixes.jl/issues/6 - HistoricalStdlibVersions.register!() @testset "Standard add" begin Pkg.activate(temp = true) # Standard add (non-stdlib, flexible version) @@ -350,7 +336,6 @@ isolate(loaded_depot = true) do end end end - HistoricalStdlibVersions.unregister!() end end diff --git a/test/runtests.jl b/test/runtests.jl index 358ef74b6e..b4e3206b1f 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -67,11 +67,7 @@ module PkgTestsInner "stdlib_compat.jl", ] - # Only test these if the test deps are available (they aren't typically via `Base.runtests`) - HSV_pkgid = Base.PkgId(Base.UUID("6df8b67a-e8a0-4029-b4b7-ac196fe72102"), "HistoricalStdlibVersions") - if Base.locate_package(HSV_pkgid) !== nothing - push!(test_files, "historical_stdlib_version.jl") - end + push!(test_files, "historical_stdlib_version.jl") Aqua_pkgid = Base.PkgId(Base.UUID("4c88cf16-eb10-579e-8560-4a9242c79595"), "Aqua") if Base.locate_package(Aqua_pkgid) !== nothing push!(test_files, "aqua.jl") From 6c69e93627f0d2adf5cc71868fc7bfffa5f91e13 Mon Sep 17 00:00:00 2001 From: KristofferC Date: Fri, 7 Nov 2025 16:51:11 +0100 Subject: [PATCH 2/2] aint nobody need 0.7... --- test/historical_stdlib_version.jl | 2 -- 1 file changed, 2 deletions(-) diff --git a/test/historical_stdlib_version.jl b/test/historical_stdlib_version.jl index 5e57b127ee..13c6971486 100644 --- a/test/historical_stdlib_version.jl +++ b/test/historical_stdlib_version.jl @@ -19,14 +19,12 @@ using .Utils @test is_stdlib(networkoptions_uuid, v"1.6") @test !is_stdlib(networkoptions_uuid, v"1.5") @test !is_stdlib(networkoptions_uuid, v"1.0.0") - @test !is_stdlib(networkoptions_uuid, v"0.7") @test !is_stdlib(networkoptions_uuid, nothing) # Pkg is an unregistered stdlib and has always been an stdlib @test is_stdlib(pkg_uuid) @test is_stdlib(pkg_uuid, v"1.0") @test is_stdlib(pkg_uuid, v"1.6") - @test is_stdlib(pkg_uuid, v"0.7") @test is_stdlib(pkg_uuid, nothing) # We can't serve information for unknown major.minor versions (patches can not match)