Repository navigation
Julia 1.12.0 issues due to OpenSSL constraints #682
Copy link
Copy link
Closed
JuliaPy/pyjuliapkg
#74Labels
bugSomething isn't workingSomething isn't working
Description
Affects: Both
Describe the bug
It seems like the just-released Julia 1.12.0 is causing OpenSSL compatibility issues.
Here is a CI run output for PySR this morning: https://github.com/MilesCranmer/PySR/actions/runs/18336878040/job/52222871083
ERROR: Unsatisfiable requirements detected for package OpenSSL_jll [458c3c95]:
OpenSSL_jll [458c3c95] log:
├─possible versions are: 3.5.1 or uninstalled
└─restricted to versions 3.0 by project [8c1aadeb] — no versions left
└─project [8c1aadeb] log:
├─possible versions are: 0.0.0 or uninstalled
└─project [8c1aadeb] is fixed to version 0.0.0
Stacktrace:
[1] check_constraints(graph::Pkg.Resolve.Graph)
@ Pkg.Resolve ~/hostedtoolcache/julia/1.12.0/aarch64/share/julia/stdlib/v1.12/Pkg/src/Resolve/graphtype.jl:1046
[2] Pkg.Resolve.Graph(compat::Dict{Base.UUID, Dict{VersionNumber, Dict{Base.UUID, Pkg.Versions.VersionSpec}}}, compat_weak::Dict{Base.UUID, Dict{VersionNumber, Set{Base.UUID}}}, uuid_to_name::Dict{Base.UUID, String}, reqs::Dict{Base.UUID, Pkg.Versions.VersionSpec}, fixed::Dict{Base.UUID, Pkg.Resolve.Fixed}, verbose::Bool, julia_version::VersionNumber)
@ Pkg.Resolve ~/hostedtoolcache/julia/1.12.0/aarch64/share/julia/stdlib/v1.12/Pkg/src/Resolve/graphtype.jl:350
[3] deps_graph(env::Pkg.Types.EnvCache, registries::Vector{Pkg.Registry.RegistryInstance}, uuid_to_name::Dict{Base.UUID, String}, reqs::Dict{Base.UUID, Pkg.Versions.VersionSpec}, fixed::Dict{Base.UUID, Pkg.Resolve.Fixed}, julia_version::VersionNumber, installed_only::Bool)
@ Pkg.Operations ~/hostedtoolcache/julia/1.12.0/aarch64/share/julia/stdlib/v1.12/Pkg/src/Operations.jl:705
[4] resolve_versions!(env::Pkg.Types.EnvCache, registries::Vector{Pkg.Registry.RegistryInstance}, pkgs::Vector{Pkg.Types.PackageSpec}, julia_version::VersionNumber, installed_only::Bool)
@ Pkg.Operations ~/hostedtoolcache/julia/1.12.0/aarch64/share/julia/stdlib/v1.12/Pkg/src/Operations.jl:525
[5] targeted_resolve
@ ~/hostedtoolcache/julia/1.12.0/aarch64/share/julia/stdlib/v1.12/Pkg/src/Operations.jl:1669 [inlined]
[6] tiered_resolve(env::Pkg.Types.EnvCache, registries::Vector{Pkg.Registry.RegistryInstance}, pkgs::Vector{Pkg.Types.PackageSpec}, julia_version::VersionNumber, try_all_installed::Bool)
@ Pkg.Operations ~/hostedtoolcache/julia/1.12.0/aarch64/share/julia/stdlib/v1.12/Pkg/src/Operations.jl:1658
[7] _resolve(io::IOContext{IO}, env::Pkg.Types.EnvCache, registries::Vector{Pkg.Registry.RegistryInstance}, pkgs::Vector{Pkg.Types.PackageSpec}, preserve::Pkg.Types.PreserveLevel, julia_version::VersionNumber)
@ Pkg.Operations ~/hostedtoolcache/julia/1.12.0/aarch64/share/julia/stdlib/v1.12/Pkg/src/Operations.jl:1679
[8] add(ctx::Pkg.Types.Context, pkgs::Vector{Pkg.Types.PackageSpec}, new_git::Set{Base.UUID}; allow_autoprecomp::Bool, preserve::Pkg.Types.PreserveLevel, platform::Base.BinaryPlatforms.Platform, target::Symbol)
...<7 lines>...
env=env,
^^^^^^^^
)
^
File "/Library/Frameworks/Python.framework/Versions/3.13/lib/python3.13/subprocess.py", line 577, in run
raise CalledProcessError(retcode, process.args,
output=stdout, stderr=stderr)
subprocess.CalledProcessError: Command '['/Users/runner/hostedtoolcache/julia/1.12.0/aarch64/bin/julia', '--project=/Users/runner/.julia/environments/pyjuliapkg', '--startup-file=no', '-e', 'import Pkg\nPkg.Registry.update()\nPkg.add([\n Pkg.PackageSpec(name="PythonCall", uuid="6099a3de-0909-46bc-b1f4-468b9a2dfc0d"),\n Pkg.PackageSpec(name="OpenSSL_jll", uuid="458c3c95-2e84-50aa-8efc-19380b2a3a95"),\n Pkg.PackageSpec(name="SymbolicRegression", uuid="8254be44-1295-4e6a-a16d-46603ac705cb", url=raw"https://github.com/MilesCranmer/SymbolicRegression.jl", rev=raw"v2.0.0-alpha.8"),\n Pkg.PackageSpec(name="Serialization", uuid="9e88b42a-f829-5b0c-bbe9-9e923198166b"),\n])\nPkg.resolve()\nPkg.precompile()']' returned non-zero exit status 1.
[juliapkg] Found dependencies: /Library/Frameworks/Python.framework/Versions/3.13/lib/python3.13/site-packages/juliacall/juliapkg.json
[juliapkg] Found dependencies: /Library/Frameworks/Python.framework/Versions/3.13/lib/python3.13/site-packages/pysr/juliapkg.json
[juliapkg] Found dependencies: /Library/Frameworks/Python.framework/Versions/3.13/lib/python3.13/site-packages/juliapkg/juliapkg.json
[juliapkg] Found dependencies: /Users/runner/work/PySR/PySR/pysr/juliapkg.json
[juliapkg] Locating Julia ^1.10.3
[juliapkg] Using Julia 1.12.0 at /Users/runner/hostedtoolcache/julia/1.12.0/aarch64/bin/julia
[juliapkg] Using Julia project at /Users/runner/.julia/environments/pyjuliapkg
[juliapkg] Writing Project.toml:
| [deps]
| PythonCall = "6099a3de-0909-46bc-b1f4-468b9a2dfc0d"
| OpenSSL_jll = "458c3c95-2e84-50aa-8efc-19380b2a3a95"
| SymbolicRegression = "8254be44-1295-4e6a-a16d-46603ac705cb"
| Serialization = "9e88b42a-f829-5b0c-bbe9-9e923198166b"
|
| [compat]
| PythonCall = "=0.9.28"
| OpenSSL_jll = "~3.0"
| Serialization = "^1"
[juliapkg] Installing packages:
| import Pkg
| Pkg.Registry.update()
| Pkg.add([
| Pkg.PackageSpec(name="PythonCall", uuid="6099a3de-0909-46bc-b1f4-468b9a2dfc0d"),
| Pkg.PackageSpec(name="OpenSSL_jll", uuid="458c3c95-2e84-50aa-8efc-19380b2a3a95"),
| Pkg.PackageSpec(name="SymbolicRegression", uuid="8254be44-1295-4e6a-a16d-46603ac705cb", url=raw"https://github.com/MilesCranmer/SymbolicRegression.jl", rev=raw"v2.0.0-alpha.8"),
| Pkg.PackageSpec(name="Serialization", uuid="9e88b42a-f829-5b0c-bbe9-9e923198166b"),
| ])
| Pkg.resolve()
| Pkg.precompile()
Error: Process completed with exit code 1.
@cjdoris any guesses what this is from? Is the OpenSSL_jll constraint required?
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working
Activity
MilesCranmer commentedon Oct 8, 2025
Related to #613?
cjdoris commentedon Oct 8, 2025
Argh yes this is making all the tests fail.
Indeed #613 introduced this feature. It is to ensure that Julia does not expect a version of libopenssl newer than what is actually provided by Python.
Looks like the GitHub runners have Python with libopenssl 3.0 (the previous LTS for openssl) whereas Julia 1.12 has upgraded to use 3.5 (the new LTS). I think that if you install Python from conda-forge instead then you'll get a newer openssl and all will be fine.
The underlying issue is that juliapkg selects the Julia version and THEN resolves Julia packages. But in this case we need to restrict the Julia version to <1.12 based on the package deps. Should be a simple fix, I'll do that now.
MilesCranmer commentedon Oct 8, 2025
Thanks for the quick fix!
cjdoris commentedon Oct 8, 2025
Just doing some upstream testing now but hopefully it's OK now.
cjdoris commentedon Oct 8, 2025
OK yes this appears to be working as intended.
RomeoV commentedon Oct 15, 2025
Is Julia 1.12 support planned?
EDIT: Okay it seems to work fine with something like
juliapkg.json{ "julia": "1.12", "packages": { "MyLib": { "uuid": "...", "path": "../..", "dev": true }, "OpenSSL_jll": { "uuid": "458c3c95-2e84-50aa-8efc-19380b2a3a95", "version": "3.5" } } }and
pyproject.toml(usinguv)moble commentedon Nov 25, 2025
I had such a headache with this. @RomeoV's comment above helped a lot. For me, I didn't need to install
pyopensslor specifyOpenSSL_jllinjuliapkg.json; the only necessary change was just installing withuv. It comes with v3.5... at least on linux and macos runners... 🙄Fix Python CI by using micromamba with OpenSSL 3.5+
Fix Python CI by using micromamba with OpenSSL 3.5+
Fix Python CI by using micromamba with OpenSSL 3.5+
Fix Python CI by using micromamba with OpenSSL 3.5+
Fix Python CI by using micromamba with OpenSSL 3.5+
Fix Python CI by using micromamba with OpenSSL 3.5+
Fix Python CI by using micromamba with OpenSSL 3.5+
Fix Python CI by using micromamba with OpenSSL 3.5+
Fix Python CI by using micromamba with OpenSSL 3.5+