jdeldre / ViscousStreaming.jl

computational tools for viscous streaming flows
1 stars 2 forks source link

Dependent package version clashes #5

Open quasarsrus opened 2 years ago

quasarsrus commented 2 years ago

Hello,

Julia's flux.jl package seemed to provide some interesting abilities in the domain of designing and training neural networks. My recent exposure to the same, albeit limited, has drawn my attention. I recently encountered a relatively obscure method mismatch error pertaining to the 'Chain' of neural networks and training them. After extensive debugging, I seemed to have stumbled across a more definitive cause of the error(whilst trying to perform the operation ] add ChainRulesCore@1.12.0):

Unsatisfiable requirements detected for package IterativeSolvers [42fd0dbc]: IterativeSolvers [42fd0dbc] log: ├─possible versions are: 0.7.0-0.9.2 or uninstalled ├─restricted by compatibility requirements with ConstrainedSystems [c257ce95] to versions: 0.8.0-0.8.5 │ └─ConstrainedSystems [c257ce95] log: │ ├─possible versions are: 0.1.0-0.2.7 or uninstalled │ └─restricted to versions 0.1.2-0.1 by ViscousStreaming [47fb7046], leaving only versions 0.1.2 │ └─ViscousStreaming [47fb7046] log: │ ├─possible versions are: 0.1.0 or uninstalled │ └─ViscousStreaming [47fb7046] is fixed to version 0.1.0 └─restricted by compatibility requirements with DiffEqBase [2b5f629d] to versions: 0.9.0-0.9.2 — no versions left └─DiffEqBase [2b5f629d] log: ├─possible versions are: 3.13.2-6.81.3 or uninstalled ├─restricted by compatibility requirements with Reexport [189a3867] to versions: [3.13.2-6.53.6, 6.57.0-6.81.3] or uninstalled │ └─Reexport [189a3867] log: │ ├─possible versions are: 0.2.0-1.2.2 or uninstalled │ └─restricted to versions 0.2 by ViscousStreaming [47fb7046], leaving only versions 0.2.0 │ └─ViscousStreaming [47fb7046] log: see above ├─restricted by compatibility requirements with ChainRulesCore [d360d2e6] to versions: [3.13.2-6.10.0, 6.59.1, 6.69.0-6.81.3] or uninstalled │ └─ChainRulesCore [d360d2e6] log: │ ├─possible versions are: 0.1.0-1.12.0 or uninstalled │ └─restricted to versions 1.12.0 by an explicit requirement, leaving only versions 1.12.0 └─restricted by compatibility requirements with DiffEqCallbacks [459566f4] to versions: 6.11.0-6.81.3, leaving only versions: [6.59.1, 6.69.0-6.81.3] └─DiffEqCallbacks [459566f4] log: ├─possible versions are: 2.0.0-2.20.1 or uninstalled └─restricted to versions 2.14.0-2 by ViscousStreaming [47fb7046], leaving only versions 2.14.0-2.20.1 └─ViscousStreaming [47fb7046] log: see above

