Breakthrough-Energy / REISE.jl

Renewable Energy Integration Simulation Engine
https://breakthrough-energy.github.io/docs/
MIT License
30 stars 22 forks source link

Update DataFrames.jl Package Version #193

Open lanesmith opened 1 year ago

lanesmith commented 1 year ago

:beetle:

Bug summary

Our current version of DataFrames.jl is not compatible with all of the code that is implemented in REISE.jl. When including demand flexibility that has any indicated bus-level flexibility or when we specify that the DOE demand flexibility data should be used, the current version of DataFrames.jl does not support one of the functions that we already have implemented.

Code for reproduction

The error occurs because of this, this, and this in the read.jl file of REISE.jl. Essentially, the version of DataFrames.jl that we support does not recognize the :auto symbol, which is used to automatically generate column names, that is being used in the DataFrames.DataFrame function call.

Environment

This occurs with the current REISE environment that we have specified through REISE.jl's Project.toml and Manifest.toml files. Keeping all of the other dependencies the same, updating DataFrames.jl appears to bump the version from 0.21.8 to 0.22.7, which is recent enough to support the functionality described above. One of our collaborators updated DataFrames.jl to this version and the simulation engine works as expected.

With that being said, JuMP.jl is also pretty outdated. Do folks think we should try updating all of the packages, or should we just update DataFrames.jl?

rouille commented 1 year ago

If it is not too much work, I would update all the packages

lanesmith commented 1 year ago

If it is not too much work, I would update all the packages

I don't think it would be any more work than only updating DataFrames.jl. The only concern for me is that we don't have robust unit or integration tests, so it would be tough to make sure that everything still works as expected. I would probably just try the most all-encompassing test that I have in order to make sure things don't break, but that would by no means guarantee that everything still works.