Open kelseymh opened 3 years ago
@zao also provided three examples for the tuple syntax, which I'll include in the documentation:
easybuild/easyconfigs/c/CPB/CPB-11-4-2011-foss-2017a-Python-2.7.13.eb:patches = [('CPB-%(version)s_makefile.patch', 1)]
easybuild/easyconfigs/p/PLUMED/PLUMED-2.5.1-intel-2018b-PathCV.eb:patches = [('PathCV.cpp', 'src/function/')]
easybuild/easyconfigs/q/QuantumESPRESSO/QuantumESPRESSO-6.4.1-intel-2019a.eb:patches = [('backports-%(version)s.diff', 'qe-%(version)s')]
A better example than the QE one may be suitable if it's indeed only honoring '.patch'
files for the sourcepath
alternative.
I can't find any obvious ones in tree, most are ancient and specify '..'
-relative paths like:
easybuild/easyconfigs/g/GCC/GCC-5.1.0.eb:patches = [('mpfr-%s-allpatches-20141204.patch' % local_mpfr_version, '../mpfr-%s' % local_mpfr_version)]
easybuild/easyconfigs/__archive__/p/problog/problog-1.1-ictce-5.3.0.eb:patches = [('SimpleCUDD-hardcoding.patch', '..')]
On a side note: Tuples are ugly. How is anyone supposed to know what that means and it can mean either a level or a folder but you can't use both, yuck. We should coerce that to a dict and deprecate tuples
There is a PR for patches documentation: https://github.com/easybuilders/easybuild/pull/642 which also links to https://github.com/easybuilders/easybuild-framework/pull/3412 ('Add patch step dict notation').
On a side note: Tuples are ugly. How is anyone supposed to know what that means and it can mean either a level or a folder but you can't use both, yuck. We should coerce that to a dict and deprecate tuples
I don't fully disagree, but I'm thinking that for this Issue, I'd rather document what's there and working now. (Which also addresses the current "what does it mean" problem :-) ). Maybe open a separate issue for switching to a dictionary construct?
There is a PR for patches documentation: #642 which also links to easybuilders/easybuild-framework#3412 ('Add patch step dict notation').
Oh. My apologies!
I learned today (thank you, @zao !) that the patches easyconfig parameter can take tuples, as well as simple patchfile names (
.patch
required):This should be documented on the "Writing EasyConfig files" page.