JuliaData / CSV.jl

Utility library for working with CSV and other delimited files in the Julia programming language
https://csv.juliadata.org/
Other
459 stars 141 forks source link

Can't transfer CSV.jl v0.10.11 from Windows to Linux #1110

Closed klwlevy closed 10 months ago

klwlevy commented 10 months ago

I don't manage to transfer a julia project from my windows development to a Linux production server and it seems to be related to compatibility issues around CSV.jl. (I have Julia 1.8.2 installed on both machines.)

Here is a MWE of what happens for a Julia project consisting only of Manifest.toml and Project.toml and only CSV v0.10.11. All good on windows: ´´´ (pkg_linux) pkg> st Status C:\Users\B046326\Levy\projects\test_projects\pkg_linux\Project.toml [336ed68f] CSV v0.10.11

This is what happens on when I activate this project on linux: ´´´ (pkg_linux) pkg> st Status ~/projects/pkg_linux/Project.toml → [336ed68f] CSV v0.10.11 Info Packages marked with → are not downloaded, use instantiate to download

(pkg_linux) pkg> instantiate ERROR: expected package PrecompileTools [aea7be01] to be registered

(pkg_linux) pkg> up Updating ~/projects/pkg_linux/Project.toml [336ed68f] ↓ CSV v0.10.11 ⇒ v0.10.6 Updating ~/projects/pkg_linux/Manifest.toml [336ed68f] ↓ CSV v0.10.11 ⇒ v0.10.6 [944b1d66] ↓ CodecZlib v0.7.2 ⇒ v0.7.0 [34da2185] ↓ Compat v4.9.0 ⇒ v4.3.0 [9a962f9c] ↓ DataAPI v1.15.0 ⇒ v1.12.0 [842dd82b] ↓ InlineStrings v1.4.0 ⇒ v1.2.2 [bac558e1] ↓ OrderedCollections v1.6.2 ⇒ v1.4.1 [69de0a69] ↓ Parsers v2.7.2 ⇒ v2.4.2 [aea7be01] - PrecompileTools v1.1.2 [21216c6a] - Preferences v1.4.0 [91c51154] ↓ SentinelArrays v1.4.0 ⇒ v1.3.16 [66db9d55] + SnoopPrecompile v1.0.1 [bd369af6] ↓ Tables v1.10.1 ⇒ v1.10.0 [3bb67fe8] ↓ TranscodingStreams v0.9.13 ⇒ v0.9.9 [76eceee3] - WorkerUtilities v1.6.1 [fa267f1f] - TOML v1.0.0

(pkg_linux) pkg> st Status ~/projects/pkg_linux/Project.toml [336ed68f] CSV v0.10.6 ´´´

I don't understand why it downgrades to CSV 0.10.6. I am depending on the bugfix https://github.com/JuliaData/CSV.jl/pull/1081 which was implemented in CSV 0.10.10.

What is the problem with PrecompileTools (only on linux and not on windows)?

I thought the whole purpose of the toml files was to ensure replicability between computers so I am confused and would appreciate any help to resolve the problem.

klwlevy commented 10 months ago

I think I found a solution. The command Pkg.Registry.add() on my linux machine did the trick. Thanks for a great package.

´´´ julia> Pkg.Registry.add() Installing known registries into ~/.julia true

(pkg_linux) pkg> st Status ~/projects/pkg_linux/Project.toml → [336ed68f] CSV v0.10.11 Info Packages marked with → are not downloaded, use instantiate to download

(pkg_linux) pkg> instantiate Installed OrderedCollections ─ v1.6.2 Installed DataAPI ──────────── v1.15.0 Installed SentinelArrays ───── v1.4.0 Installed Tables ───────────── v1.10.1 Installed CodecZlib ────────── v0.7.2 Installed Compat ───────────── v4.9.0 Installed TranscodingStreams ─ v0.9.13 Installed Preferences ──────── v1.4.0 Installed PrecompileTools ──── v1.1.2 Installed CSV ──────────────── v0.10.11 Installed Parsers ──────────── v2.7.2 Precompiling project... 15 dependencies successfully precompiled in 33 seconds. 8 already precompiled.

(pkg_linux) pkg> st Status ~/projects/pkg_linux/Project.toml [336ed68f] CSV v0.10.11 ´´´

quinnj commented 10 months ago

Glad you figured it out!