easybuild-easyblocks icon indicating copy to clipboard operation
easybuild-easyblocks copied to clipboard

add generic JuliaPackage easyblock

Open lexming opened this issue 2 years ago • 1 comments

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 avatar Oct 26 '22 10:10 lexming

@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.

boegelbot avatar Oct 26 '22 10:10 boegelbot

Requested new tests in the linked easyconfigs.

lexming avatar Nov 10 '22 14:11 lexming