Skip to content
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

New feature: update exts list versions to latest #5

Open
wants to merge 33 commits into
base: develop
Choose a base branch
from

Conversation

victormachadoperez
Copy link
Collaborator

@victormachadoperez victormachadoperez commented Oct 28, 2024

Solves issue #4

Implemented new feature: update the versions of extensions in exts_list to their latest available versions.

Currently available for RPackages and PythonPackages. Implementation for Bioconductor and Perl packages is pending.

The feature iterates over all extensions in exts_list, retrieving the latest available version from CRAN or PyPi databases. It backs up the original easyconfig file and writes a new one with the updated exts_list.

easybuild/framework/easyblock.py Outdated Show resolved Hide resolved
easybuild/framework/easyconfig/tools.py Outdated Show resolved Hide resolved
easybuild/framework/easyblock.py Outdated Show resolved Hide resolved
easybuild/framework/easyblock.py Outdated Show resolved Hide resolved
easybuild/framework/easyblock.py Outdated Show resolved Hide resolved
@victormachadoperez
Copy link
Collaborator Author

@dagonzalezfo EasyBlock instances has been removed from our easyupdate.
Checkout the latest changes and test the new implementation.

@dagonzalezfo
Copy link
Collaborator

$ source 
$ source /home/dgonzalez/hpc-playground/hpcnow-repos/easybuild-framework_2024/.venv/bin/activate
$ cd /home/dgonzalez/hpc-playground/hpcnow-repos/test
$ eb truncatedR.eb --update-exts-list --force
.
.
.
== EASYCONFIG SUCCESSFULLY UPDATED!
$ eb truncatedR.eb --force
== FAILED: Installation ended unsuccessfully (build directory: /home/dgonzalez/.local/easybuild/build/R/4.4.1/gfbf-2023b-truncated): build failed (first 300 chars): Length of checksum
'' (0) does not match with either MD5 (32) or SHA256 (64) (took 35 secs)

@dagonzalezfo
Copy link
Collaborator

Create a list including R base extensions and exclude them from update steps

 'base',
 'compiler',
 'datasets',
 'graphics',
 'grDevices',
 'grid',
 'methods',
 'parallel',
 'splines',
 'stats',
 'stats4',
 'tcltk',
 'tools',
 'utils',

@dagonzalezfo
Copy link
Collaborator

For packages with missing checksum from database, add/use a function that pull the sources, calculate the checksum and return it.

@victormachadoperez
Copy link
Collaborator Author

victormachadoperez commented Nov 18, 2024

For packages with missing checksum from database, add/use a function that pull the sources, calculate the checksum and return it.

@dagonzalezfo already implemented in latests commits.

PR updated with latests changes of original repo: easybuilders/easybuild-framework:develop.
PR ready to be tested

name = ec.get('ec', {}).get('name', None)

if name:
Copy link
Collaborator

Choose a reason for hiding this comment

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

Use this option to define exts_defaultclass for PythonBundles: Taken from PythonBundle EasyBlock
If ec.easyblock=PythonBundle,
elf.cfg['exts_defaultclass'] = 'PythonPackage'

Copy link
Collaborator

Choose a reason for hiding this comment

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

This is to use the same mechanism that PythonBundle EasyBlocks use to define exts_defaultclass value

@dagonzalezfo
Copy link
Collaborator

We need to test it for Python Bundles, but it seems that it should work as it is.

@dagonzalezfo
Copy link
Collaborator

Move it to a single file, proposed name exts_tools.py at tools path.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants