-
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
enhance test and install step of CMakePythonPackage easyblock #2318
base: develop
Are you sure you want to change the base?
Conversation
An example of the failure of
|
Successful test with |
Test report by @lexming Overview of tested easyconfigs (in order)
Build succeeded for 1 out of 1 (1 easyconfigs in total) |
Test report by @lexming Overview of tested easyconfigs (in order)
Build succeeded for 1 out of 1 (1 easyconfigs in total) |
An example of the This option defines the directory containing the source of the Python package to be installed with
The path can be an absolute path or a path relative to |
return PythonPackage.make_module_extra(self) | ||
def post_install_step(self): | ||
"""Reset working directory before post-installation commands""" | ||
change_dir(os.path.join(self.builddir, 'easybuild_obj')) |
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.
This is not correct if build_in_installdir is True for the CMake part, or if separate_builddir is False.
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.
@lexming friendly reminder, any updates on this?
Currently,
CMakePythonPackage
fails with any easyconfig that does not explicitly setruntest
because it executes the test step inCMakeMake
with the defaults ofPythonPackaging
, resulting in amake True
test command.This PR fixes this issue by adding specific options for
runtest
inCMakeMake
and inPythonPackage
.Moreover,
installopts
suffers from a similar problem in this easyblock. This option is unusable because it is handled byPythonPackage
, which might add a bunch of options forpip
ifusepip = True
, whereas the install step is executed bymake
.This PR fixes this issue by adding a specific
installopts
formake
and it also adds the option to execute the install step fromPythonPackage
(iepip install
) aftermake install
. This is useful for packages that do not install the python module withmake install
.I also made a little bit of cleanup of the code, using inheritance through
super()
where possible.Existing easyconfigs using
CMakePythonPackage
are not affected by this PR, see tests below. The low number of easyconfigs using this easyblock might be a result of these issues.