easybuild-easyblocks
easybuild-easyblocks copied to clipboard
add generic JuliaPackage easyblock
Easyblock for Julia packages:
- Installs packages from local sources
- Sources can either be a tarball or a git repo (
git_config
) - Avoids any extra downloads (offline mode)
- Updates
JULIA_DEPOT_PATH
to make Julia aware of the installation - defines
EXTS_FILTER_JULIA_PACKAGES
to sanity check the installation - Works for regular easyconfigs and also for extensions
- extra option
bundle_deps
enables Julia to download extra dependencies on-the-fly (opt-in needed to use this easyblock with Julia < 1.5)
Julia needs a git repo to install any package in a regular way because it generates unique hashes for the package from it. Hence, this easyblock detects what kind of sources we have and acts accordingly:
- git repo: install as regular package with
Pkg.add
- non-git tarball: install in development mode with
Pkg.develop
@lexming: Tests failed in GitHub Actions, see https://github.com/easybuilders/easybuild-easyblocks/actions/runs/3328086669 Output from first failing test suite run:
ERROR: test_easyblock__home_runner_work_easybuild-easyblocks_easybuild-easyblocks_easybuild_easyblocks_generic_juliapackage (test.easyblocks.module.ModuleOnlyTest)
Test for using --module-only with easyblock /home/runner/work/easybuild-easyblocks/easybuild-easyblocks/easybuild/easyblocks/generic/juliapackage.py
----------------------------------------------------------------------
Traceback (most recent call last):
File "test/easyblocks/module.py", line 397, in innertest
template_module_only_test(self, easyblock, **kwargs)
File "test/easyblocks/module.py", line 356, in template_module_only_test
app.run_all_steps(run_test_cases=False)
File "/opt/hostedtoolcache/Python/2.7.18/x64/lib/python2.7/site-packages/easybuild/framework/easyblock.py", line 3959, in run_all_steps
self.run_step(step_name, step_methods)
File "/opt/hostedtoolcache/Python/2.7.18/x64/lib/python2.7/site-packages/easybuild/framework/easyblock.py", line 3794, in run_step
step_method(self)()
File "easybuild/easyblocks/generic/juliapackage.py", line 85, in prepare_step
self.set_pkg_offline()
File "easybuild/easyblocks/generic/juliapackage.py", line 66, in set_pkg_offline
raise EasyBuildError("Julia not included as dependency!")
EasyBuildError: 'Julia not included as dependency!'
----------------------------------------------------------------------
Ran 578 tests in 79.300s
FAILED (errors=1)
ERROR: Not all tests were successful.
bleep, bloop, I'm just a bot (boegelbot v20200716.01)
Please talk to my owner @boegel
if you notice you me acting stupid),
or submit a pull request to https://github.com/boegel/boegelbot fix the problem.
Requested new tests in the linked easyconfigs.