|
1 | 1 | # reproshell |
2 | 2 | Shell (bash only ATM) configuration to facilitate reproducible research |
| 3 | + |
| 4 | +# Perspective features |
| 5 | + |
| 6 | +Although some features are inspired by prototype implementation to be used within singularity container environments, they are applicable for any, even direct invocation. |
| 7 | + |
| 8 | +- **Deployment** |
| 9 | + - [ ] could be used as a standalone configuration |
| 10 | + - [ ] could be "pluggable", i.e. the shell configuration to use within containers and remote sessions while "interfacing back" various session artifacts (e.g., history) |
| 11 | +- **Features**, most of which should be configurable from outside (for "pluggable" mode of operation) |
| 12 | + - [ ] **infinite shell history** (unless explicitly requested to be session only, e.g. within container run) |
| 13 | + - [ ] **VCS support** (to show when under some VCS and in what branch/state it is) |
| 14 | + - **avoidance of session/execution side-effects** |
| 15 | + - [ ] isolated `/tmp` |
| 16 | + - [ ] (optionally) isolated `$HOME`? so no side-effects from `~/.local` installations etc |
| 17 | + - [ ] (optionally) sanitized environment variables |
| 18 | + - **informative and pretty (to >80% of users) prompt** |
| 19 | + - PS1 should should |
| 20 | + - [ ] show being under some container/conda/virtualenv environment |
| 21 | + - [ ] show full current path |
| 22 | + - [ ] show user (in particular when root) |
| 23 | + - [ ] (may be) # of commands in the history |
| 24 | + - additional "pluggable" indicators, such as |
| 25 | + - [ ] being in a session traced by reprozip or reproman. |
| 26 | + - [ ] being outside of a set of "tracked" directories (e.g., within `datalad run` execution) |
| 27 | + - **integrations** |
| 28 | + - [ ] `datalad containers-run` or ReproNim/containers to replace parts of the custom .bashrc/singularity_run prototype |
| 29 | + - [ ] `reproman execute` and possibly `run` to provide consistent interface across wide range of resources |
| 30 | + - Metrics collection |
| 31 | + - [ ] could be the one to remind users whenever popularity-contest or our custom usage reporting facility is not enabled |
| 32 | + - [ ] (may be) even activate/deactivate handling for pluggable indicators etc (e.g. to enable/disable tracing) |
| 33 | + - [ ] could collect (and later aggregate/join) DueCredit reports from interim executions |
| 34 | + - [ ] 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/ |
| 35 | + |
| 36 | +So, some features (infinite history, VCS integration, may be color scheme) could be provided by bundling existing 3rd party projects. The rest more custom |
| 37 | + |
| 38 | +## References |
| 39 | +- Recommended .bashrc to assist in facilitating moer efficient shell and bash history use and archival: https://github.com/ReproNim/module-reproducible-basics/pull/26 |
| 40 | +- Recording bash sessions history within git during interactive `datalad containers-run` https://github.com/ReproNim/containers/pull/9 |
0 commit comments