# GBO Dysh Release Area

/home/dysh/release (henceforth `$DYSH_RELEASE_HOME`) contains all current and historical dysh releases

Each minor version release of dysh should be installed to /home/dysh/release/$VERSION (`$DYSH_RELEASE` refers to a given release area)

/home/dysh/release/latest should always point to the latest stable version
/home/dysh/release/beta should always point to the latest beta version

The contents of each release will be as follows:

- `$DYSH_RELEASE/bin`: Wrapper scripts for common dysh operations
- `$DYSH_RELEASE/dysh`: A shallow, single-branch clone of dysh, kept up to date with the latest patch version of the minor release
- `$DYSH_RELEASE/dysh-rhelX-env`: Virtual environments for each supported RHEL version

Each venv of each dysh release should contain the dysh package and all of its dependencies, installed via:

```sh
$ pip install -r requirements.txt`
$ pip install -e "$DYSH_RELEASE/dysh"
```

Whenever a new patch version is pulled, the requirements file should be re-installed in case a dependency pin has been updated. This will keep each dysh release identical across RHEL versions, and ensure it is reproducible.

