https://github.com/repronim/reproshell
Shell (bash only ATM) configuration to facilitate reproducible research
https://github.com/repronim/reproshell
Last synced: 12 months ago
JSON representation
Shell (bash only ATM) configuration to facilitate reproducible research
- Host: GitHub
- URL: https://github.com/repronim/reproshell
- Owner: ReproNim
- License: apache-2.0
- Created: 2019-05-16T03:16:04.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2019-06-06T13:08:09.000Z (about 7 years ago)
- Last Synced: 2025-04-09T21:48:54.373Z (about 1 year ago)
- Size: 6.84 KB
- Stars: 0
- Watchers: 8
- Forks: 1
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# reproshell
Shell (bash only ATM) configuration to facilitate reproducible research
# Perspective features
Although some features are inspired by prototype implementation to be used within singularity container environments, they are applicable for any, even direct invocation.
- **Deployment**
- [ ] could be used as a standalone configuration
- [ ] could be "pluggable", i.e. the shell configuration to use within containers and remote sessions while "interfacing back" various session artifacts (e.g., history)
- **Features**, most of which should be configurable from outside (for "pluggable" mode of operation)
- [ ] **infinite shell history** (unless explicitly requested to be session only, e.g. within container run)
- [ ] **VCS support** (to show when under some VCS and in what branch/state it is)
- **avoidance of session/execution side-effects**
- [ ] isolated `/tmp`
- [ ] (optionally) isolated `$HOME`? so no side-effects from `~/.local` installations etc
- [ ] (optionally) sanitized environment variables
- **informative and pretty (to >80% of users) prompt**
- PS1 should should
- [ ] show being under some container/conda/virtualenv environment
- [ ] show full current path
- [ ] show user (in particular when root)
- [ ] (may be) # of commands in the history
- additional "pluggable" indicators, such as
- [ ] being in a session traced by reprozip or reproman.
- [ ] being outside of a set of "tracked" directories (e.g., within `datalad run` execution)
- **integrations**
- [ ] `datalad containers-run` or ReproNim/containers to replace parts of the custom .bashrc/singularity_run prototype
- [ ] `reproman execute` and possibly `run` to provide consistent interface across wide range of resources
- Metrics collection
- [ ] could be the one to remind users whenever popularity-contest or our custom usage reporting facility is not enabled
- [ ] (may be) even activate/deactivate handling for pluggable indicators etc (e.g. to enable/disable tracing)
- [ ] could collect (and later aggregate/join) DueCredit reports from interim executions
- [ ] may be optionally could be made persistent via starting actual session under screen or tmux. Then could come with some custom nice .screenrc settings to visualize current load/
So, some features (infinite history, VCS integration, may be color scheme) could be provided by bundling existing 3rd party projects. The rest more custom
## References
- Recommended .bashrc to assist in facilitating moer efficient shell and bash history use and archival: https://github.com/ReproNim/module-reproducible-basics/pull/26
- Recording bash sessions history within git during interactive `datalad containers-run` https://github.com/ReproNim/containers/pull/9