spine-tools / Spine-Toolbox

Spine Toolbox is an open source Python package to manage data, scenarios and workflows for modelling and simulation. You can have your local workflow, but work as a team through version control and SQL databases.
https://www.tools-for-energy-system-modelling.org/
GNU Lesser General Public License v3.0
69 stars 17 forks source link

Bundling SpineOpt and Julia installation inside Toolbox #2798

Open nelliputkonen opened 3 months ago

nelliputkonen commented 3 months ago

To ease the installation process for someone who is starting to use SpineOpt (for example, we have 30 student next spring at Tampere University who will have to install SpineOpt), it would be most convenient if the currently manual steps of installing and finding Julia and then installing SpineOpt could be bundled into single "Install SpineOpt" step within Toolbox, that would configure Julia installation in the background. If at all possible, the installation could further include downloading a template SpineOpt workflow + template database (see SpineOpt issue https://github.com/spine-tools/SpineOpt.jl/issues/1022 on improving installation instructions and adding a ready workflow and template database to start out with).

See discussion on issue https://github.com/spine-tools/Spine-Toolbox/issues/2797. If the approach suggested above is taken, then it would mean closing the linked issue with option 3: Hide Install Julia button.

As additional ideas, this could also be implemented for other tools, at least FlexTool...?

ptsavol commented 2 months ago

A portable Julia is available in https://julialang.org/downloads/. We can use the same mechanishm than with the embedded Python to first download the file, unzip to a specific folder and then make Spine Toolbox use this as the default Julia when the app is frozen and there's no Julia in the path. It should be possible to create a new environment for the portable Julia in the make_bundle.yml as well and then install SpineOpt into that environment.