Skip to content

Conversation

@findmyway
Copy link
Collaborator

@findmyway findmyway commented Oct 10, 2025

Julia@v1.10 is the new Long-term support (LTS) release. This PR is an attempt to update the julia dependency.

Note that #1379 is already integrated into this PR.

Though the tests are passed now, most of changes are introduced due to JuliaInterop/CxxWrap.jl#400 (comment) Ideally, we can have an option to turn on the original auto converting feature so that we don't need those verbose [] dereference operations.

@lanctot
Copy link
Collaborator

lanctot commented Oct 10, 2025

Ok great!! Thanks.

However, can you re-enable the Julia tests to it runs on Github Actions and we can see how long it takes?

i.e. uncomment this: https://github.com/findmyway/open_spiel/blob/58b81463b4394772d72ba21d0a891acc7510245e/open_spiel/julia/CMakeLists.txt#L17

@findmyway
Copy link
Collaborator Author

findmyway commented Oct 12, 2025

The CI failed. But I can't reproduce it with my local Mac environment. JuliaInterop/CxxWrap.jl#475 seems to be related. I'll find a linux environment and see how to fix it later.


I can reproduce it in a Linux environment. But the proposed fix in the issue above is a little bit tricky. Prefer to integrate #1379 first.

@lanctot
Copy link
Collaborator

lanctot commented Dec 31, 2025

Ok @findmyway , #1379 has been merged.

Do you have any idea how much use the Julia API is getting? I've been slowly deprecating the other APIs that are unused (leaving them in the repos but marked as unmaintained) if anybody wants to resurrect or help support them.

I am wondering if the Julia API still worth the maintenance burden.. wdyt?

@findmyway
Copy link
Collaborator Author

Do you have any idea how much use the Julia API is getting?

This is the only place I know to check it:

https://juliapkgstats.com/pkg/OpenSpiel

I am wondering if the Julia API still worth the maintenance burden.. wdyt?

I fully understand that and agree that we can deprecate it slowly.

@lanctot
Copy link
Collaborator

lanctot commented Jan 13, 2026

Ran into another problem with Julia that was causing the CI tests to fail:

julia version 1.8.5 is already installed.
++ echo -e '\e[33mjulia version 1.8.5 is already installed.\e[0m'
++ julia --project=/home/runner/work/open_spiel/open_spiel/open_spiel/julia -e 'using Pkg; Pkg.instantiate();'
  Installing known registries into `~/.julia`
ERROR: could not download https://pkg.julialang.org/registry/23338594-aafe-5451-b93e-139f81909106/1301087675fb6f5b1f40c0c05caa3c2ded8b4c00 
Exception: HTTP/2 302 (Operation too slow. Less than 1 bytes/sec transferred the last 20 seconds) while requesting https://pkg.julialang.org/registry/23338594-aafe-5451-b93e-139f81909106/1301087675fb6f5b1f40c0c05caa3c2ded8b4c00
Stacktrace:
  [1] pkgerror(msg::String)
    @ Pkg.Types /opt/hostedtoolcache/julia/1.8.5/x64/share/julia/stdlib/v1.8/Pkg/src/Types.jl:67
  [2] download_registries(io::Base.PipeEndpoint, regs::Vector{Pkg.Registry.RegistrySpec}, depot::String)
    @ Pkg.Registry /opt/hostedtoolcache/julia/1.8.5/x64/share/julia/stdlib/v1.8/Pkg/src/Registry/Registry.jl:177
  [3] download_registries
    @ /opt/hostedtoolcache/julia/1.8.5/x64/share/julia/stdlib/v1.8/Pkg/src/Registry/Registry.jl:163 [inlined]
  [4] download_default_registries(io::Base.PipeEndpoint; only_if_empty::Bool)
    @ Pkg.Registry /opt/hostedtoolcache/julia/1.8.5/x64/share/julia/stdlib/v1.8/Pkg/src/Registry/Registry.jl:110
  [5] download_default_registries(io::Base.PipeEndpoint)
    @ Pkg.Registry /opt/hostedtoolcache/julia/1.8.5/x64/share/julia/stdlib/v1.8/Pkg/src/Registry/Registry.jl:97
  [6] instantiate(ctx::Pkg.Types.Context; manifest::Nothing, update_registry::Bool, verbose::Bool, platform::Base.BinaryPlatforms.Platform, allow_build::Bool, allow_autoprecomp::Bool, kwargs::Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}})
    @ Pkg.API /opt/hostedtoolcache/julia/1.8.5/x64/share/julia/stdlib/v1.8/Pkg/src/API.jl:1506
  [7] instantiate
    @ /opt/hostedtoolcache/julia/1.8.5/x64/share/julia/stdlib/v1.8/Pkg/src/API.jl:1502 [inlined]
  [8] #instantiate#284
    @ /opt/hostedtoolcache/julia/1.8.5/x64/share/julia/stdlib/v1.8/Pkg/src/API.jl:1501 [inlined]
  [9] instantiate()
    @ Pkg.API /opt/hostedtoolcache/julia/1.8.5/x64/share/julia/stdlib/v1.8/Pkg/src/API.jl:1501
 [10] top-level scope
    @ none:1

