|
72 | 72 | from easybuild.tools.filetools import convert_name, copy_file, create_index, decode_class_name, encode_class_name |
73 | 73 | from easybuild.tools.filetools import find_backup_name_candidate, find_easyconfigs, load_index |
74 | 74 | from easybuild.tools.filetools import read_file, write_file |
75 | | -from easybuild.tools.hooks import PARSE, STEP_NAMES, load_hooks, run_hook |
| 75 | +from easybuild.tools.hooks import PARSE, EXTRACT_STEP, STEP_NAMES, load_hooks, run_hook |
76 | 76 | from easybuild.tools.module_naming_scheme.mns import DEVEL_MODULE_SUFFIX |
77 | 77 | from easybuild.tools.module_naming_scheme.utilities import avail_module_naming_schemes, det_full_ec_version |
78 | 78 | from easybuild.tools.module_naming_scheme.utilities import det_hidden_modname, is_valid_module_name |
@@ -871,6 +871,10 @@ def validate(self, check_osdeps=True): |
871 | 871 | error_line = "* %s" % step |
872 | 872 | # try to find close match, may be just a typo in the step name |
873 | 873 | close_matches = difflib.get_close_matches(step, STEP_NAMES, 2, 0.8) |
| 874 | + # 'source' step was renamed to 'extract' in EasyBuild 5.0, see provide a useful suggestion in that case; |
| 875 | + # see https://github.com/easybuilders/easybuild-framework/pull/4629 |
| 876 | + if not close_matches and step == 'source': |
| 877 | + close_matches.append(EXTRACT_STEP) |
874 | 878 | if close_matches: |
875 | 879 | error_line += " (did you mean %s?)" % ', or '.join("'%s'" % s for s in close_matches) |
876 | 880 | error_lines.append(error_line) |
|
0 commit comments