diff --git a/src/registry_testing.jl b/src/registry_testing.jl index 14dd372a..e27409f6 100644 --- a/src/registry_testing.jl +++ b/src/registry_testing.jl @@ -206,9 +206,6 @@ function test(path=pwd(); registry_deps::Vector{<:AbstractString}=String[]) # Compat.toml testing compatfile = abspath(data["path"], "Compat.toml") if isfile(compatfile) - # If Compat.toml exists, Deps.toml must exist. - Test.@test isfile(depsfile) - compat = Pkg.TOML.parsefile(compatfile) # Test that all names with compat is a dependency compatnames = Set{String}(x for (_, d) in compat for (x, _) in d) @@ -244,6 +241,10 @@ function test(path=pwd(); registry_deps::Vector{<:AbstractString}=String[]) # https://github.com/JuliaRegistries/RegistryCI.jl/issues/522 # For every version, each compat entry has a corresponding deps entry. + # + # Note: it is legal for a package to have Compat.toml but not have + # Deps.toml. Specifically, this is legal if (and only if) the package + # does not have any dependencies, and does have a compat entry for `julia`. if isfile(compatfile) compat_uncompressed = RegistryTools.Compress.load(compatfile) deps_uncompressed = isfile(depsfile) ? RegistryTools.Compress.load(depsfile) : Dict() @@ -253,7 +254,13 @@ function test(path=pwd(); registry_deps::Vector{<:AbstractString}=String[]) Test.@test compat_for_this_v isa AbstractDict Test.@test deps_for_this_v isa AbstractDict for compat_pkgname in keys(compat_for_this_v) - Test.@test haskey(deps_for_this_v, compat_pkgname) + # If the package has a compat entry for `julia`, there + # is no need to have `julia` listed in Deps.toml. + # However, every other compat entry needs to be listed + # in Deps.toml. + if compat_pkgname != julia" + Test.@test haskey(deps_for_this_v, compat_pkgname) + end end end end