The package DataFrames.jl is stuck in version v1.3.6 in my environment. I looked at Manifest.jl and deleted all the packages I could that were dependencies. Then I tried to update DataFrames.jl and still it did not update.
How can I find which packages are preventing DataFrames.jl from updating, and what should I do to perform the update?
In the package mode of the REPL, you can use the command st --outdated
to get information about which package(s) is blocking the upgrade. I’m not sure about your setup, but I recommend using project specific environments to minimize version conflicts in large global environments.
1 Like
I had tried this but all I got was:
⌃ [a93c6f00] DataFrames v1.3.6 (<v1.6.1)
⌅ [a1bb12fb] Electron v3.1.2 (<v5.0.0): DataVoyager, ElectronDisplay
⌃ [28b8d3ca] GR v0.72.8 (<v0.72.10)
⌃ [bdcacae8] LoopVectorization v0.12.150 (<v0.12.165)
⌃ [add582a8] MLJ v0.19.5 (<v0.20.0)
⌅ [2913bbd2] StatsBase v0.33.21 (<v0.34.2): ScikitLearn
⌅ [d2c73de3] GR_jll v0.72.8+0 (<v0.72.10+0): GR
It does not specify which packages are preventing DataFrames.jl from updating. Or at least I believe so.
The arrow up seems to indicate that DataFrames is not blocked: ⌃ [a93c6f00] DataFrames v1.3.6 (<v1.6.1)
What happens if you try update DataFrames
?
Nothing happens. It continues in version v1.3.6.
@Soldalma Could you post the relevant parts of your Project.toml to see if we can replicate what’s happening to you?
I reproduced the environment given the package versions above with
(dataframes) pkg> add Electron@3.1.2, DataFrames@1.3.6, GR@0.72.8, LoopVectorization@0.12.150, MLJ@0.19.5, StatsBase@0.33.21
...
...
...
(dataframes) pkg> st
Status `~/tmp/dataframes/Project.toml`
⌃ [a93c6f00] DataFrames v1.3.6
⌃ [a1bb12fb] Electron v3.1.2
⌃ [28b8d3ca] GR v0.72.8
⌃ [bdcacae8] LoopVectorization v0.12.150
⌃ [add582a8] MLJ v0.19.5
⌃ [2913bbd2] StatsBase v0.33.21
Info Packages marked with ⌃ have new versions available and may be upgradable.
Updating DataFrames
works fine with up --preserve=direct DataFrames
(dataframes) pkg> up --preserve=direct DataFrames
Updating registry at `~/.julia/registries/KM3NeT`
Updating git-repo `git@git.km3net.de:common/julia-registry.git`
Updating registry at `~/.julia/registries/General.toml`
Updating `~/tmp/dataframes/Project.toml`
[a93c6f00] ↑ DataFrames v1.3.6 ⇒ v1.6.1
Updating `~/tmp/dataframes/Manifest.toml`
[a93c6f00] ↑ DataFrames v1.3.6 ⇒ v1.6.1
[59287772] - Formatting v0.4.2
[842dd82b] + InlineStrings v1.4.0
[b964fa9f] + LaTeXStrings v1.3.0
[08abe8d2] ↑ PrettyTables v1.3.1 ⇒ v2.2.7
[91c51154] + SentinelArrays v1.4.0
[892a3eda] + StringManipulation v0.3.4
Precompiling project...
9 dependencies successfully precompiled in 19 seconds. 198 already precompiled.
(dataframes) pkg> st
Status `~/tmp/dataframes/Project.toml`
[a93c6f00] DataFrames v1.6.1
⌃ [a1bb12fb] Electron v3.1.2
⌃ [28b8d3ca] GR v0.72.8
⌃ [bdcacae8] LoopVectorization v0.12.150
⌃ [add582a8] MLJ v0.19.5
⌃ [2913bbd2] StatsBase v0.33.21
Info Packages marked with ⌃ have new versions available and may be upgradable.
If you try to add DataFrames@1.6.1
directly, it should tell you more. If you need more help, the output of your status
would be beneficial as @g-gundam already pointed out
4 Likes
I would always use a local project and not the global environment. You can create a local project environment with:
mkdir MyProject
cd MyProject
julia --project="."
]
add <all the packages this project needs>
The next time you launch Julia just use julia --project
to launch it.
This usually avoids these kind of issues.
See also: Working with Julia projects | Julia programming notes
4 Likes
Try ] status --outdated --manifest
to include all dependencies.
You can also try forcing a more recent version, e.g
] add --preserve=direct DataFrames@1.6
which should result in an error message that tells you about the conflict. Careful though, the dependency solver might find a solution by downgrading some non-direct dependencies (those which you haven’t added specifically to the project).
I tried up --preserve=direct DataFrames
and it had no effect. DataFrames remained on version v1.3.6.
Then I removed the DataFrames package and did
add DataFrames@1.6.1
The package was not added. This is what appeared on the REPL:
(BWModule) pkg> add DataFrames@1.6.1
Resolving package versions...
ERROR: Unsatisfiable requirements detected for package Compat [34da2185]:
Compat [34da2185] log:
├─possible versions are: 1.0.0-4.10.0 or uninstalled
├─restricted by compatibility requirements with DataFrames [a93c6f00] to versions: 4.2.0-4.10.0
│ └─DataFrames [a93c6f00] log:
│ ├─possible versions are: 0.11.7-1.6.1 or uninstalled
│ ├─restricted to versions * by Utils [2bd11c06], leaving only versions: 0.11.7-1.6.1
│ │ └─Utils [2bd11c06] log:
│ │ ├─possible versions are: 0.1.1 or uninstalled
│ │ └─Utils [2bd11c06] is fixed to version 0.1.1
│ └─restricted to versions 1.6.1 by an explicit requirement, leaving only versions: 1.6.1
└─restricted by compatibility requirements with RDates [42063a9e] to versions: 3.31.0-3.46.2 — no versions left
└─RDates [42063a9e] log:
├─possible versions are: 0.1.0-0.5.1 or uninstalled
├─restricted to versions * by an explicit requirement, leaving only versions: 0.1.0-0.5.1
└─restricted by compatibility requirements with HolidayCalendars [805b3977] to versions: 0.5.1
└─HolidayCalendars [805b3977] log:
├─possible versions are: 0.1.0 or uninstalled
└─restricted to versions * by an explicit requirement, leaving only versions: 0.1.0
I then removed the packages RDates and HolidayCalendars and tried again
add DataFrames@1.6.1
That worked. The DataFrames package was updated to version 1.6.1
3 Likes