Package evaluation of ProjectAssigner on Julia 1.11.4 (a71dd056e0*) started at 2025-04-08T15:08:38.448 ################################################################################ # Set-up # Installing PkgEval dependencies (TestEnv)... Set-up completed after 8.77s ################################################################################ # Installation # Installing ProjectAssigner... Resolving package versions... Updating `~/.julia/environments/v1.11/Project.toml` [40c276f3] + ProjectAssigner v0.1.7 Updating `~/.julia/environments/v1.11/Manifest.toml` [6e4b80f9] + BenchmarkTools v1.6.0 [336ed68f] + CSV v0.10.15 [523fee87] + CodecBzip2 v0.8.5 [944b1d66] + CodecZlib v0.7.8 [bbf7d656] + CommonSubexpressions v0.3.1 [34da2185] + Compat v4.16.0 [a8cc5b0e] + Crayons v4.1.1 [9a962f9c] + DataAPI v1.16.0 [a93c6f00] + DataFrames v1.7.0 [864edb3b] + DataStructures v0.18.22 [e2d170a0] + DataValueInterfaces v1.0.0 [163ba53b] + DiffResults v1.1.0 [b552c78f] + DiffRules v1.15.1 [ffbed154] + DocStringExtensions v0.9.4 [48062228] + FilePathsBase v0.9.24 [f6369f11] + ForwardDiff v1.0.1 [87dc4568] + HiGHS v1.15.0 [842dd82b] + InlineStrings v1.4.3 [41ab1584] + InvertedIndices v1.3.1 [92d709cd] + IrrationalConstants v0.2.4 [82899510] + IteratorInterfaceExtensions v1.0.0 [692b3bcd] + JLLWrappers v1.7.0 [682c06a0] + JSON v0.21.4 [0f8b85d8] + JSON3 v1.14.2 [4076af6c] + JuMP v1.25.0 [b964fa9f] + LaTeXStrings v1.4.0 [2ab3a3ac] + LogExpFunctions v0.3.29 [1914dd2f] + MacroTools v0.5.15 [b8f27783] + MathOptInterface v1.38.1 [e1d29d7a] + Missings v1.2.0 [d8a4904e] + MutableArithmetics v1.6.4 [77ba4419] + NaNMath v1.1.3 [bac558e1] + OrderedCollections v1.8.0 [69de0a69] + Parsers v2.8.1 [2dfb63ee] + PooledArrays v1.4.3 ⌅ [aea7be01] + PrecompileTools v1.2.1 [21216c6a] + Preferences v1.4.3 [08abe8d2] + PrettyTables v2.4.0 [40c276f3] + ProjectAssigner v0.1.7 [189a3867] + Reexport v1.2.2 [91c51154] + SentinelArrays v1.4.8 [a2af1166] + SortingAlgorithms v1.2.1 [276daf66] + SpecialFunctions v2.5.0 [1e83bf80] + StaticArraysCore v1.4.3 [10745b16] + Statistics v1.11.1 [892a3eda] + StringManipulation v0.4.1 [856f2bd8] + StructTypes v1.11.0 [3783bdb8] + TableTraits v1.0.1 [bd369af6] + Tables v1.12.0 [3bb67fe8] + TranscodingStreams v0.11.3 [ea10d353] + WeakRefStrings v1.4.2 [76eceee3] + WorkerUtilities v1.6.1 [6e34b625] + Bzip2_jll v1.0.9+0 [8fd58aa0] + HiGHS_jll v1.10.0+0 [efe28fd5] + OpenSpecFun_jll v0.5.6+0 [56f22d72] + Artifacts v1.11.0 [2a0f44e3] + Base64 v1.11.0 [ade2ca70] + Dates v1.11.0 [9fa8497b] + Future v1.11.0 [b77e0a4c] + InteractiveUtils v1.11.0 [8f399da3] + Libdl v1.11.0 [37e2e46d] + LinearAlgebra v1.11.0 [56ddb016] + Logging v1.11.0 [d6f4376e] + Markdown v1.11.0 [a63ad114] + Mmap v1.11.0 [de0858da] + Printf v1.11.0 [9abbd945] + Profile v1.11.0 [9a3f8284] + Random v1.11.0 [ea8e919c] + SHA v0.7.0 [9e88b42a] + Serialization v1.11.0 [2f01184e] + SparseArrays v1.11.0 [fa267f1f] + TOML v1.0.3 [8dfed614] + Test v1.11.0 [cf7118a7] + UUIDs v1.11.0 [4ec0a83e] + Unicode v1.11.0 [e66e0078] + CompilerSupportLibraries_jll v1.1.1+0 [4536629a] + OpenBLAS_jll v0.3.27+1 [05823500] + OpenLibm_jll v0.8.5+0 [bea87d4a] + SuiteSparse_jll v7.7.0+0 [83775a58] + Zlib_jll v1.2.13+1 [8e850b90] + libblastrampoline_jll v5.11.0+0 Info Packages marked with ⌅ have new versions available but compatibility constraints restrict them from upgrading. To see why use `status --outdated -m` Installation completed after 4.57s ################################################################################ # Precompilation # Precompiling PkgEval dependencies... Precompiling package dependencies... Precompilation completed after 226.22s ################################################################################ # Testing # Testing ProjectAssigner Status `/tmp/jl_NdGIPW/Project.toml` [336ed68f] CSV v0.10.15 [a93c6f00] DataFrames v1.7.0 [87dc4568] HiGHS v1.15.0 [4076af6c] JuMP v1.25.0 [40c276f3] ProjectAssigner v0.1.7 [8dfed614] Test v1.11.0 Status `/tmp/jl_NdGIPW/Manifest.toml` [6e4b80f9] BenchmarkTools v1.6.0 [336ed68f] CSV v0.10.15 [523fee87] CodecBzip2 v0.8.5 [944b1d66] CodecZlib v0.7.8 [bbf7d656] CommonSubexpressions v0.3.1 [34da2185] Compat v4.16.0 [a8cc5b0e] Crayons v4.1.1 [9a962f9c] DataAPI v1.16.0 [a93c6f00] DataFrames v1.7.0 [864edb3b] DataStructures v0.18.22 [e2d170a0] DataValueInterfaces v1.0.0 [163ba53b] DiffResults v1.1.0 [b552c78f] DiffRules v1.15.1 [ffbed154] DocStringExtensions v0.9.4 [48062228] FilePathsBase v0.9.24 [f6369f11] ForwardDiff v1.0.1 [87dc4568] HiGHS v1.15.0 [842dd82b] InlineStrings v1.4.3 [41ab1584] InvertedIndices v1.3.1 [92d709cd] IrrationalConstants v0.2.4 [82899510] IteratorInterfaceExtensions v1.0.0 [692b3bcd] JLLWrappers v1.7.0 [682c06a0] JSON v0.21.4 [0f8b85d8] JSON3 v1.14.2 [4076af6c] JuMP v1.25.0 [b964fa9f] LaTeXStrings v1.4.0 [2ab3a3ac] LogExpFunctions v0.3.29 [1914dd2f] MacroTools v0.5.15 [b8f27783] MathOptInterface v1.38.1 [e1d29d7a] Missings v1.2.0 [d8a4904e] MutableArithmetics v1.6.4 [77ba4419] NaNMath v1.1.3 [bac558e1] OrderedCollections v1.8.0 [69de0a69] Parsers v2.8.1 [2dfb63ee] PooledArrays v1.4.3 ⌅ [aea7be01] PrecompileTools v1.2.1 [21216c6a] Preferences v1.4.3 [08abe8d2] PrettyTables v2.4.0 [40c276f3] ProjectAssigner v0.1.7 [189a3867] Reexport v1.2.2 [91c51154] SentinelArrays v1.4.8 [a2af1166] SortingAlgorithms v1.2.1 [276daf66] SpecialFunctions v2.5.0 [1e83bf80] StaticArraysCore v1.4.3 [10745b16] Statistics v1.11.1 [892a3eda] StringManipulation v0.4.1 [856f2bd8] StructTypes v1.11.0 [3783bdb8] TableTraits v1.0.1 [bd369af6] Tables v1.12.0 [3bb67fe8] TranscodingStreams v0.11.3 [ea10d353] WeakRefStrings v1.4.2 [76eceee3] WorkerUtilities v1.6.1 [6e34b625] Bzip2_jll v1.0.9+0 [8fd58aa0] HiGHS_jll v1.10.0+0 [efe28fd5] OpenSpecFun_jll v0.5.6+0 [56f22d72] Artifacts v1.11.0 [2a0f44e3] Base64 v1.11.0 [ade2ca70] Dates v1.11.0 [9fa8497b] Future v1.11.0 [b77e0a4c] InteractiveUtils v1.11.0 [8f399da3] Libdl v1.11.0 [37e2e46d] LinearAlgebra v1.11.0 [56ddb016] Logging v1.11.0 [d6f4376e] Markdown v1.11.0 [a63ad114] Mmap v1.11.0 [de0858da] Printf v1.11.0 [9abbd945] Profile v1.11.0 [9a3f8284] Random v1.11.0 [ea8e919c] SHA v0.7.0 [9e88b42a] Serialization v1.11.0 [2f01184e] SparseArrays v1.11.0 [fa267f1f] TOML v1.0.3 [8dfed614] Test v1.11.0 [cf7118a7] UUIDs v1.11.0 [4ec0a83e] Unicode v1.11.0 [e66e0078] CompilerSupportLibraries_jll v1.1.1+0 [4536629a] OpenBLAS_jll v0.3.27+1 [05823500] OpenLibm_jll v0.8.5+0 [bea87d4a] SuiteSparse_jll v7.7.0+0 [83775a58] Zlib_jll v1.2.13+1 [8e850b90] libblastrampoline_jll v5.11.0+0 Info Packages marked with ⌅ have new versions available but compatibility constraints restrict them from upgrading. Testing Running tests... ┌ Info: Found 4 students and 2 projects. │ students = │ 4×9 DataFrame │ Row │ name skill:electronics skill:software skill:hardware skill: ⋯ │ │ String7 Float64 Float64 Float64 Float6 ⋯ │ ⋮ │ ⋮ ⋮ ⋮ ⋮ ⋮ ⋱ │ 5 columns and 4 rows omitted │ projects = │ 2×7 DataFrame │ Row │ name skill:electronics skill:software skill:hardware skill ⋯ │ │ String15 Float64 Float64 Float64 Float ⋯ │ ⋮ │ ⋮ ⋮ ⋮ ⋮ ⋮ ⋱ └ 3 columns and 2 rows omitted [ Info: Creating group ["Alice", "Bob"] ┌ Warning: Invalid teammate request for Charlie │ Dict((s => collect(partners[s]) for s = candidate_group)) = │ Dict{String, Vector{String}} with 2 entries: │ "Alice" => ["Bob"] │ "Charlie" => ["Alice"] └ @ ProjectAssigner ~/.julia/packages/ProjectAssigner/KWYJH/src/ProjectAssigner.jl:202 Running HiGHS 1.10.0 (git hash: fd8665394e): Copyright (c) 2025 HiGHS under MIT licence terms MIP has 13 rows; 6 cols; 34 nonzeros; 6 integer variables (6 binary) Coefficient ranges: Matrix [2e-01, 2e+00] Cost [4e+00, 3e+01] Bound [1e+00, 1e+00] RHS [1e-01, 2e+00] Presolving model 10 rows, 3 cols, 28 nonzeros 0s 5 rows, 3 cols, 14 nonzeros 0s 0 rows, 0 cols, 0 nonzeros 0s Presolve: Optimal Src: B => Branching; C => Central rounding; F => Feasibility pump; H => Heuristic; L => Sub-MIP; P => Empty MIP; R => Randomized rounding; S => Solve LP; T => Evaluate node; U => Unbounded; z => Trivial zero; l => Trivial lower; u => Trivial upper; p => Trivial point; X => User solution Nodes | B&B Tree | Objective Bounds | Dynamic Constraints | Work Src Proc. InQueue | Leaves Expl. | BestBound BestSol Gap | Cuts InLp Confl. | LpIters Time 0 0 0 0.00% 16 16 0.00% 0 0 0 0 0.0s Solving report Status Optimal Primal bound 16 Dual bound 16 Gap 0% (tolerance: 0.01%) P-D integral 0 Solution status feasible 16 (objective) 0 (bound viol.) 0 (int. viol.) 0 (row viol.) Timing 0.00 (total) 0.00 (presolve) 0.00 (solve) 0.00 (postsolve) Max sub-MIP depth 0 Nodes 0 Repair LPs 0 (0 feasible; 0 iterations) LP iterations 0 (total) 0 (strong br.) 0 (separation) 0 (heuristics) ┌ Info: Assignments: │ out = │ 4×3 DataFrame │ Row │ name project preference │ │ String String Int64? │ ─────┼─────────────────────────────── │ 1 │ Dale Cubesat 1 │ 2 │ Alice Airplane 1 │ 3 │ Bob Airplane 1 └ 4 │ Charlie Cubesat 1 ┌ Info: Frequencies by preference rank: │ histogram = │ 2×2 DataFrame │ Row │ preference number │ │ Any Int64 │ ─────┼──────────────────── │ 1 │ 1 4 └ 2 │ missing 0 [ Info: Writing to out.csv. ┌ Info: Found 4 students and 2 projects. │ students = │ 4×9 DataFrame │ Row │ name skill:electronics skill:software skill:hardware skill: ⋯ │ │ String7 Float64 Float64 Float64 Float6 ⋯ │ ⋮ │ ⋮ ⋮ ⋮ ⋮ ⋮ ⋱ │ 5 columns and 4 rows omitted │ projects = │ 2×7 DataFrame │ Row │ name skill:electronics skill:software skill:hardware skill ⋯ │ │ String15 Float64 Float64 Float64 Float ⋯ │ ⋮ │ ⋮ ⋮ ⋮ ⋮ ⋮ ⋱ └ 3 columns and 2 rows omitted [ Info: Creating group ["Alice", "Bob"] ┌ Warning: Invalid teammate request for Charlie │ Dict((s => collect(partners[s]) for s = candidate_group)) = │ Dict{String, Vector{String}} with 2 entries: │ "Alice" => ["Bob"] │ "Charlie" => ["Alice"] └ @ ProjectAssigner ~/.julia/packages/ProjectAssigner/KWYJH/src/ProjectAssigner.jl:202 Running HiGHS 1.10.0 (git hash: fd8665394e): Copyright (c) 2025 HiGHS under MIT licence terms MIP has 14 rows; 6 cols; 35 nonzeros; 6 integer variables (6 binary) Coefficient ranges: Matrix [2e-01, 2e+00] Cost [4e+00, 3e+01] Bound [1e+00, 1e+00] RHS [1e-01, 2e+00] Presolving model 0 rows, 0 cols, 0 nonzeros 0s 0 rows, 0 cols, 0 nonzeros 0s Presolve: Optimal Src: B => Branching; C => Central rounding; F => Feasibility pump; H => Heuristic; L => Sub-MIP; P => Empty MIP; R => Randomized rounding; S => Solve LP; T => Evaluate node; U => Unbounded; z => Trivial zero; l => Trivial lower; u => Trivial upper; p => Trivial point; X => User solution Nodes | B&B Tree | Objective Bounds | Dynamic Constraints | Work Src Proc. InQueue | Leaves Expl. | BestBound BestSol Gap | Cuts InLp Confl. | LpIters Time 0 0 0 0.00% 16 16 0.00% 0 0 0 0 0.0s Solving report Status Optimal Primal bound 16 Dual bound 16 Gap 0% (tolerance: 0.01%) P-D integral 0 Solution status feasible 16 (objective) 0 (bound viol.) 0 (int. viol.) 0 (row viol.) Timing 0.00 (total) 0.00 (presolve) 0.00 (solve) 0.00 (postsolve) Max sub-MIP depth 0 Nodes 0 Repair LPs 0 (0 feasible; 0 iterations) LP iterations 0 (total) 0 (strong br.) 0 (separation) 0 (heuristics) ┌ Info: Assignments: │ out = │ 4×3 DataFrame │ Row │ name project preference │ │ String String Int64? │ ─────┼─────────────────────────────── │ 1 │ Dale Cubesat 1 │ 2 │ Alice Airplane 1 │ 3 │ Bob Airplane 1 └ 4 │ Charlie Cubesat 1 ┌ Info: Frequencies by preference rank: │ histogram = │ 2×2 DataFrame │ Row │ preference number │ │ Any Int64 │ ─────┼──────────────────── │ 1 │ 1 4 └ 2 │ missing 0 ┌ Info: Found 4 students and 2 projects. │ students = │ 4×9 DataFrame │ Row │ name skill:electronics skill:software skill:hardware skill: ⋯ │ │ String7 Float64 Float64 Float64 Float6 ⋯ │ ⋮ │ ⋮ ⋮ ⋮ ⋮ ⋮ ⋱ │ 5 columns and 4 rows omitted │ projects = │ 2×7 DataFrame │ Row │ name skill:electronics skill:software skill:hardware skill ⋯ │ │ String15 Float64 Float64 Float64 Float ⋯ │ ⋮ │ ⋮ ⋮ ⋮ ⋮ ⋮ ⋱ └ 3 columns and 2 rows omitted [ Info: Creating group ["Alice", "Bob"] ┌ Warning: Invalid teammate request for Charlie │ Dict((s => collect(partners[s]) for s = candidate_group)) = │ Dict{String, Vector{String}} with 2 entries: │ "Alice" => ["Bob"] │ "Charlie" => ["Alice"] └ @ ProjectAssigner ~/.julia/packages/ProjectAssigner/KWYJH/src/ProjectAssigner.jl:202 Running HiGHS 1.10.0 (git hash: fd8665394e): Copyright (c) 2025 HiGHS under MIT licence terms MIP has 14 rows; 6 cols; 35 nonzeros; 6 integer variables (6 binary) Coefficient ranges: Matrix [2e-01, 2e+00] Cost [4e+00, 3e+01] Bound [1e+00, 1e+00] RHS [1e-01, 2e+00] Presolving model 6 rows, 0 cols, 0 nonzeros 0s 0 rows, 0 cols, 0 nonzeros 0s Presolve: Optimal Src: B => Branching; C => Central rounding; F => Feasibility pump; H => Heuristic; L => Sub-MIP; P => Empty MIP; R => Randomized rounding; S => Solve LP; T => Evaluate node; U => Unbounded; z => Trivial zero; l => Trivial lower; u => Trivial upper; p => Trivial point; X => User solution Solving report P-D integral 0 Solution status feasible ┌ Info: Assignments: │ out = │ 4×3 DataFrame │ Row │ name project preference │ │ String String Int64? │ ─────┼─────────────────────────────── │ 1 │ Dale Airplane missing │ 2 │ Alice Cubesat 2 │ 3 │ Bob Cubesat 2 └ 4 │ Charlie Airplane 2 ┌ Info: Frequencies by preference rank: │ histogram = │ 3×2 DataFrame │ Row │ preference number │ │ Any Int64 │ ─────┼──────────────────── │ 1 │ 1 0 │ 2 │ 2 3 └ 3 │ missing 1 ┌ Info: Found 4 students and 2 projects. │ students = │ 4×9 DataFrame │ Row │ name skill:electronics skill:software skill:hardware skill: ⋯ │ │ String7 Float64 Float64 Float64 Float6 ⋯ │ ⋮ │ ⋮ ⋮ ⋮ ⋮ ⋮ ⋱ │ 5 columns and 4 rows omitted │ projects = │ 2×7 DataFrame │ Row │ name skill:electronics skill:software skill:hardware skill ⋯ │ │ String15 Float64 Float64 Float64 Float ⋯ │ ⋮ │ ⋮ ⋮ ⋮ ⋮ ⋮ ⋱ └ 3 columns and 2 rows omitted [ Info: Creating group ["Alice", "Bob"] Running HiGHS 1.10.0 (git hash: fd8665394e): Copyright (c) 2025 HiGHS under MIT licence terms MIP has 13 rows; 6 cols; 34 nonzeros; 6 integer variables (6 binary) Coefficient ranges: Matrix [2e-01, 2e+00] Cost [4e+00, 3e+01] Bound [1e+00, 1e+00] RHS [1e-01, 2e+00] Presolving model 10 rows, 3 cols, 28 nonzeros 0s 5 rows, 3 cols, 14 nonzeros 0s 0 rows, 0 cols, 0 nonzeros 0s Presolve: Optimal Src: B => Branching; C => Central rounding; F => Feasibility pump; H => Heuristic; L => Sub-MIP; P => Empty MIP; R => Randomized rounding; S => Solve LP; T => Evaluate node; U => Unbounded; z => Trivial zero; l => Trivial lower; u => Trivial upper; p => Trivial point; X => User solution Nodes | B&B Tree | Objective Bounds | Dynamic Constraints | Work Src Proc. InQueue | Leaves Expl. | BestBound BestSol Gap | Cuts InLp Confl. | LpIters Time 0 0 0 0.00% 40 40 0.00% 0 0 0 0 0.0s Solving report Status Optimal Primal bound 40 Dual bound 40 Gap 0% (tolerance: 0.01%) P-D integral 0 Solution status feasible 40 (objective) 0 (bound viol.) 0 (int. viol.) 0 (row viol.) Timing 0.00 (total) 0.00 (presolve) 0.00 (solve) 0.00 (postsolve) Max sub-MIP depth 0 Nodes 0 Repair LPs 0 (0 feasible; 0 iterations) LP iterations 0 (total) 0 (strong br.) 0 (separation) 0 (heuristics) ┌ Info: Assignments: │ out = │ 4×3 DataFrame │ Row │ name project preference │ │ String String Int64? │ ─────┼─────────────────────────────── │ 1 │ Dale Cubesat 1 │ 2 │ Alice Airplane 2 │ 3 │ Bob Airplane 2 └ 4 │ Charlie Cubesat 1 ┌ Info: Frequencies by preference rank: │ histogram = │ 3×2 DataFrame │ Row │ preference number │ │ Any Int64 │ ─────┼──────────────────── │ 1 │ 1 2 │ 2 │ 2 2 └ 3 │ missing 0 [ Info: Writing to out.csv. ┌ Error: Required column 'name' missing from students table. │ names(students) = String[] └ @ ProjectAssigner ~/.julia/packages/ProjectAssigner/KWYJH/src/ProjectAssigner.jl:302 ┌ Error: Required column 'name' missing from projects table. │ names(projects) = String[] └ @ ProjectAssigner ~/.julia/packages/ProjectAssigner/KWYJH/src/ProjectAssigner.jl:330 ┌ Error: Required column 'min' missing from projects table. │ names(projects) = String[] └ @ ProjectAssigner ~/.julia/packages/ProjectAssigner/KWYJH/src/ProjectAssigner.jl:330 ┌ Error: Required column 'max' missing from projects table. │ names(projects) = String[] └ @ ProjectAssigner ~/.julia/packages/ProjectAssigner/KWYJH/src/ProjectAssigner.jl:330 ┌ Error: The type of column 'min' in the projects table was not Integer; instead it was String. Check for extraneous space or other characters. └ @ ProjectAssigner ~/.julia/packages/ProjectAssigner/KWYJH/src/ProjectAssigner.jl:336 ┌ Error: The type of column 'max' in the projects table was not Integer; instead it was String. Check for extraneous space or other characters. └ @ ProjectAssigner ~/.julia/packages/ProjectAssigner/KWYJH/src/ProjectAssigner.jl:336 ┌ Error: Project and student skill columns do not match! │ project_skills = │ Set{String} with 1 element: │ "test" │ student_skills = │ Set{String} with 4 elements: │ "electronics" │ "software" │ "pm" │ "hardware" └ @ ProjectAssigner ~/.julia/packages/ProjectAssigner/KWYJH/src/ProjectAssigner.jl:349 ┌ Error: Project columns in students table and names in project table do not match. │ projects[!, :name] = Any[] │ project_names = │ Set{String} with 2 elements: │ "Cubesat" │ "Airplane" └ @ ProjectAssigner ~/.julia/packages/ProjectAssigner/KWYJH/src/ProjectAssigner.jl:353 ┌ Info: Found 4 students and 0 projects. │ students = │ 4×9 DataFrame │ Row │ name skill:electronics skill:software skill:hardware skill: ⋯ │ │ String7 Float64 Float64 Float64 Float6 ⋯ │ ⋮ │ ⋮ ⋮ ⋮ ⋮ ⋮ ⋱ │ 5 columns and 4 rows omitted │ projects = │ 0×4 DataFrame │ Row │ name min max skill:test │ │ Any String String String └ ─────┴────────────────────────────────── [ Info: Creating group ["Alice", "Bob"] ┌ Warning: Invalid teammate request for Charlie │ Dict((s => collect(partners[s]) for s = candidate_group)) = │ Dict{String, Vector{String}} with 2 entries: │ "Alice" => ["Bob"] │ "Charlie" => ["Alice"] └ @ ProjectAssigner ~/.julia/packages/ProjectAssigner/KWYJH/src/ProjectAssigner.jl:202 Test Summary: | Pass Total Time ProjectAssigner.jl | 19 19 2m26.3s Testing ProjectAssigner tests passed Testing completed after 156.31s PkgEval succeeded after 419.61s