caused by: HTTP/2 302 (Operation too slow. Less than 1 bytes/sec transferred the last 20 seconds) while requesting https://pkg.julialang.org/registry/23338594-aafe-5451-b93e-139f81909106/1301087675fb6f5b1f40c0c05caa3c2ded8b4c00
Stacktrace:
  [1] (::Downloads.var"#9#18"{IOStream, Base.DevNull, Nothing, Vector{Pair{String, String}}, Float64, Downloads.var"#24#27"{Pkg.PlatformEngines.var"#17#19"}, Bool, Nothing, Bool, String, Bool, Bool})(easy::Downloads.Curl.Easy)
    @ Downloads /opt/hostedtoolcache/julia/1.8.5/x64/share/julia/stdlib/v1.8/Downloads/src/Downloads.jl:387
  [2] with_handle(f::Downloads.var"#9#18"{IOStream, Base.DevNull, Nothing, Vector{Pair{String, String}}, Float64, Downloads.var"#24#27"{Pkg.PlatformEngines.var"#17#19"}, Bool, Nothing, Bool, String, Bool, Bool}, handle::Downloads.Curl.Easy)
    @ Downloads.Curl /opt/hostedtoolcache/julia/1.8.5/x64/share/julia/stdlib/v1.8/Downloads/src/Curl/Curl.jl:88
  [3] #8
    @ /opt/hostedtoolcache/julia/1.8.5/x64/share/julia/stdlib/v1.8/Downloads/src/Downloads.jl:328 [inlined]
  [4] arg_write(f::Downloads.var"#8#17"{Base.DevNull, Nothing, Vector{Pair{String, String}}, Float64, Downloads.var"#24#27"{Pkg.PlatformEngines.var"#17#19"}, Bool, Nothing, Bool, String, Bool, Bool}, arg::IOStream)
    @ ArgTools /opt/hostedtoolcache/julia/1.8.5/x64/share/julia/stdlib/v1.8/ArgTools/src/ArgTools.jl:134
  [5] #7
    @ /opt/hostedtoolcache/julia/1.8.5/x64/share/julia/stdlib/v1.8/Downloads/src/Downloads.jl:327 [inlined]
  [6] arg_read(f::Downloads.var"#7#16"{IOStream, Nothing, Vector{Pair{String, String}}, Float64, Downloads.var"#24#27"{Pkg.PlatformEngines.var"#17#19"}, Bool, Nothing, Bool, String, Bool, Bool}, arg::Base.DevNull)
    @ ArgTools /opt/hostedtoolcache/julia/1.8.5/x64/share/julia/stdlib/v1.8/ArgTools/src/ArgTools.jl:76
  [7] request(url::String; input::Nothing, output::IOStream, method::Nothing, headers::Vector{Pair{String, String}}, timeout::Float64, progress::Pkg.PlatformEngines.var"#17#19", verbose::Bool, debug::Nothing, throw::Bool, downloader::Nothing)
    @ Downloads /opt/hostedtoolcache/julia/1.8.5/x64/share/julia/stdlib/v1.8/Downloads/src/Downloads.jl:326
  [8] #3
    @ /opt/hostedtoolcache/julia/1.8.5/x64/share/julia/stdlib/v1.8/Downloads/src/Downloads.jl:231 [inlined]
  [9] open(f::Downloads.var"#3#4"{Nothing, Vector{Pair{String, String}}, Float64, Pkg.PlatformEngines.var"#17#19", Bool, Nothing, Nothing, String}, args::String; kwargs::Base.Pairs{Symbol, Bool, Tuple{Symbol, Symbol}, NamedTuple{(:write, :lock), Tuple{Bool, Bool}}})
    @ Base ./io.jl:384
 [10] #open_nolock#1
    @ /opt/hostedtoolcache/julia/1.8.5/x64/share/julia/stdlib/v1.8/ArgTools/src/ArgTools.jl:35 [inlined]
 [11] arg_write(f::Function, arg::String)
    @ ArgTools /opt/hostedtoolcache/julia/1.8.5/x64/share/julia/stdlib/v1.8/ArgTools/src/ArgTools.jl:103
 [12] #download#2
    @ /opt/hostedtoolcache/julia/1.8.5/x64/share/julia/stdlib/v1.8/Downloads/src/Downloads.jl:230 [inlined]
 [13] download(url::String, dest::String; verbose::Bool, headers::Vector{Pair{String, String}}, auth_header::Nothing, io::Base.PipeEndpoint)
    @ Pkg.PlatformEngines /opt/hostedtoolcache/julia/1.8.5/x64/share/julia/stdlib/v1.8/Pkg/src/PlatformEngines.jl:285
 [14] download_verify(url::String, hash::Nothing, dest::String; verbose::Bool, force::Bool, quiet_download::Bool)
    @ Pkg.PlatformEngines /opt/hostedtoolcache/julia/1.8.5/x64/share/julia/stdlib/v1.8/Pkg/src/PlatformEngines.jl:348
 [15] download_verify
    @ /opt/hostedtoolcache/julia/1.8.5/x64/share/julia/stdlib/v1.8/Pkg/src/PlatformEngines.jl:318 [inlined]
 [16] download_registries(io::Base.PipeEndpoint, regs::Vector{Pkg.Registry.RegistrySpec}, depot::String)
    @ Pkg.Registry /opt/hostedtoolcache/julia/1.8.5/x64/share/julia/stdlib/v1.8/Pkg/src/Registry/Registry.jl:175
 [17] download_registries
    @ /opt/hostedtoolcache/julia/1.8.5/x64/share/julia/stdlib/v1.8/Pkg/src/Registry/Registry.jl:163 [inlined]
 [18] download_default_registries(io::Base.PipeEndpoint; only_if_empty::Bool)
    @ Pkg.Registry /opt/hostedtoolcache/julia/1.8.5/x64/share/julia/stdlib/v1.8/Pkg/src/Registry/Registry.jl:110
 [19] download_default_registries(io::Base.PipeEndpoint)
    @ Pkg.Registry /opt/hostedtoolcache/julia/1.8.5/x64/share/julia/stdlib/v1.8/Pkg/src/Registry/Registry.jl:97
 [20] instantiate(ctx::Pkg.Types.Context; manifest::Nothing, update_registry::Bool, verbose::Bool, platform::Base.BinaryPlatforms.Platform, allow_build::Bool, allow_autoprecomp::Bool, kwargs::Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}})
    @ Pkg.API /opt/hostedtoolcache/julia/1.8.5/x64/share/julia/stdlib/v1.8/Pkg/src/API.jl:1506
 [21] instantiate
    @ /opt/hostedtoolcache/julia/1.8.5/x64/share/julia/stdlib/v1.8/Pkg/src/API.jl:1502 [inlined]
 [22] #instantiate#284
    @ /opt/hostedtoolcache/julia/1.8.5/x64/share/julia/stdlib/v1.8/Pkg/src/API.jl:1501 [inlined]
 [23] instantiate()
    @ Pkg.API /opt/hostedtoolcache/julia/1.8.5/x64/share/julia/stdlib/v1.8/Pkg/src/API.jl:1501
 [24] top-level scope
    @ none:1
Error: Process completed with exit code 1.

@lanctot
Copy link
Collaborator

lanctot commented Jan 13, 2026

@lanctot
Copy link
Collaborator

lanctot commented Jan 13, 2026

As a result of the above, I've set BUILD_WITH_JULIA to defaut to OFF in 8fad93d

@lanctot
Copy link
Collaborator

lanctot commented Jan 13, 2026

Probably makes sense to deprecate the Julia API now then @findmyway, it's getting to be a bit too hard for me to maintain myself. So I'll close this PR but please re-open if you're able to find a fix.

@lanctot lanctot closed this Jan 13, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants