Pkg安装add Interact InteractBulma Mux WebIO之后PowerSimulationsDynamics,Makie包版本降级影响项目开发

在某个项目中需要用到PowerSystems,PowerSimulationsDynamics,Makie,以及Interact,Mux,WebIO等包,但是这里碰到了包版本严重降级问题,导致使用不便,请问如何解决。具体现象如下:
由于Interact、InteractBulma、Mux、WebIO等包及其某些依赖包久未更新,因此其依赖包的版本极其低,导致在项目中add Interact InteractBulma Mux WebIO之后,PowerSystems,PowerSimulationsDynamics,Makie等包的版本均发生了降级,尤其是PowerSimulationsDynamics的版本从0.6.2降为0.3.0,PowerSimulationsDynamics 0.3.0功能比0.6.2少而且文档查询很不方便,而且0.6.2的很多重要函数都已更改,严重影响项目开发。

请问有何办法,能够在add Interact InteractBulma Mux WebIO之后,PowerSystems,PowerSimulationsDynamics,Makie等包的版本仍能保持最新。

目前我能想到的暂时只有将Interact InteractBulma Mux WebIO以及其所有的依赖包均下载到本地,手动编辑其代码并从本地安装,但这样工作量巨大,因为依赖树巨大,需要编辑的包太多了,请问还有没有其他好的办法

你可以尝试 pkg> add PowerSimulationsDynamics@0.6 以及 pkg> pin PowerSImulationsDynamics.

如果之前没有使用过项目目录下单独的 Project.toml 管理依赖的话,也可以通过 pkg> activate 来做。

(psysverify) pkg> pin AlgebraOfGraphics DataFrames DifferentialEquations Gadfly Makie Plots PalmerPenguins PowerSimulations PowerSimulationsDynamics PowerSystems RDatasets WGLMakie
   Resolving package versions...
    Updating `E:\seprojs\NREL-SIIP\psysverify\Project.toml`
  [cbdf2221] ~ AlgebraOfGraphics v0.5.2 ⇒ v0.5.2 ⚲
  [a93c6f00] ~ DataFrames v1.2.2 ⇒ v1.2.2 ⚲       
  [0c46a032] ~ DifferentialEquations v6.18.0 ⇒ v6.18.0 ⚲
  [c91e804a] ~ Gadfly v1.3.3 ⇒ v1.3.3 ⚲
  [ee78f7c6] ~ Makie v0.15.1 ⇒ v0.15.1 ⚲
  [8b842266] ~ PalmerPenguins v0.1.2 ⇒ v0.1.2 ⚲
  [91a5bcdd] ~ Plots v1.21.1 ⇒ v1.21.1 ⚲
  [e690365d] ~ PowerSimulations v0.14.7 ⇒ v0.14.7 ⚲
  [398b2ede] ~ PowerSimulationsDynamics v0.6.2 ⇒ v0.6.2 ⚲
  [bcd98974] ~ PowerSystems v1.10.0 ⇒ v1.10.0 ⚲
  [ce6b1742] ~ RDatasets v0.7.5 ⇒ v0.7.5 ⚲
  [276b4fcb] ~ WGLMakie v0.4.5 ⇒ v0.4.5 ⚲
    Updating `E:\seprojs\NREL-SIIP\psysverify\Manifest.toml`
  [cbdf2221] ~ AlgebraOfGraphics v0.5.2 ⇒ v0.5.2 ⚲
  [a93c6f00] ~ DataFrames v1.2.2 ⇒ v1.2.2 ⚲
  [0c46a032] ~ DifferentialEquations v6.18.0 ⇒ v6.18.0 ⚲
  [c91e804a] ~ Gadfly v1.3.3 ⇒ v1.3.3 ⚲
  [ee78f7c6] ~ Makie v0.15.1 ⇒ v0.15.1 ⚲
  [8b842266] ~ PalmerPenguins v0.1.2 ⇒ v0.1.2 ⚲
  [91a5bcdd] ~ Plots v1.21.1 ⇒ v1.21.1 ⚲
  [e690365d] ~ PowerSimulations v0.14.7 ⇒ v0.14.7 ⚲
  [398b2ede] ~ PowerSimulationsDynamics v0.6.2 ⇒ v0.6.2 ⚲
  [bcd98974] ~ PowerSystems v1.10.0 ⇒ v1.10.0 ⚲
  [ce6b1742] ~ RDatasets v0.7.5 ⇒ v0.7.5 ⚲
  [276b4fcb] ~ WGLMakie v0.4.5 ⇒ v0.4.5 ⚲

(psysverify) pkg> add Interact InteractBulma Mux WebIO Blink
   Resolving package versions...
ERROR: Unsatisfiable requirements detected for package Observables [510215fc]:
 Observables [510215fc] log:
 ├─possible versions are: 0.2.0-0.4.0 or uninstalled
 ├─restricted by compatibility requirements with WebIO [0f1e0344] to versions: 0.2.0-0.3.3
 │ └─WebIO [0f1e0344] log:
 │   ├─possible versions are: 0.2.5-0.8.15 or uninstalled
 │   ├─restricted to versions * by an explicit requirement, leaving only versions 0.2.5-0.8.15
 │   └─restricted by compatibility requirements with Blink [ad839575] to versions: 0.3.0-0.8.15
 │     └─Blink [ad839575] log:
 │       ├─possible versions are: 0.8.0-0.12.5 or uninstalled
 │       └─restricted to versions * by an explicit requirement, leaving only versions 0.8.0-0.12.5
 └─restricted by compatibility requirements with Makie [ee78f7c6] to versions: 0.4.0 — no versions left
   └─Makie [ee78f7c6] log:
     ├─possible versions are: 0.9.0-0.15.2 or uninstalled
     └─restricted to versions 0.15.1 by an explicit requirement, leaving only versions 0.15.1

怎么办,还有办法吗

这里的实际问题是上游更新不及时,所以只能通过给上游提交 issue 或者PR去修复它。

使用 pin 的话相当于是把那些最重要的版本给固定,允许一些不重要的版本降级,Makie, Plots 这种有超多依赖的包固定版本了基本上就没戏了。

谢谢,我再想想办法

https://pkgdocs.julialang.org/v1/compatibility/#Fixing-conflicts

不能直接改版本号的话就只能试试通过IPC的方式调用了

好的,谢谢,我详细参考一下