-
Notifications
You must be signed in to change notification settings - Fork 283
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
don't change installopts
easyconfig parameter value in-place in PythonPackage
easyblock
#3080
Conversation
…honPackage easyblock
Test report by @boegel Overview of tested easyconfigs (in order)
Build succeeded for 9 out of 9 (9 easyconfigs in total) |
installopts
easyconfig parameter value in-place in PythonPackage
easyblock (WIP)installopts
easyconfig parameter value in-place in PythonPackage
easyblock
@boegelbot please test @ jsc-zen3 |
@SebastianAchilles: Request for testing this PR well received on jsczen3l1.int.jsc-zen3.fz-juelich.de PR test command '
Test results coming soon (I hope)... - notification for comment with ID 1898426343 processed Message to humans: this is just bookkeeping information for me, |
Test report by @boegelbot Overview of tested easyconfigs (in order)
Build succeeded for 1 out of 1 (1 easyconfigs in total) |
Test report by @SebastianAchilles Overview of tested easyconfigs (in order)
Build succeeded for 3 out of 3 (3 easyconfigs in total) |
Test report by @branfosj Overview of tested easyconfigs (in order)
Build succeeded for 33 out of 33 (8 easyconfigs in total) |
@@ -431,26 +432,26 @@ def determine_install_command(self): | |||
|
|||
pip_verbose = self.cfg.get('pip_verbose', None) | |||
if pip_verbose or (pip_verbose is None and build_option('debug')): | |||
self.cfg.update('installopts', '--verbose') | |||
self.py_installopts.append('--verbose') |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Note that this is a behavior change: self.cfg.update
only adds the value if it doesn't exist yet. Especially a double --verbose
means "VERY verbose"
The
PythonPackage
easyblock currently updatesinstallopts
in-place when thedetermine_install_command
method is called (which is done in the constructor), like it owns the place.This causes problems for other easyblocks that derive from
PythonPackage
though, especially whenuse_pip
is enabled.For
CMakePythonPackage
for example, it results in options for thepip install
command being passed tomake install
, which leads to problems like this (fortmap-20220502-GCC-11.2.0.eb
withuse_pip
set toTrue
, or using the changes being made in #3022):This fix is important in the context of #3022, where
use_pip
is being enabled by default.The
VersionIndependentPythonPackage
generic easyblock (which is currently only used by archived easyconfigs) was following the example ofPythonPackage
and was also updatedinstallopts
in place, so it has been updated to append to the custompy_installopts
class variable instead.A couple of other easyblocks that derives from
PythonPackage
assumed that all options forpip
were available ininstallopts
, which is now no longer the case sincepy_installopts
must also be taken into account. This includes the easyblocks fordm-reverb
,TensorRT
, andwxPytyon
.Other easyblock already had a workaround in place for the fact that
PythonPackage
was updatinginstallopts
in place, while it shouldn't. These easyblocks were updated to remove the workaround, since it's no longer needed:pybind11
+scipy
.Marked as WIP since needs testing first with easyconfigs that use the modified easyblocks, as well as with easyconfigs that use an easyblock like
CMakePythonPackage
(cfr. list of easyconfigs that are currently not enablinguse_pip
in #3022 (comment)).