Package evaluation of Pipelines on Julia 1.12.0-rc1.2 (995ff9db19*) started at 2025-07-14T11:56:08.191
################################################################################
# Set-up
#
Installing PkgEval dependencies (TestEnv)...
Set-up completed after 8.72s
################################################################################
# Installation
#
Installing Pipelines...
Resolving package versions...
Updating `~/.julia/environments/v1.12/Project.toml`
[ef544631] + Pipelines v0.11.1
Updating `~/.julia/environments/v1.12/Manifest.toml`
[34da2185] + Compat v4.17.0
[48062228] + FilePathsBase v0.9.24
[bac558e1] + OrderedCollections v1.8.1
[ef544631] + Pipelines v0.11.1
[189a3867] + Reexport v1.2.2
[2a0f44e3] + Base64 v1.11.0
[ade2ca70] + Dates v1.11.0
[b77e0a4c] + InteractiveUtils v1.11.0
[ac6e5ff7] + JuliaSyntaxHighlighting v1.12.0
[56ddb016] + Logging v1.11.0
[d6f4376e] + Markdown v1.11.0
[de0858da] + Printf v1.11.0
[9a3f8284] + Random v1.11.0
[ea8e919c] + SHA v0.7.0
[9e88b42a] + Serialization v1.11.0
[f489334b] + StyledStrings v1.11.0
[fa267f1f] + TOML v1.0.3
[8dfed614] + Test v1.11.0
[cf7118a7] + UUIDs v1.11.0
[4ec0a83e] + Unicode v1.11.0
Installation completed after 1.08s
################################################################################
# Precompilation
#
Precompiling PkgEval dependencies...
Precompiling package dependencies...
Precompilation completed after 16.55s
################################################################################
# Testing
#
Testing Pipelines
Status `/tmp/jl_DiY65F/Project.toml`
[48062228] FilePathsBase v0.9.24
[bac558e1] OrderedCollections v1.8.1
[ef544631] Pipelines v0.11.1
[189a3867] Reexport v1.2.2
[ade2ca70] Dates v1.11.0
[56ddb016] Logging v1.11.0
[de0858da] Printf v1.11.0
[8dfed614] Test v1.11.0
[cf7118a7] UUIDs v1.11.0
Status `/tmp/jl_DiY65F/Manifest.toml`
[34da2185] Compat v4.17.0
[48062228] FilePathsBase v0.9.24
[bac558e1] OrderedCollections v1.8.1
[ef544631] Pipelines v0.11.1
[189a3867] Reexport v1.2.2
[2a0f44e3] Base64 v1.11.0
[ade2ca70] Dates v1.11.0
[b77e0a4c] InteractiveUtils v1.11.0
[ac6e5ff7] JuliaSyntaxHighlighting v1.12.0
[56ddb016] Logging v1.11.0
[d6f4376e] Markdown v1.11.0
[de0858da] Printf v1.11.0
[9a3f8284] Random v1.11.0
[ea8e919c] SHA v0.7.0
[9e88b42a] Serialization v1.11.0
[f489334b] StyledStrings v1.11.0
[fa267f1f] TOML v1.0.3
[8dfed614] Test v1.11.0
[cf7118a7] UUIDs v1.11.0
[4ec0a83e] Unicode v1.11.0
Testing Running tests...
0-element Vector{Arg}.
CmdDependency:
exec → `/opt/julia/bin/julia -C native -J/opt/julia/lib/julia/sys.so --depwarn=yes --check-bounds=yes --pkgimages=existing -g1 --startup-file=no`
test_args → `--version`
validate_success → true
validate_stdout → #12
validate_stderr → do_nothing
exit_when_fail → true
CmdProgram:
name → Command Program
id_file → id_file
info_before → auto
info_after → auto
cmd_dependencies → `/opt/julia/bin/julia -C native -J/opt/julia/lib/julia/sys.so --depwarn=yes --check-bounds=yes --pkgimages=existing -g1 --startup-file=no`
arg_inputs → input :: Any (required)
input2 :: Int64 (required)
optional_arg :: Any (default = 5)
optional_arg2 :: Number (default = 0.5)
validate_inputs → do_nothing
prerequisites → do_nothing
cmd → `echo input input2 optional_arg optional_arg2 output`
infer_outputs → do_nothing
arg_outputs → output :: Any (default = .output)
validate_outputs → do_nothing
wrap_up → do_nothing
arg_forward →
┌ Info: 2025-07-14 11:57:16 Started: Command Program
│ command_template = `echo input input2 optional_arg optional_arg2 output`
│ run_id = Base.UUID("68dcdd33-f1da-5c3e-b079-2beaf8ab706c")
│ inputs = Dict{String, Any} with 4 entries: …
└ outputs = Dict{String, Any} with 1 entry: …
in1 2 5 0.5 out
┌ Info: 2025-07-14 11:57:21 Finished: Command Program
│ command_running = `echo in1 2 5 0.5 out`
│ run_id = Base.UUID("68dcdd33-f1da-5c3e-b079-2beaf8ab706c")
│ inputs = Dict{String, Any} with 4 entries: …
└ outputs = Dict{String, Any} with 1 entry: …
in1 2 5 0.5 out
┌ Warning: A stack trace will show:
└ @ Main ~/.julia/packages/Pipelines/CkayS/test/runtests.jl:96
ArgumentError: Program requires 'optional_arg', but it is not provided.
Stacktrace:
[1] arg_completion(args::Vector{Arg}, xxputs::Dict{String, Any})
@ Main.Pipelines ~/.julia/packages/Pipelines/CkayS/src/Program.jl:147
[2] xxputs_completion_and_check(p::CmdProgram, inputs::Dict{String, Any}, outputs::Dict{String, Any})
@ Main.Pipelines ~/.julia/packages/Pipelines/CkayS/src/Program.jl:223
[3] _run(p::CmdProgram; inputs::Dict{String, Any}, outputs::Dict{String, Any}, skip_when_done::Bool, check_dependencies::Bool, verbose::Bool, touch_run_id_file::Bool, dry_run::Bool, dir::String, _do_xxputs_completion_and_check::Bool)
@ Main.Pipelines ~/.julia/packages/Pipelines/CkayS/src/CmdProgram.jl:189
[4] (::Main.Pipelines.var"#36#37"{Int64, Bool, @Kwargs{inputs::Dict{String, Any}, skip_when_done::Bool, verbose::Bool, touch_run_id_file::Bool}, CmdProgram})()
@ Main.Pipelines ~/.julia/packages/Pipelines/CkayS/src/Program.jl:302
[5] try_function(f::Main.Pipelines.var"#36#37"{Int64, Bool, @Kwargs{inputs::Dict{String, Any}, skip_when_done::Bool, verbose::Bool, touch_run_id_file::Bool}, CmdProgram}, ::Nothing)
@ Main.Pipelines ~/.julia/packages/Pipelines/CkayS/src/redirection.jl:151
[6] #redirect_to_files#6
@ ~/.julia/packages/Pipelines/CkayS/src/redirection.jl:223 [inlined]
[7] redirect_to_files
@ ~/.julia/packages/Pipelines/CkayS/src/redirection.jl:200 [inlined]
[8] run(p::CmdProgram; dir::String, retry::Int64, stdout::Nothing, stderr::Nothing, stdlog::Nothing, append::Bool, _do_parse_program_args::Bool, kwarg::@Kwargs{inputs::Dict{String, Any}, skip_when_done::Bool, verbose::Bool, touch_run_id_file::Bool})
@ Main.Pipelines ~/.julia/packages/Pipelines/CkayS/src/Program.jl:297
[9] run
@ ~/.julia/packages/Pipelines/CkayS/src/Program.jl:272 [inlined]
[10] #run#33
@ ~/.julia/packages/Pipelines/CkayS/src/Program.jl:252 [inlined]
[11] top-level scope
@ ~/.julia/packages/Pipelines/CkayS/test/runtests.jl:9
[12] macro expansion
@ /opt/julia/share/julia/stdlib/v1.12/Test/src/Test.jl:1776 [inlined]
[13] macro expansion
@ ~/.julia/packages/Pipelines/CkayS/test/runtests.jl:97 [inlined]
[14] macro expansion
@ /opt/julia/share/julia/stdlib/v1.12/Test/src/Test.jl:677 [inlined]
[15] include(mapexpr::Function, mod::Module, _path::String)
@ Base ./Base.jl:306
[16] top-level scope
@ none:6
[17] eval(m::Module, e::Any)
@ Core ./boot.jl:489
[18] exec_options(opts::Base.JLOptions)
@ Base ./client.jl:287
[19] _start()
@ Base ./client.jl:554
┌ Info: 2025-07-14 11:57:32 Started: Julia Program
│ run_id = Base.UUID("ad4fc668-d047-5d9e-adc4-833a3233db06")
│ inputs =
│ Dict{String, Any} with 2 entries:
│ "b" => 2
│ "a" => `in1`
│ outputs =
│ Dict{String, Any} with 1 entry:
└ "c" => "out"
inputs are `in1` and 2
You can also use info in outputs: out
The returned value will be assigned to a new outputs
┌ Info: 2025-07-14 11:57:32 Finished: Julia Program
│ run_id = Base.UUID("ad4fc668-d047-5d9e-adc4-833a3233db06")
│ inputs =
│ Dict{String, Any} with 2 entries:
│ "b" => 2
│ "a" => `in1`
│ outputs =
│ Dict{String, Any} with 1 entry:
└ "c" => 4
┌ Info: 2025-07-14 11:57:33 Started: Julia Program
│ run_id = Base.UUID("7865e09b-75d5-5b6e-8322-eab5681c82b0")
│ inputs =
│ Dict{String, Any} with 2 entries:
│ "b" => 2
│ "a" => `in1`
│ outputs =
│ Dict{String, Any} with 1 entry:
└ "c" => "in1.2"
inputs are `in1` and 2
You can also use info in outputs: in1.2
The returned value will be assigned to a new outputs
┌ Info: 2025-07-14 11:57:33 Finished: Julia Program
│ run_id = Base.UUID("7865e09b-75d5-5b6e-8322-eab5681c82b0")
│ inputs =
│ Dict{String, Any} with 2 entries:
│ "b" => 2
│ "a" => `in1`
│ outputs =
│ Dict{String, Any} with 1 entry:
└ "c" => 4
┌ Info: 2025-07-14 11:57:34 Started: Julia Program
│ run_id = Base.UUID("d3d3e81a-f5dc-5d46-99c9-9f70fb79bf08")
│ inputs =
│ Dict{String, Any} with 2 entries:
│ "b" => 5
│ "a" => 10.6
│ outputs =
│ Dict{String, Any} with 1 entry:
└ "c" => "10.6.5"
┌ Info: 2025-07-14 11:57:34 Finished: Julia Program
│ run_id = Base.UUID("d3d3e81a-f5dc-5d46-99c9-9f70fb79bf08")
│ inputs =
│ Dict{String, Any} with 2 entries:
│ "b" => 5
│ "a" => 10.6
│ outputs =
│ Dict{String, Any} with 1 entry:
└ "c" => 25
┌ Info: 2025-07-14 11:57:34 Started: Julia Program
│ run_id = Base.UUID("d3d3e81a-f5dc-5d46-99c9-9f70fb79bf08")
│ inputs =
│ Dict{String, Any} with 2 entries:
│ "b" => 5
│ "a" => 10.6
│ outputs =
│ Dict{String, Any} with 1 entry:
└ "c" => "10.6.5"
┌ Info: 2025-07-14 11:57:34 Finished: Julia Program
│ run_id = Base.UUID("d3d3e81a-f5dc-5d46-99c9-9f70fb79bf08")
│ inputs =
│ Dict{String, Any} with 2 entries:
│ "b" => 5
│ "a" => 10.6
│ outputs =
│ Dict{String, Any} with 1 entry:
└ "c" => 25
┌ Info: 2025-07-14 11:57:35 Started: Julia Program
│ run_id = Base.UUID("8ed41804-0a4a-5122-aa8c-e4ceec3d48c7")
│ inputs =
│ Dict{String, Any} with 2 entries:
│ "b" => 2
│ "a" => 10.6
│ outputs =
│ Dict{String, Any} with 1 entry:
└ "c" => "10.6.2"
┌ Info: 2025-07-14 11:57:35 Finished: Julia Program
│ run_id = Base.UUID("8ed41804-0a4a-5122-aa8c-e4ceec3d48c7")
│ inputs =
│ Dict{String, Any} with 2 entries:
│ "b" => 2
│ "a" => 10.6
│ outputs =
│ Dict{String, Any} with 1 entry:
└ "c" => 4
┌ Info: 2025-07-14 11:57:36 Started: Julia Program
│ run_id = Base.UUID("57f77f0a-5d8c-529b-b5bc-197f24b712d6")
│ inputs =
│ Dict{String, Any} with 2 entries:
│ "b" => 5
│ "a" => 8.0
│ outputs =
│ Dict{String, Any} with 1 entry:
└ "c" => "8.0.5"
┌ Info: 2025-07-14 11:57:36 Finished: Julia Program
│ run_id = Base.UUID("57f77f0a-5d8c-529b-b5bc-197f24b712d6")
│ inputs =
│ Dict{String, Any} with 2 entries:
│ "b" => 5
│ "a" => 8.0
│ outputs =
│ Dict{String, Any} with 1 entry:
└ "c" => 25
stderr> 5
stdout> 6.6
stdout> 6.6
IOError: could not spawn `julia -e '@info "this is stderr"'`: no such file or directory (ENOENT)
Stacktrace:
[1] _spawn_primitive(file::String, cmd::Cmd, stdio::Memory{Union{RawFD, Base.SyncCloseFD, IO}})
@ Base ./process.jl:140
[2] _spawn(cmd::Cmd, stdios::Memory{Union{RawFD, Base.SyncCloseFD, IO}}, chain::Base.ProcessChain)
@ Base ./process.jl:221
[3] _spawn(cmds::Base.AndCmds, stdios::Memory{Union{RawFD, Base.SyncCloseFD, IO}}, chain::Base.ProcessChain)
@ Base ./process.jl:215
[4] _spawn
@ ./process.jl:162 [inlined]
[5] #_spawn##0
@ ./process.jl:149 [inlined]
[6] setup_stdios(f::Base.var"#_spawn##0#_spawn##1"{Base.AndCmds}, stdios::Vector{Union{RawFD, Base.FileRedirect, IO}})
@ Base ./process.jl:236
[7] _spawn
@ ./process.jl:148 [inlined]
[8] run(::Base.AndCmds; wait::Bool)
@ Base ./process.jl:512
[9] run(::Base.AndCmds)
@ Base ./process.jl:510
[10] _run(p::CmdProgram; inputs::Dict{String, Any}, outputs::Dict{String, Any}, skip_when_done::Bool, check_dependencies::Bool, verbose::Bool, touch_run_id_file::Bool, dry_run::Bool, dir::String, _do_xxputs_completion_and_check::Bool)
@ Main.Pipelines ~/.julia/packages/Pipelines/CkayS/src/CmdProgram.jl:264
[11] (::Main.Pipelines.var"#36#37"{Int64, Bool, @Kwargs{touch_run_id_file::Bool}, CmdProgram})()
@ Main.Pipelines ~/.julia/packages/Pipelines/CkayS/src/Program.jl:302
[12] (::Main.Pipelines.var"#try_function##0#try_function##1"{Main.Pipelines.var"#36#37"{Int64, Bool, @Kwargs{touch_run_id_file::Bool}, CmdProgram}, IOStream})()
@ Main.Pipelines ~/.julia/packages/Pipelines/CkayS/src/redirection.jl:141
[13] with_logstate(f::Main.Pipelines.var"#try_function##0#try_function##1"{Main.Pipelines.var"#36#37"{Int64, Bool, @Kwargs{touch_run_id_file::Bool}, CmdProgram}, IOStream}, logstate::Base.CoreLogging.LogState)
@ Base.CoreLogging ./logging/logging.jl:540
[14] with_logger(f::Function, logger::Base.CoreLogging.SimpleLogger)
@ Base.CoreLogging ./logging/logging.jl:651
[15] try_function
@ ~/.julia/packages/Pipelines/CkayS/src/redirection.jl:139 [inlined]
[16] redirect_to_files(f::Function, outfile::IOStream, errfile::String, logfile::String; mode::String)
@ Main.Pipelines ~/.julia/packages/Pipelines/CkayS/src/redirection.jl:223
[17] redirect_to_files
@ ~/.julia/packages/Pipelines/CkayS/src/redirection.jl:200 [inlined]
[18] run(p::CmdProgram; dir::String, retry::Int64, stdout::IOStream, stderr::String, stdlog::String, append::Bool, _do_parse_program_args::Bool, kwarg::@Kwargs{touch_run_id_file::Bool})
@ Main.Pipelines ~/.julia/packages/Pipelines/CkayS/src/Program.jl:297
[19] top-level scope
@ ~/.julia/packages/Pipelines/CkayS/test/runtests.jl:9
[20] macro expansion
@ /opt/julia/share/julia/stdlib/v1.12/Test/src/Test.jl:1776 [inlined]
[21] macro expansion
@ ~/.julia/packages/Pipelines/CkayS/test/runtests.jl:288 [inlined]
[22] macro expansion
@ /opt/julia/share/julia/stdlib/v1.12/Test/src/Test.jl:677 [inlined]
[23] macro expansion
@ ~/.julia/packages/Pipelines/CkayS/test/runtests.jl:288 [inlined]
[24] include(mapexpr::Function, mod::Module, _path::String)
@ Base ./Base.jl:306
[25] top-level scope
@ none:6
[26] eval(m::Module, e::Any)
@ Core ./boot.jl:489
[27] exec_options(opts::Base.JLOptions)
@ Base ./client.jl:287
[28] _start()
@ Base ./client.jl:554
test set: Error During Test at /home/pkgeval/.julia/packages/Pipelines/CkayS/test/runtests.jl:288
Test threw exception
Expression: (run(p, touch_run_id_file = false, stdout = out_io, stderr = "err.txt", stdlog = "log.txt"))[1]
MethodError: no method matching getindex(::Main.Pipelines.StackTraceVector, ::Int64)
The function `getindex` exists, but no method is defined for this combination of argument types.
Stacktrace:
[1] top-level scope
@ ~/.julia/packages/Pipelines/CkayS/test/runtests.jl:9
[2] macro expansion
@ /opt/julia/share/julia/stdlib/v1.12/Test/src/Test.jl:1776 [inlined]
[3] macro expansion
@ ~/.julia/packages/Pipelines/CkayS/test/runtests.jl:288 [inlined]
[4] macro expansion
@ /opt/julia/share/julia/stdlib/v1.12/Test/src/Test.jl:677 [inlined]
[5] macro expansion
@ ~/.julia/packages/Pipelines/CkayS/test/runtests.jl:288 [inlined]
test set: Test Failed at /home/pkgeval/.julia/packages/Pipelines/CkayS/test/runtests.jl:293
Expression: read("err.txt", String) == "[ Info: this is stderr\n"
Evaluated: "" == "[ Info: this is stderr\n"
Stacktrace:
[1] top-level scope
@ ~/.julia/packages/Pipelines/CkayS/test/runtests.jl:9
[2] macro expansion
@ /opt/julia/share/julia/stdlib/v1.12/Test/src/Test.jl:1776 [inlined]
[3] macro expansion
@ ~/.julia/packages/Pipelines/CkayS/test/runtests.jl:293 [inlined]
[4] macro expansion
@ /opt/julia/share/julia/stdlib/v1.12/Test/src/Test.jl:680 [inlined]
┌ Warning: A ProgramRunningError should show below
└ @ Main ~/.julia/packages/Pipelines/CkayS/test/runtests.jl:304
[ Info: 2025-07-14 11:57:50 Started: Command Program [bbab1609-5816-437c-b33a-f653328b4788]
┌ Error: 2025-07-14 11:57:50 ProgramRunningError: Command Program: fail to run the main command.
│ prerequisites = do_nothing (generic function with 3 methods)
│ command_running = `julia --abcdefg`
│ run_id = Base.UUID("bbab1609-5816-437c-b33a-f653328b4788")
│ inputs = Dict{String, Any}()
└ outputs = Dict{String, Any}()
IOError: could not spawn `julia --abcdefg`: no such file or directory (ENOENT)
Stacktrace:
[1] _spawn_primitive(file::String, cmd::Cmd, stdio::Memory{Union{RawFD, Base.SyncCloseFD, IO}})
@ Base ./process.jl:140
[2] _spawn
@ ./process.jl:157 [inlined]
[3] #_spawn##0
@ ./process.jl:149 [inlined]
[4] setup_stdios(f::Base.var"#_spawn##0#_spawn##1"{Cmd}, stdios::Vector{Union{RawFD, Base.FileRedirect, IO}})
@ Base ./process.jl:236
[5] _spawn
@ ./process.jl:148 [inlined]
[6] run(::Cmd; wait::Bool)
@ Base ./process.jl:512
[7] run(::Cmd)
@ Base ./process.jl:510
[8] _run(p::CmdProgram; inputs::Dict{String, Any}, outputs::Dict{String, Any}, skip_when_done::Bool, check_dependencies::Bool, verbose::Symbol, touch_run_id_file::Bool, dry_run::Bool, dir::String, _do_xxputs_completion_and_check::Bool)
@ Main.Pipelines ~/.julia/packages/Pipelines/CkayS/src/CmdProgram.jl:264
[9] (::Main.Pipelines.var"#36#37"{Int64, Bool, @Kwargs{verbose::Symbol}, CmdProgram})()
@ Main.Pipelines ~/.julia/packages/Pipelines/CkayS/src/Program.jl:302
[10] try_function(f::Main.Pipelines.var"#36#37"{Int64, Bool, @Kwargs{verbose::Symbol}, CmdProgram}, ::Nothing)
@ Main.Pipelines ~/.julia/packages/Pipelines/CkayS/src/redirection.jl:151
[11] #redirect_to_files#6
@ ~/.julia/packages/Pipelines/CkayS/src/redirection.jl:223 [inlined]
[12] redirect_to_files
@ ~/.julia/packages/Pipelines/CkayS/src/redirection.jl:200 [inlined]
[13] run(p::CmdProgram; dir::String, retry::Int64, stdout::Nothing, stderr::Nothing, stdlog::Nothing, append::Bool, _do_parse_program_args::Bool, kwarg::@Kwargs{verbose::Symbol})
@ Main.Pipelines ~/.julia/packages/Pipelines/CkayS/src/Program.jl:297
[14] top-level scope
@ ~/.julia/packages/Pipelines/CkayS/test/runtests.jl:9
[15] macro expansion
@ /opt/julia/share/julia/stdlib/v1.12/Test/src/Test.jl:1776 [inlined]
[16] macro expansion
@ ~/.julia/packages/Pipelines/CkayS/test/runtests.jl:305 [inlined]
[17] include(mapexpr::Function, mod::Module, _path::String)
@ Base ./Base.jl:306
[18] top-level scope
@ none:6
[19] eval(m::Module, e::Any)
@ Core ./boot.jl:489
[20] exec_options(opts::Base.JLOptions)
@ Base ./client.jl:287
[21] _start()
@ Base ./client.jl:554
┌ Warning: Retry Command Program (1/1)
└ @ Main.Pipelines ~/.julia/packages/Pipelines/CkayS/src/Program.jl:299
[ Info: 2025-07-14 11:57:50 Started: Command Program [bbab1609-5816-437c-b33a-f653328b4788]
┌ Error: 2025-07-14 11:57:50 ProgramRunningError: Command Program: fail to run the main command.
│ prerequisites = do_nothing (generic function with 3 methods)
│ command_running = `julia --abcdefg`
│ run_id = Base.UUID("bbab1609-5816-437c-b33a-f653328b4788")
│ inputs = Dict{String, Any}()
└ outputs = Dict{String, Any}()
IOError: could not spawn `julia --abcdefg`: no such file or directory (ENOENT)
Stacktrace:
[1] _spawn_primitive(file::String, cmd::Cmd, stdio::Memory{Union{RawFD, Base.SyncCloseFD, IO}})
@ Base ./process.jl:140
[2] _spawn
@ ./process.jl:157 [inlined]
[3] #_spawn##0
@ ./process.jl:149 [inlined]
[4] setup_stdios(f::Base.var"#_spawn##0#_spawn##1"{Cmd}, stdios::Vector{Union{RawFD, Base.FileRedirect, IO}})
@ Base ./process.jl:236
[5] _spawn
@ ./process.jl:148 [inlined]
[6] run(::Cmd; wait::Bool)
@ Base ./process.jl:512
[7] run(::Cmd)
@ Base ./process.jl:510
[8] _run(p::CmdProgram; inputs::Dict{String, Any}, outputs::Dict{String, Any}, skip_when_done::Bool, check_dependencies::Bool, verbose::Symbol, touch_run_id_file::Bool, dry_run::Bool, dir::String, _do_xxputs_completion_and_check::Bool)
@ Main.Pipelines ~/.julia/packages/Pipelines/CkayS/src/CmdProgram.jl:264
[9] (::Main.Pipelines.var"#36#37"{Int64, Bool, @Kwargs{verbose::Symbol}, CmdProgram})()
@ Main.Pipelines ~/.julia/packages/Pipelines/CkayS/src/Program.jl:302
[10] try_function(f::Main.Pipelines.var"#36#37"{Int64, Bool, @Kwargs{verbose::Symbol}, CmdProgram}, ::Nothing)
@ Main.Pipelines ~/.julia/packages/Pipelines/CkayS/src/redirection.jl:151
[11] #redirect_to_files#6
@ ~/.julia/packages/Pipelines/CkayS/src/redirection.jl:223 [inlined]
[12] redirect_to_files
@ ~/.julia/packages/Pipelines/CkayS/src/redirection.jl:200 [inlined]
[13] run(p::CmdProgram; dir::String, retry::Int64, stdout::Nothing, stderr::Nothing, stdlog::Nothing, append::Bool, _do_parse_program_args::Bool, kwarg::@Kwargs{verbose::Symbol})
@ Main.Pipelines ~/.julia/packages/Pipelines/CkayS/src/Program.jl:297
[14] top-level scope
@ ~/.julia/packages/Pipelines/CkayS/test/runtests.jl:9
[15] macro expansion
@ /opt/julia/share/julia/stdlib/v1.12/Test/src/Test.jl:1776 [inlined]
[16] macro expansion
@ ~/.julia/packages/Pipelines/CkayS/test/runtests.jl:305 [inlined]
[17] include(mapexpr::Function, mod::Module, _path::String)
@ Base ./Base.jl:306
[18] top-level scope
@ none:6
[19] eval(m::Module, e::Any)
@ Core ./boot.jl:489
[20] exec_options(opts::Base.JLOptions)
@ Base ./client.jl:287
[21] _start()
@ Base ./client.jl:554
┌ Warning: A ProgramRunningError should show below
└ @ Main ~/.julia/packages/Pipelines/CkayS/test/runtests.jl:308
[ Info: 2025-07-14 11:57:52 Started: Julia Program [bbab1609-5816-437c-b33a-f653328b4788]
┌ Error: 2025-07-14 11:57:52 ProgramRunningError: Julia Program: fail to run the main function.
│ run_id = Base.UUID("bbab1609-5816-437c-b33a-f653328b4788")
│ inputs = Dict{String, Any}()
└ outputs = Dict{String, Any}()
x not exist, so created
Stacktrace:
[1] error(s::String)
@ Base ./error.jl:44
[2] (::var"#32#33")(x::Dict{String, Any}, y::Dict{String, Any})
@ Main ~/.julia/packages/Pipelines/CkayS/test/runtests.jl:314
[3] _run(p::JuliaProgram; inputs::Dict{String, Any}, outputs::Dict{String, Any}, skip_when_done::Bool, check_dependencies::Bool, verbose::Symbol, touch_run_id_file::Bool, dry_run::Bool, dir::String, _do_xxputs_completion_and_check::Bool)
@ Main.Pipelines ~/.julia/packages/Pipelines/CkayS/src/JuliaProgram.jl:264
[4] (::Main.Pipelines.var"#36#37"{Int64, Bool, @Kwargs{verbose::Symbol}, JuliaProgram})()
@ Main.Pipelines ~/.julia/packages/Pipelines/CkayS/src/Program.jl:302
[5] try_function(f::Main.Pipelines.var"#36#37"{Int64, Bool, @Kwargs{verbose::Symbol}, JuliaProgram}, ::Nothing)
@ Main.Pipelines ~/.julia/packages/Pipelines/CkayS/src/redirection.jl:151
[6] #redirect_to_files#6
@ ~/.julia/packages/Pipelines/CkayS/src/redirection.jl:223 [inlined]
[7] redirect_to_files
@ ~/.julia/packages/Pipelines/CkayS/src/redirection.jl:200 [inlined]
[8] run(p::JuliaProgram; dir::String, retry::Int64, stdout::Nothing, stderr::Nothing, stdlog::Nothing, append::Bool, _do_parse_program_args::Bool, kwarg::@Kwargs{verbose::Symbol})
@ Main.Pipelines ~/.julia/packages/Pipelines/CkayS/src/Program.jl:297
[9] top-level scope
@ ~/.julia/packages/Pipelines/CkayS/test/runtests.jl:9
[10] macro expansion
@ /opt/julia/share/julia/stdlib/v1.12/Test/src/Test.jl:1776 [inlined]
[11] macro expansion
@ ~/.julia/packages/Pipelines/CkayS/test/runtests.jl:320 [inlined]
[12] include(mapexpr::Function, mod::Module, _path::String)
@ Base ./Base.jl:306
[13] top-level scope
@ none:6
[14] eval(m::Module, e::Any)
@ Core ./boot.jl:489
[15] exec_options(opts::Base.JLOptions)
@ Base ./client.jl:287
[16] _start()
@ Base ./client.jl:554
┌ Warning: Retry Julia Program (1/1)
└ @ Main.Pipelines ~/.julia/packages/Pipelines/CkayS/src/Program.jl:299
[ Info: 2025-07-14 11:57:52 Started: Julia Program [bbab1609-5816-437c-b33a-f653328b4788]
[ Info: 2025-07-14 11:57:53 Finished: Julia Program [bbab1609-5816-437c-b33a-f653328b4788]
[ Info: 2025-07-14 11:57:54 Started: Echo [3d8bb310-e46a-5e8f-a0b1-414bd3e957dd]
x = Dict{String, Any}("optional_arg" => 5, "optional_arg2" => 0.5, "input2" => 33, "input1" => :xxx)
y = Dict{String, Any}("output" => "iout")
[ Info: 2025-07-14 11:57:54 Finished: Echo [3d8bb310-e46a-5e8f-a0b1-414bd3e957dd]
[ Info: 2025-07-14 11:57:55 Started: Echo [3d8bb310-e46a-5e8f-a0b1-414bd3e957dd]
x = Dict{String, Any}("optional_arg" => 5, "optional_arg2" => 0.5, "input2" => 33, "input1" => :xxx)
y = Dict{String, Any}("output" => "iout")
[ Info: 2025-07-14 11:57:55 Finished: Echo [3d8bb310-e46a-5e8f-a0b1-414bd3e957dd]
┌ Info: 2025-07-14 11:57:56 Started: Command Program
│ command_template = `echo input input2 optional_arg optional_arg2 output`
│ run_id = Base.UUID("68dcdd33-f1da-5c3e-b079-2beaf8ab706c")
│ inputs = Dict{String, Any} with 4 entries: …
└ outputs = Dict{String, Any} with 1 entry: …
in1 2 5 0.5 out
┌ Info: 2025-07-14 11:57:56 Finished: Command Program
│ command_running = `echo in1 2 5 0.5 out`
│ run_id = Base.UUID("68dcdd33-f1da-5c3e-b079-2beaf8ab706c")
│ inputs = Dict{String, Any} with 4 entries: …
└ outputs = Dict{String, Any} with 1 entry: …
┌ Info: 2025-07-14 11:57:57 Started: Julia Program
│ run_id = Base.UUID("ad4fc668-d047-5d9e-adc4-833a3233db06")
│ inputs =
│ Dict{String, Any} with 2 entries:
│ "b" => 2
│ "a" => `in1`
│ outputs =
│ Dict{String, Any} with 1 entry:
└ "c" => "out"
inputs are `in1` and 2
You can also use info in outputs: out
The returned value will be assigned to a new outputs
┌ Info: 2025-07-14 11:57:57 Finished: Julia Program
│ run_id = Base.UUID("ad4fc668-d047-5d9e-adc4-833a3233db06")
│ inputs =
│ Dict{String, Any} with 2 entries:
│ "b" => 2
│ "a" => `in1`
│ outputs =
│ Dict{String, Any} with 1 entry:
└ "c" => 4
┌ Info: 2025-07-14 11:57:58 Started: Julia Program
│ run_id = Base.UUID("9b612675-2bd1-530d-be7c-dcaba2011dea")
│ inputs =
│ Dict{String, Any} with 2 entries:
│ "B" => 5
│ "A" => 3
│ outputs =
│ Dict{String, Any} with 1 entry:
└ "OUT" => 8
inputs["A"] = 3
inputs = Dict{String, Any}("B" => 5, "A" => 3)
inputs["A"] = 3
inputs["B"] = 5
inputs["OUT"] = 8
┌ Info: 2025-07-14 11:57:58 Finished: Julia Program
│ run_id = Base.UUID("9b612675-2bd1-530d-be7c-dcaba2011dea")
│ inputs =
│ Dict{String, Any} with 2 entries:
│ "B" => 5
│ "A" => 3
│ outputs =
│ Dict{String, Any} with 1 entry:
└ "OUT" => 8
┌ Info: 2025-07-14 11:57:59 Started: Test v0.9 Rerun
│ run_id = Base.UUID("bc7d51d5-e287-5818-8d24-996170d8b494")
│ inputs =
│ Dict{String, Any} with 2 entries:
│ "add" => 3
│ "infile" => "in.txt"
│ outputs =
│ Dict{String, Any} with 1 entry:
└ "outfile" => "in.txt.out"
┌ Info: 2025-07-14 11:57:59 Finished: Test v0.9 Rerun
│ run_id = Base.UUID("bc7d51d5-e287-5818-8d24-996170d8b494")
│ inputs =
│ Dict{String, Any} with 2 entries:
│ "add" => 3
│ "infile" => "in.txt"
│ outputs =
│ Dict{String, Any} with 1 entry:
└ "outfile" => "in.txt.out"
┌ Info: 2025-07-14 11:57:59 Started: Test v0.9 Rerun
│ run_id = Base.UUID("f7baa9ce-7c00-57aa-8642-5feffc4bf66d")
│ inputs =
│ Dict{String, Any} with 2 entries:
│ "add" => 5
│ "infile" => "in.txt"
│ outputs =
│ Dict{String, Any} with 1 entry:
└ "outfile" => "in.txt.out"
┌ Info: 2025-07-14 11:57:59 Finished: Test v0.9 Rerun
│ run_id = Base.UUID("f7baa9ce-7c00-57aa-8642-5feffc4bf66d")
│ inputs =
│ Dict{String, Any} with 2 entries:
│ "add" => 5
│ "infile" => "in.txt"
│ outputs =
│ Dict{String, Any} with 1 entry:
└ "outfile" => "in.txt.out"
┌ Info: 2025-07-14 11:57:59 Started: Test v0.9 Rerun
│ run_id = Base.UUID("bc7d51d5-e287-5818-8d24-996170d8b494")
│ inputs =
│ Dict{String, Any} with 2 entries:
│ "add" => 3
│ "infile" => "in.txt"
│ outputs =
│ Dict{String, Any} with 1 entry:
└ "outfile" => "in.txt.out"
┌ Info: 2025-07-14 11:57:59 Finished: Test v0.9 Rerun
│ run_id = Base.UUID("bc7d51d5-e287-5818-8d24-996170d8b494")
│ inputs =
│ Dict{String, Any} with 2 entries:
│ "add" => 3
│ "infile" => "in.txt"
│ outputs =
│ Dict{String, Any} with 1 entry:
└ "outfile" => "in.txt.out"
┌ Info: 2025-07-14 11:57:59 Started: Test v0.9 Rerun
│ run_id = Base.UUID("bc7d51d5-e287-5818-8d24-996170d8b494")
│ inputs =
│ Dict{String, Any} with 2 entries:
│ "add" => 3
│ "infile" => "in.txt"
│ outputs =
│ Dict{String, Any} with 1 entry:
└ "outfile" => "in.txt.out"
┌ Info: 2025-07-14 11:57:59 Finished: Test v0.9 Rerun
│ run_id = Base.UUID("bc7d51d5-e287-5818-8d24-996170d8b494")
│ inputs =
│ Dict{String, Any} with 2 entries:
│ "add" => 3
│ "infile" => "in.txt"
│ outputs =
│ Dict{String, Any} with 1 entry:
└ "outfile" => "in.txt.out"
abc = 2
def = 33
┌ Info: 2025-07-14 11:58:01 Started: Program Cmd
│ run_id = Base.UUID("19c6cf58-7399-5de9-b63b-b9fa2ebdcdaa")
│ inputs =
│ Dict{String, Any} with 1 entry:
│ "CMD" => `echo 123 456`
└ outputs = Dict{String, Any}()
123 456
┌ Info: 2025-07-14 11:58:01 Finished: Program Cmd
│ run_id = Base.UUID("19c6cf58-7399-5de9-b63b-b9fa2ebdcdaa")
│ inputs =
│ Dict{String, Any} with 1 entry:
│ "CMD" => `echo 123 456`
└ outputs = Dict{String, Any}()
┌ Info: 2025-07-14 11:58:02 Started: Program Cmd
│ run_id = Base.UUID("385ea24f-4095-5d80-952e-83b260f4b735")
│ inputs =
│ Dict{String, Any} with 1 entry:
│ "CMD" => pipeline(`echo 123 456`, stdout>FileRedirect("123456.txt", fals…
└ outputs = Dict{String, Any}()
┌ Info: 2025-07-14 11:58:02 Finished: Program Cmd
│ run_id = Base.UUID("385ea24f-4095-5d80-952e-83b260f4b735")
│ inputs =
│ Dict{String, Any} with 1 entry:
│ "CMD" => pipeline(`echo 123 456`, stdout>FileRedirect("123456.txt", fals…
└ outputs = Dict{String, Any}()
┌ Info: 2025-07-14 11:58:03 Started: Program Cmd
│ run_id = Base.UUID("0e6b94ea-76b0-554a-9b3a-4182587dad71")
│ inputs =
│ Dict{String, Any} with 1 entry:
│ "CMD" => `echo 123456.txt`
└ outputs = Dict{String, Any}()
123456.txt
┌ Info: 2025-07-14 11:58:03 Finished: Program Cmd
│ run_id = Base.UUID("0e6b94ea-76b0-554a-9b3a-4182587dad71")
│ inputs =
│ Dict{String, Any} with 1 entry:
│ "CMD" => `echo 123456.txt`
└ outputs = Dict{String, Any}()
┌ Info: 2025-07-14 11:58:03 Started: Program Cmd
│ run_id = Base.UUID("0f8ba2d4-0f03-5b67-8e6a-da02d716f5d2")
│ inputs =
│ Dict{String, Any} with 1 entry:
│ "CMD" => `echo -J=123456.txt,123.txt`
└ outputs = Dict{String, Any}()
-J=123456.txt,123.txt
┌ Info: 2025-07-14 11:58:03 Finished: Program Cmd
│ run_id = Base.UUID("0f8ba2d4-0f03-5b67-8e6a-da02d716f5d2")
│ inputs =
│ Dict{String, Any} with 1 entry:
│ "CMD" => `echo -J=123456.txt,123.txt`
└ outputs = Dict{String, Any}()
┌ Info: 2025-07-14 11:58:03 Started: Program Cmd
│ run_id = Base.UUID("294b1c8f-35eb-577a-9b29-870fbbc86667")
│ inputs =
│ Dict{String, Any} with 1 entry:
│ "CMD" => `echo 123456.txt,123.txt`
└ outputs = Dict{String, Any}()
123456.txt,123.txt
┌ Info: 2025-07-14 11:58:03 Finished: Program Cmd
│ run_id = Base.UUID("294b1c8f-35eb-577a-9b29-870fbbc86667")
│ inputs =
│ Dict{String, Any} with 1 entry:
│ "CMD" => `echo 123456.txt,123.txt`
└ outputs = Dict{String, Any}()
123456.txt,123.txt
Test Summary: | Pass Fail Error Total Time
test set | 73 1 1 75 1m15.4s
Arg | 20 20 4.7s
Arg forward | 4 4 4.3s
v0.8 | 7 7 5.5s
v0.9 rerun | 5 5 1.0s
v0.9 quote function dictreplace! | 0 0.1s
v0.9.3 Possible files in Cmd also write to run_id_file | 10 10 3.3s
RNG of the outermost testset: Random.Xoshiro(0xd5c205fd19463f83, 0xb25074a5aa94fa9b, 0xb007a9aa9f174d15, 0x4144e13d01e37496, 0x25bbdcee41b1e0d7)
ERROR: LoadError: Some tests did not pass: 73 passed, 1 failed, 1 errored, 0 broken.
in expression starting at /home/pkgeval/.julia/packages/Pipelines/CkayS/test/runtests.jl:7
Testing failed after 87.53s
ERROR: LoadError: Package Pipelines errored during testing
Stacktrace:
[1] pkgerror(msg::String)
@ Pkg.Types /opt/julia/share/julia/stdlib/v1.12/Pkg/src/Types.jl:68
[2] test(ctx::Pkg.Types.Context, pkgs::Vector{PackageSpec}; coverage::Bool, julia_args::Cmd, test_args::Cmd, test_fn::Nothing, force_latest_compatible_version::Bool, allow_earlier_backwards_compatible_versions::Bool, allow_reresolve::Bool)
@ Pkg.Operations /opt/julia/share/julia/stdlib/v1.12/Pkg/src/Operations.jl:2458
[3] test
@ /opt/julia/share/julia/stdlib/v1.12/Pkg/src/Operations.jl:2313 [inlined]
[4] test(ctx::Pkg.Types.Context, pkgs::Vector{PackageSpec}; coverage::Bool, test_fn::Nothing, julia_args::Cmd, test_args::Cmd, force_latest_compatible_version::Bool, allow_earlier_backwards_compatible_versions::Bool, allow_reresolve::Bool, kwargs::@Kwargs{io::IOContext{IO}})
@ Pkg.API /opt/julia/share/julia/stdlib/v1.12/Pkg/src/API.jl:511
[5] test(pkgs::Vector{PackageSpec}; io::IOContext{IO}, kwargs::@Kwargs{julia_args::Cmd})
@ Pkg.API /opt/julia/share/julia/stdlib/v1.12/Pkg/src/API.jl:164
[6] test(pkgs::Vector{String}; kwargs::@Kwargs{julia_args::Cmd})
@ Pkg.API /opt/julia/share/julia/stdlib/v1.12/Pkg/src/API.jl:152
[7] test
@ /opt/julia/share/julia/stdlib/v1.12/Pkg/src/API.jl:152 [inlined]
[8] #test#81
@ /opt/julia/share/julia/stdlib/v1.12/Pkg/src/API.jl:151 [inlined]
[9] top-level scope
@ /PkgEval.jl/scripts/evaluate.jl:219
[10] include(mod::Module, _path::String)
@ Base ./Base.jl:305
[11] exec_options(opts::Base.JLOptions)
@ Base ./client.jl:321
[12] _start()
@ Base ./client.jl:554
in expression starting at /PkgEval.jl/scripts/evaluate.jl:210
PkgEval failed after 128.83s: package tests unexpectedly errored