Skip to content

Add a section on how to run a development instance of EasyBuild #260

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: develop
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 35 additions & 0 deletions docs/contributing.md
Original file line number Diff line number Diff line change
Expand Up @@ -266,6 +266,41 @@ git checkout develop
git pull upstream develop
```

##### Running your development instance {: #running_your_development_instance }

To run your development instance locally access to a copy of the
[easybuild-easyblocks](https://github.com/easybuilders/easybuild-easyblocks) and
the [easybuild-easyconfigs](https://github.com/easybuilders/easybuild-easyconfigs)
repositories is required. Assuming that you have cloned `easybuild-framework`,
`easybuild-easyblocks`, and `easybuild-easyconfigs` repositories in the safe
directory, say `EasyBuild`, your directory structure should resemble the
following:

```
EasyBuild
|
+- easybuild-framework
+- easybuild-easyblocks
+- easybuild-easyconfigs
```

To run the development instance, you need to add the framework and easyblocks
directories in the Python path, and the easyconfigs in the robot search path.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
directories in the Python path, and the easyconfigs in the robot search path.
directories in the Python path, and the easyconfigs to the robot search path.


You can also define the `PYTHONPATH` in inline format:

```bash
PYTHONPATH=/path/to/EasyBuild/easybuild-framework:/path/to/EasyBuild/easybuild-easyblocks:${PYTHONPATH} /path/to/EasyBuild/easybuild-framework/eb --dry-run --robot=/path/to/EasyBuild/easybuild-easyconfigs/easybuild/easyconfigs ReFrame-4.3.3.eb
```

For convenience, you can define an alias for the development instance of
EasyBuild as follows:

```bash
alias eb="PYTHONPATH=/path/to/EasyBuild/easybuild-framework:/path/to/EasyBuild/easybuild-easyblocks:${PYTHONPATH} /path/to/EasyBuild/easybuild-framework/eb --robot-paths=/path/to/EasyBuild/easybuild-easyconfigs/easybuild/easyconfigs:"
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
alias eb="PYTHONPATH=/path/to/EasyBuild/easybuild-framework:/path/to/EasyBuild/easybuild-easyblocks:${PYTHONPATH} /path/to/EasyBuild/easybuild-framework/eb --robot-paths=/path/to/EasyBuild/easybuild-easyconfigs/easybuild/easyconfigs:"
alias eb_devel="PYTHONPATH=/path/to/EasyBuild/easybuild-framework:/path/to/EasyBuild/easybuild-easyblocks:${PYTHONPATH} /path/to/EasyBuild/easybuild-framework/eb --robot-paths=/path/to/EasyBuild/easybuild-easyconfigs/easybuild/easyconfigs:"

Rather than suggest to shadow the eb command, maybe make it explicit that you want the development version.

```

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
`--robot-paths` updates the paths accessible to easybuild for searching, the `:` at the end of the value indicates to EasyBuild to retain it's default robot search paths. This approach still allows for further customisation via `--robot`.


### Opening a new pull request {: #contributing_creating_pull_requests }

!!! note
Expand Down