Scripts + Packaging Overhaul
I want to refactor/improve our scripts directory for better management of dependencies, packaging, and deploying. Here is an assessment of what currently exists and what I envision changing:
-
docgen.sh
: generates HTML documentation (suesgitlab_style.txt
for formatting)- Change:
-
update to make sure all tutorials are generated -
run docgen.sh
as a part of mergingdevelopment
intomaster
to ensure it works
-
- Change:
-
package_pyarc.sh
: packages pyarc into a tar file to deploy independently- Change:
-
Possibly remove altogether as it 1) doesn't work and 2) may be unnecessary if we expect users to use it from workbench - If keeping then need to ensure it works and add packing of OpenMC, DASSH, and PyGriffin as well.
-
- Change:
-
setup_dependencies.sh
: builds WASP, invokessetup_joblib.sh
- Change:
-
remove as it currently is setup because these things are no longer necessary to build separately -
setup all other dependencies that are necessary (OpenMC, DASSH, PyGriffin, joblib, pandoc)- see below
-
- Change:
-
setup_joblib.sh
: downloads joblib repo and builds from source- Change:
-
remove, joblib should be installed into Workbench conda env from pip
-
- Change:
-
setup_conda.sh
: source this file to enter the Workbench conda env- Change:
-
keep this as it is necessary to install other dependencies, but probably rename
-
- Change:
-
dassh_insall.sh
: installs DASSH from a supplied repo path or downloads from github and installs it into a new conda environment using the Workbench Conda- Change:
- It is not necessary to create a new environment just for DASSH, so install directly into the Workbench env
-
possibly rename for consistency and call from a generalized install_dependencies
script
- Change:
-
dassh_run.sh
: invokes the DASSH conda environment to run dassh from bash- Change:
-
Remove because it is not necessary if DASSH changes to being installed directly into the Workbench env - Note: I already started on updating just the DASSH scripts since I need to update the DASSH version being called anyway
-
- Change:
-
setup_openmc.sh
: installs OpenMC into Workbench env- Change:
-
rename for consistency -
call from a generalized install_dependencies
script -
Possibly add option for users to supply a repository path and build from source instead of conda (could be very complicated but beneficial)
-
- Change:
-
pygriffin_setup.sh
: installs pygriffin into Workbench env from a user-supplied repository path- Change:
-
rename for consistency -
call from a generalized install_dependencies
script -
allow users to not provide a repository path and automatically download repo at a specific commit/release
-
- Change:
After making these changes, this is what I envision as scripts and how they are to be used:
-
docgen.sh
- use as currently being used -
requirements.txt
: list of pip/conda installable packages- includes
joblib
andpandoc
- includes
-
install_dependencies.sh
: invoked by the user to install all open-source dependencies into Workbench environment. Steps:- called by user supplying optional arguments for repository paths (or maybe we make them set a
X_src
path in the.pyarc.rc
file if they want to use a specific path) - source the workbench conda environment (what is currently done with
setup_conda.sh
) - install
requirements.txt
- call
_openmc_install.sh
to install OpenMC - call
_dassh_install.sh
to install DASSH - call
_pygriffin_install.sh
to install PyGriffin
- called by user supplying optional arguments for repository paths (or maybe we make them set a
-
_openmc_install.sh
: not intended to be called independently by user, installs openmc from conda or builds from source from provided path -
_dassh_install.sh
: not intended to be called independently by user, installs dassh by downloading repo or installing from provided path -
_pygriffin_install.sh
: not intended to be called independently by user, installs pygriffin by downloading repo or installing from provided path
Edited by Kiesling, Kalin Rose