1

I am designing an environment for productive research, i.e. writing, data-analysis, publication, etc.

In order to share the final results with others, I need to find a way to package this and to set up the local installation.

The project depends on Anaconda, so conda as a package manager is available. It also includes

  • Pandoc and some pandoc packages, some will have to be fetched from Github directly because some versions are not available via conda-forge (doable in conda)
  • Atom and Atom packages; they should be installed and configured by my script (this works on the CLI via the apm package manager)
  • Node.js and Mermaid and a few other JS packages, which require npm calls
  • Some file-system-level operations, like deleting parts from packages where I only need a portion from, creating symlinks and aliases etc.
  • Maybe some Python code for modifying yaml/json/ini files or reading therefrom.

The main project will reside in a Github repository. It will be fine for users to clone it from there and start a build script locally.

My idea is to write a Bash shell script that

  • creates a conda environment based on requirements.yaml for everything that can be done this way
  • installs other parts using CLI commands (wget/curl etc.)
  • does all necessary modifications using CLI commands, maybe using a few short Python scripts (e.g. for changing or reading JSON or yaml files).
  • My local usage will be on OSX Big Sur, Linux should be supported, Windows compatibility would be nice-to-have.

Before I start:

  • Is this approach viable? I think it will be pretty transparent, but of course also a bit proprietary.
  • Docker is likely overkill for my purpose, and I also read that the execution will be slow on OSX.
  • The same environment will likely be installed multiple times on the same users' machine, so it is important that I can control e.g. the usage of existing packages and files via aliases or symlinks. It is not important that the multiple installations are decoupled for the non-python/non-conda parts (e.g. atom, node.js, mermaid could be the same binaries for all installations; just the set of Python packages might vary by installation).

Thanks for your expertise!

Martin Hepp
  • 1,380
  • 12
  • 20

0 Answers0