TidierOrg / Tidier.jl

Meta-package for data analysis in Julia, modeled after the R tidyverse.
MIT License
518 stars 14 forks source link

Dependency error for Julia 1.9 #102

Closed fithisux closed 1 year ago

fithisux commented 1 year ago

I am on an Intel Mac with Julia 1.9.1

Darwin C02CH2W2MD6R.local 22.5.0 Darwin Kernel Version 22.5.0: Thu Jun 8 22:22:22 PDT 2023; root:xnu-8796.121.3~7/RELEASE_X86_64 x86_64

I tried to install Tidier but I get an error about Lathe

(@v1.9) pkg> add Tidier Resolving package versions... ERROR: Unsatisfiable requirements detected for package Lathe [38d8eb38]: Lathe [38d8eb38] log: ├─possible versions are: 0.0.3-0.1.8 or uninstalled ├─restricted to versions by an explicit requirement, leaving only versions: 0.0.3-0.1.8 └─restricted by compatibility requirements with DataFrames [a93c6f00] to versions: uninstalled — no versions left └─DataFrames [a93c6f00] log: ├─possible versions are: 0.11.7-1.5.0 or uninstalled ├─restricted to versions by an explicit requirement, leaving only versions: 0.11.7-1.5.0 └─restricted by compatibility requirements with Tidier [f0413319] to versions: 1.5.0 └─Tidier [f0413319] log: ├─possible versions are: 0.3.0-0.7.6 or uninstalled └─restricted to versions * by an explicit requirement, leaving only versions: 0.3.0-0.7.6

Is it a problem on my side?

kdpsingh commented 1 year ago

I'm not sure what to make of this. I think it's a downstream dependency issue because Tidier doesn't directly depend on Lathe.

restricted by compatibility requirements with DataFrames [a93c6f00] to versions: uninstalled — no versions left

This seems to suggest that DataFrames is imposing a restriction on Lathe versions.

But DataFrames doesn't directly depend on Lathe either: https://github.com/JuliaData/DataFrames.jl/blob/main/Project.toml

Anyone else have suggestions? @bkamins @lazarusA @pdimens

lazarusA commented 1 year ago

I would ask @fithisux for his env status. julia>] st Something odd with his env?

fithisux commented 1 year ago

(@v1.9) pkg> st Status ~/.julia/environments/v1.9/Project.toml [336ed68f] CSV v0.10.11 ⌅ [a93c6f00] DataFrames v0.22.7 [38e38edf] GLM v1.8.3 [7073ff75] IJulia v1.24.2 ⌃ [38d8eb38] Lathe v0.1.6 [f0e99cf1] MLBase v0.9.1 [91a5bcdd] Plots v1.38.16 [c3e4b0f8] Pluto v0.19.26 [f3b207a7] StatsPlots v0.15.5 Info Packages marked with ⌃ and ⌅ have new versions available, but those with ⌅ are restricted by compatibility constraints from upgrading. To see why use status --outdated

(@v1.9) pkg>

fithisux commented 1 year ago

Is that ok @lazarusA ?

kdpsingh commented 1 year ago

I think the issue is that Lathe requires a really old version of DataFrames (v0.22), which is preventing DataFrames from being upgraded. Tidier relies on features in a more recent version of DataFrames (v1.5.0).

So I would recommend manually updating DataFrames (] update DataFrames) and then trying to install Tidier. I'm still a bit new to Julia so will look to @lazarusA if that doesn't work.

Thanks.

fithisux commented 1 year ago

Joke aside @kdpsingh if you are new to Julia how do you make this wonderful package?

I found many times R frustrating (I am a software engineer Python/Java and some Golang) so Julia now seems to be refreshing thing. I like the effort. Makes e more determined to move to R and have real quality in my scientific explorations

fithisux commented 1 year ago

I do not think DataFrames can be upgraded @kdpsingh . It has an x next to it.

fithisux commented 1 year ago

I uninstalled Lathe. Things are OK now. Thank you @kdpsingh

kdpsingh commented 1 year ago

Maybe you need to uninstall Lathe?

I say this because I think Lathe is preventing DataFrames from being upgraded.

kdpsingh commented 1 year ago

Joke aside @kdpsingh if you are new to Julia how do you make this wonderful package?

Aw thank you! I have developed a handful of R packages and written plenty of Python/JS code (and done meta-programming in R and JS) so those skills are highly transferable to Julia.

But there are still big portions of Julia where I'm a complete newbie, like variable types (composite? parametric? hierarchical?) and environments.