Stacktrace: [1] propagate_constraints!(graph::Pkg.Resolve.Graph, sources::Set{Int64}; log_events::Bool) @ Pkg.Resolve C:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.6\Pkg\src\Resolve\graphtype.jl:1048 [2] propagate_constraints! (repeats 2 times) @ C:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.6\Pkg\src\Resolve\graphtype.jl:989 [inlined] [3] simplify_graph!(graph::Pkg.Resolve.Graph, sources::Set{Int64}; clean_graph::Bool) @ Pkg.Resolve C:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.6\Pkg\src\Resolve\graphtype.jl:1503 [4] simplify_graph! (repeats 2 times) @ C:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.6\Pkg\src\Resolve\graphtype.jl:1503 [inlined] [5] resolve_versions!(ctx::Pkg.Types.Context, pkgs::Vector{Pkg.Types.PackageSpec}) @ Pkg.Operations C:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.6\Pkg\src\Operations.jl:405 [6] targeted_resolve(ctx::Pkg.Types.Context, pkgs::Vector{Pkg.Types.PackageSpec}, preserve::Pkg.Types.PreserveLevel) @ Pkg.Operations C:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.6\Pkg\src\Operations.jl:1210 [7] tiered_resolve(ctx::Pkg.Types.Context, pkgs::Vector{Pkg.Types.PackageSpec}) @ Pkg.Operations C:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.6\Pkg\src\Operations.jl:1196 [8] _resolve @ C:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.6\Pkg\src\Operations.jl:1216 [inlined] [9] add(ctx::Pkg.Types.Context, pkgs::Vector{Pkg.Types.PackageSpec}, new_git::Vector{Base.UUID}; preserve::Pkg.Types.PreserveLevel, platform::Base.BinaryPlatforms.Platform) @ Pkg.Operations C:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.6\Pkg\src\Operations.jl:1231 [10] add(ctx::Pkg.Types.Context, pkgs::Vector{Pkg.Types.PackageSpec}; preserve::Pkg.Types.PreserveLevel, platform::Base.BinaryPlatforms.Platform, kwargs::Base.Iterators.Pairs{Symbol, IOContext{IOStream}, Tuple{Symbol}, NamedTuple{(:io,), Tuple{IOContext{IOStream}}}}) @ Pkg.API C:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.6\Pkg\src\API.jl:203 [11] add(pkgs::Vector{Pkg.Types.PackageSpec}; io::IOContext{IOStream}, kwargs::Base.Iterators.Pairs{Union{}, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}) @ Pkg.API C:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.6\Pkg\src\API.jl:79 [12] add(pkgs::Vector{Pkg.Types.PackageSpec}) @ Pkg.API C:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.6\Pkg\src\API.jl:77 [13] do_cmd!(command::Pkg.REPLMode.Command, repl::IJulia.MiniREPL) @ Pkg.REPLMode C:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.6\Pkg\src\REPLMode\REPLMode.jl:408 [14] do_cmd(repl::IJulia.MiniREPL, input::String; do_rethrow::Bool) @ Pkg.REPLMode C:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.6\Pkg\src\REPLMode\REPLMode.jl:386 [15] top-level scope @ In[6]:1 [16] eval @ .\boot.jl:360 [inlined] [17] include_string(mapexpr::typeof(REPL.softscope), mod::Module, code::String, filename::String) @ Base .\loading.jl:1094

Uninstalling ViscousStreaming.jl seems to bypass the error above. To me, it seems to be related to, but not restricted to, versions of packages such as 'iterativesolvers.jl', 'DiffEqBase.jl' etc. Perhaps updating the subpackage versions may help?

I would highly appreciate your help on this matter. Thank you.

jdeldre commented 2 years ago

The package needs several updates, including this. There is a current effort to update it, based on a major update to the ImmersedLayers.jl dependency.

quasarsrus commented 2 years ago

I appreciate your response. If you're intrigued, I'll be glad to showcase my usage of the fluid-particle dynamics simulation. Also, what would be a typical time bound for an update of this scale?

quasarsrus commented 2 years ago

After recent toggling with the package version compatibility, I observed a correlation that might be useful.

The primary issue is that ViscousStreaming.jl utilises some subpackage that uses an older version of ChainRulesCore (v0.9.45). Any effort to install a newer version of it (v1.15.3) is met with various subpackage version clashes. Changing versions of one particular such subpackage (in combination with others), CartesianGrids.jl which is restricted to v0.1.5-v0.1.9 in ViscousStreaming.jl, to v0.1.5-v0.1.21 fixes this issue. I am able to install newer versions of ChainRulesCore.jl. The downside is it particularly breaks ViscousStreaming.jl. It fails to precompile and is not able to import from ConstrainedSystems.jl.

Maybe this may help.