22
22
23
23
@testset " Dependencies" begin
24
24
name = " Foo_jll"
25
- dep = Dependency (PackageSpec (; name = name); platforms= supported_platforms (; experimental= true , exclude= ! Sys. isapple))
26
- @test Dependency (name) ≈ dep
25
+ dep = Dependency (PackageSpec (; name = name); compat = " 0 " , platforms= supported_platforms (; experimental= true , exclude= ! Sys. isapple))
26
+ @test Dependency (name; compat = " 0 " ) ≈ dep
27
27
@test ! is_host_dependency (dep)
28
28
@test is_target_dependency (dep)
29
29
@test is_build_dependency (dep)
30
30
@test is_runtime_dependency (dep)
31
31
@test ! is_top_level_dependency (dep)
32
32
@test getname (dep) == name
33
33
@test getname (PackageSpec (; name = name)) == name
34
- @test getpkg (dep) == PackageSpec (; name = name)
35
- @test getcompat (dep) == " "
34
+ @test getpkg (dep) == PackageSpec (; name = name, version = PKG_VERSIONS . VersionSpec ( v " 0 " ) )
35
+ @test getcompat (dep) == " 0 "
36
36
37
37
build_version = v " 1.2.3"
38
- dep_buildver = Dependency (PackageSpec (; name = name), build_version)
39
- @test Dependency (name, build_version) == dep_buildver
38
+ dep_buildver = Dependency (PackageSpec (; name = name), build_version; compat = " ~1.2 " )
39
+ @test Dependency (name, build_version; compat = " ~1.2 " ) == dep_buildver
40
40
@test getname (dep_buildver) == name
41
41
@test getpkg (dep_buildver) == PackageSpec (; name = name, version = PKG_VERSIONS. VersionSpec (build_version))
42
- @test getcompat (dep_buildver) == " "
42
+ @test getcompat (dep_buildver) == " ~1.2 "
43
43
44
- # the same but with compat info
44
+ # the same but with platforms argument
45
45
dep_buildver = Dependency (PackageSpec (; name = name), build_version; compat = " ~1.2" , platforms= [Platform (" x86_64" , " linux" ; cxxstring_abi= " cxx11" )])
46
- @test Dependency (name, build_version) ≈ dep_buildver
46
+ @test Dependency (name, build_version; compat = " ~1.2 " ) ≈ dep_buildver
47
47
@test getname (dep_buildver) == name
48
48
@test getpkg (dep_buildver) == PackageSpec (; name = name, version = PKG_VERSIONS. VersionSpec (build_version))
49
49
@test getcompat (dep_buildver) == " ~1.2"
50
50
51
51
# the same but only with compat specifier
52
52
dep_compat = Dependency (PackageSpec (; name); compat = " 2, ~$(build_version) " )
53
- @test Dependency (name, build_version) ≈ dep_compat
53
+ @test Dependency (name, build_version; compat = " 2, ~ $(build_version) " ) ≈ dep_compat
54
54
@test getname (dep_compat) == name
55
55
@test getpkg (dep_compat) == PackageSpec (; name, version = PKG_VERSIONS. VersionSpec (build_version))
56
56
@test getcompat (dep_compat) == " 2, ~$(build_version) "
57
57
58
58
# if build_version and compat don't match, an error should be thrown
59
59
@test_throws ArgumentError Dependency (PackageSpec (; name = name), build_version; compat = " 2.0" )
60
60
61
+ # Runtime dependencies without compat bounds should throw an error
62
+ @test_throws ArgumentError Dependency (name)
63
+ @test_throws ArgumentError RuntimeDependency (name)
64
+
61
65
run_dep = RuntimeDependency (PackageSpec (; name); compat= " 3.14" )
62
- @test RuntimeDependency (name) ≈ run_dep
66
+ @test RuntimeDependency (name; compat = " 3.14 " ) ≈ run_dep
63
67
@test ! is_host_dependency (run_dep)
64
68
@test is_target_dependency (run_dep)
65
69
@test ! is_build_dependency (run_dep)
72
76
# We should be able to convert a `Vector{RuntimeDependency}` to `Vector{Dependency}`
73
77
@test Dependency[RuntimeDependency (name; compat= " ~1.8" , platforms= [Platform (" aarch64" , " macos" ; cxxstring_abi= " cxx03" )])] ==
74
78
[Dependency (name; compat= " ~1.8" , platforms= [Platform (" aarch64" , " macos" ; cxxstring_abi= " cxx03" )])]
75
- @test @test_logs ((:warn , r" was defined as top-level" ), Dependency[RuntimeDependency (name; top_level= true )]) ==
76
- [@test_logs ((:warn , r" was defined as top-level" ), Dependency (name; top_level= true ))]
79
+ @test @test_logs ((:warn , r" was defined as top-level" ), Dependency[RuntimeDependency (name; compat = " 1 " , top_level= true )]) ==
80
+ [@test_logs ((:warn , r" was defined as top-level" ), Dependency (name; compat = " 1 " , top_level= true ))]
77
81
# If the version in the PackageSpec and the compat don't match, an error should be thrown
78
82
@test_throws ArgumentError RuntimeDependency (PackageSpec (; name, version= v " 1.2.3" ); compat = " 2.0" )
79
83
@@ -102,12 +106,12 @@ end
102
106
@test getpkg (host_dep) == PackageSpec (; name = host_name)
103
107
104
108
top_level_name = " MPIPreferences"
105
- @test_logs (:warn , r" deprecated" ) @test_throws ArgumentError Dependency (PackageSpec (; name= top_level_name); platforms= supported_platforms (; exclude= ! Sys. isapple), top_level= true )
106
- @test_throws ArgumentError RuntimeDependency (PackageSpec (; name= top_level_name); platforms= supported_platforms (; exclude= ! Sys. isapple), top_level= true )
109
+ @test_logs (:warn , r" deprecated" ) @test_throws ArgumentError Dependency (PackageSpec (; name= top_level_name); compat = " 0 " , platforms= supported_platforms (; exclude= ! Sys. isapple), top_level= true )
110
+ @test_throws ArgumentError RuntimeDependency (PackageSpec (; name= top_level_name); compat = " 1 " , platforms= supported_platforms (; exclude= ! Sys. isapple), top_level= true )
107
111
108
- top_level_dep = @test_logs (:warn , r" deprecated" ) Dependency (PackageSpec (; name = top_level_name); top_level= true )
112
+ top_level_dep = @test_logs (:warn , r" deprecated" ) Dependency (PackageSpec (; name = top_level_name); compat = " 1 " , top_level= true )
109
113
@test is_top_level_dependency (top_level_dep)
110
- top_level_dep = RuntimeDependency (PackageSpec (; name = top_level_name); top_level= true )
114
+ top_level_dep = RuntimeDependency (PackageSpec (; name = top_level_name); compat = " 1 " , top_level= true )
111
115
@test is_top_level_dependency (top_level_dep)
112
116
113
117
@testset " Filter dependencies by platform" begin
117
121
118
122
@testset " JSON (de)serialization" begin
119
123
jdep = JSON. lower (dep)
120
- @test jdep == Dict (" type" => " dependency" , " name" => name, " uuid" => nothing , " compat" => " " , " version-major" => 0x0 , " version-minor" => 0x0 , " version-patch" => 0x0 , " platforms" => [" x86_64-apple-darwin" , " aarch64-apple-darwin" ], " top_level" => false )
124
+ @test jdep == Dict (" type" => " dependency" , " name" => name, " uuid" => nothing , " compat" => " 0 " , " version-major" => 0x0 , " version-minor" => 0x0 , " version-patch" => 0x0 , " platforms" => [" x86_64-apple-darwin" , " aarch64-apple-darwin" ], " top_level" => false )
121
125
@test dependencify (jdep) == dep
122
126
123
127
jrun_dep = JSON. lower (run_dep)
@@ -137,14 +141,14 @@ end
137
141
@test jhost_dep == Dict (" type" => " hostdependency" , " name" => host_name, " uuid" => nothing , " compat" => " " , " version-major" => 0x0 , " version-minor" => 0x0 , " version-patch" => 0x0 , " platforms" => [" any" ], " top_level" => false )
138
142
@test dependencify (jhost_dep) == host_dep
139
143
140
- full_dep = Dependency (PackageSpec (; name = " Baz_jll" , uuid = " 00000000-1111-2222-3333-444444444444" , version = PKG_VERSIONS. VersionSpec (" 3.1.4" )))
144
+ full_dep = Dependency (PackageSpec (; name = " Baz_jll" , uuid = " 00000000-1111-2222-3333-444444444444" , version = PKG_VERSIONS. VersionSpec (" 3.1.4" )); compat = " 3 " )
141
145
jfull_dep = JSON. lower (full_dep)
142
- @test jfull_dep == Dict (" type" => " dependency" , " name" => " Baz_jll" , " uuid" => " 00000000-1111-2222-3333-444444444444" , " compat" => " " , " version-major" => 0x3 , " version-minor" => 0x1 , " version-patch" => 0x4 , " platforms" => [" any" ], " top_level" => false )
146
+ @test jfull_dep == Dict (" type" => " dependency" , " name" => " Baz_jll" , " uuid" => " 00000000-1111-2222-3333-444444444444" , " compat" => " 3 " , " version-major" => 0x3 , " version-minor" => 0x1 , " version-patch" => 0x4 , " platforms" => [" any" ], " top_level" => false )
143
147
@test dependencify (jfull_dep) == full_dep
144
148
@test_throws ErrorException dependencify (Dict (" type" => " git" ))
145
149
146
150
jtop_level_dep = JSON. lower (top_level_dep)
147
- @test jtop_level_dep == Dict (" type" => " runtimedependency" , " name" => " MPIPreferences" , " uuid" => nothing , " compat" => " " , " version-major" => 0x0 , " version-minor" => 0x0 , " version-patch" => 0x0 , " platforms" => [" any" ], " top_level" => true )
151
+ @test jtop_level_dep == Dict (" type" => " runtimedependency" , " name" => " MPIPreferences" , " uuid" => nothing , " compat" => " 1 " , " version-major" => 0x0 , " version-minor" => 0x0 , " version-patch" => 0x0 , " platforms" => [" any" ], " top_level" => true )
148
152
@test dependencify (jtop_level_dep) == top_level_dep
149
153
end
150
154
164
168
with_temp_project () do dir
165
169
prefix = Prefix (dir)
166
170
dependencies = [
167
- Dependency (" Zlib_jll" )
171
+ Dependency (" Zlib_jll" ; compat = " 1.2.12 " )
168
172
]
169
173
platform = HostPlatform ()
170
174
ap = @test_logs setup_dependencies (prefix, getpkg .(dependencies), platform)
199
203
with_temp_project () do dir
200
204
prefix = Prefix (dir)
201
205
dependencies = [
202
- Dependency (" LibCURL_jll" )
206
+ Dependency (" LibCURL_jll" ; compat = " 7, 8 " )
203
207
]
204
208
platform = HostPlatform ()
205
209
ap = @test_logs setup_dependencies (prefix, getpkg .(dependencies), platform)
222
226
with_temp_project () do dir
223
227
prefix = Prefix (dir)
224
228
dependencies = [
225
- Dependency (" LibOSXUnwind_jll" )
229
+ Dependency (" LibOSXUnwind_jll" ; compat = " 0.0.7 " )
226
230
]
227
231
platform = Platform (" i686" , " linux" ; libc= " musl" )
228
232
@test_logs (:warn , r" Dependency LibOSXUnwind_jll does not have a mapping for artifact LibOSXUnwind for platform i686-linux-musl" ) begin
234
238
# Test setup of dependencies that depend on the Julia version
235
239
with_temp_project () do dir
236
240
prefix = Prefix (dir)
237
- dependencies = [Dependency (" GMP_jll" )]
241
+ dependencies = [Dependency (" GMP_jll" ; compat = " 6.1.2 " )]
238
242
platform = Platform (" x86_64" , " linux" ; julia_version= v " 1.5" )
239
243
240
244
# Test that a particular version of GMP is installed
245
249
# Next, test on Julia v1.6
246
250
with_temp_project () do dir
247
251
prefix = Prefix (dir)
248
- dependencies = [Dependency (" GMP_jll" )]
252
+ dependencies = [Dependency (" GMP_jll" ; compat = " 6.2.1 " )]
249
253
platform = Platform (" x86_64" , " linux" ; julia_version= v " 1.6" )
250
254
251
255
# Test that a particular version of GMP is installed
257
261
with_temp_project () do dir
258
262
prefix = Prefix (dir)
259
263
dependencies = [
260
- Dependency (" GMP_jll" , v " 6.1.2" ),
261
- Dependency (" MPFR_jll" , v " 4.1.0" ),
264
+ Dependency (" GMP_jll" ; compat = " 6.1.2" ),
265
+ Dependency (" MPFR_jll" ; compat = " 4.1.0" ),
262
266
]
263
267
264
268
# Test that this is not instantiatable with either Julia v1.5 or v1.6
@@ -348,30 +352,16 @@ end
348
352
end
349
353
350
354
@testset " resolve_jlls" begin
351
- # Deps given by name::String
352
- dependencies = [" OpenSSL_jll" ,]
353
- @test_logs (:warn , r" use Dependency instead" ) begin
354
- truefalse, resolved_deps = resolve_jlls (dependencies)
355
- @test truefalse
356
- @test all (x-> getpkg (x). uuid != = nothing , resolved_deps)
357
- end
358
- # Deps given by name::PackageSpec
359
- @test_logs (:warn , r" use Dependency instead" ) begin
360
- dependencies = [PackageSpec (name= " OpenSSL_jll" ),]
361
- truefalse, resolved_deps = resolve_jlls (dependencies)
362
- @test truefalse
363
- @test all (x-> getpkg (x). uuid != = nothing , resolved_deps)
364
- end
365
355
# Deps given by (name,uuid)::PackageSpec
366
- dependencies = [Dependency (PackageSpec (name= " OpenSSL_jll" , uuid= " 458c3c95-2e84-50aa-8efc-19380b2a3a95" )),]
356
+ dependencies = [Dependency (PackageSpec (name= " OpenSSL_jll" , uuid= " 458c3c95-2e84-50aa-8efc-19380b2a3a95" ); compat = " 3.0.3 " ),]
367
357
truefalse, resolved_deps = resolve_jlls (dependencies)
368
358
@test truefalse
369
359
@test all (x-> getpkg (x). uuid != = nothing , resolved_deps)
370
360
# Deps given by combination of name::String, name::PackageSpec and (name,uuid)::PackageSpec
371
361
dependencies = [
372
- Dependency (" Zlib_jll" ),
373
- Dependency (PackageSpec (name= " Bzip2_jll" )),
374
- Dependency (PackageSpec (name= " OpenSSL_jll" , uuid= " 458c3c95-2e84-50aa-8efc-19380b2a3a95" )),
362
+ Dependency (" Zlib_jll" ; compat = " 1.2.13 " ),
363
+ Dependency (PackageSpec (name= " Bzip2_jll" ); compat = " 1.0.8 " ),
364
+ Dependency (PackageSpec (name= " OpenSSL_jll" , uuid= " 458c3c95-2e84-50aa-8efc-19380b2a3a95" ); compat = " 3.0.3 " ),
375
365
]
376
366
truefalse, resolved_deps = resolve_jlls (dependencies)
377
367
@test truefalse
0 commit comments