But if I start a new fresh environment and I ]add https://github.com/yakir12/Format2DB.jl, for some reason, CSV.jl is set to v0.3.1. Which actually doesn’t work for me (I suspect CSV.File didn’t exit back then).
Any ideas on how to move forward on this…?
BTW, my “parent” stack includes only BenchmarkTools, PkgSkeleton, and Revise.
For a MWE simply activate and add https://github.com/yakir12/Format2DB.jl in a temp folder or some such and look for the reported version of CSV.jl. It should be north of v0.5 but it will be v0.3.1.
Was the same situation for me, but I solved it by adding Tables as a direct dep anyhow (with fixed version). I don’t quite understand either, worked for me – maybe give it a try?
Packages don’t pin dependency versions with the Manifest.toml. Manifest.toml is for applications. If you want your package to restrict the Tables version, use the [compat] section in its Project.toml.
Or more simply, just pin the version in your tmp environment above:
Agreed. Since I don’t quite understand the version interaction that’s causing it, just reported at https://github.com/JuliaData/Tables.jl/issues/152. Thanks for verifying someone else is seeing the same thing! Sometimes the version interactions baffle me.
The issue here is I believe due to a past version of DataFrames (0.19.4) that had Tables.jl compat like ">= 0.2.3". With Tables.jl 1.0 now released, the pkg resolver sees that the current CSV release doesn’t support Tables.jl 1.0, so it tries to find a past version where it’s dependencies (including DataFrames) are all satisfied and due to the lack of correct bounds, finds the old version that “seems” to support Tables.jl 1.0, but actually doesn’t.
A good lesson in making sure we follow proper semver.
It looks as if JSONTables also prevents Tables from getting to 1.0.1 from 0.2.11. If I ]rm JSONTables, it causes a major downgrade of ODBC and PrettyTables.