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

Run unit tests on an updated versions of Modules: v4.5.3 + v5.3.1 #4415

Merged
merged 6 commits into from
Sep 7, 2024

Conversation

xdelaruelle
Copy link
Contributor

Environment Modules was updated on EL8 from version 4.1.4 to version 4.5.2+patches which can be assimilated to version 4.5.3.

Seems interesting to update the modules4 version used in unit_tests CI workflow to match Environment Modules version found in EL8.

@easybuilders easybuilders deleted a comment from boegelbot Dec 28, 2023
@boegel boegel added this to the 4.x milestone Dec 28, 2023
@xdelaruelle
Copy link
Contributor Author

I have disabled "test_toy_toy" when Environment Modules tool is used as the test produces an inconsitent environment.

"test_toy_toy" test generates two versions of "toy" module. Both modules express a reflexive conflict (against "toy") and toy/0.0-two loads toy/0.0-one.

As these two modules share the same name (toy) and due to the reflexive conflict they express (conflict toy), environment obtained when loading toy/0.0-two is inconsistent as it tries to load toy/0.0-one.

Environment Modules version 4.2 (and above) detects this inconsistency and raise an error unless --force option is set.

I am not fully satisfied with the solution of disabling this "test_toy_toy" test for EnvironmentModules but it seemed to be the more pragmatic way to solve this. Another solution would be to rename the second software "toy_toy", but it requires some changes on the test and duplication of files in the repository. It may not be worth it.

@xdelaruelle xdelaruelle force-pushed the unit_tests_modules4 branch 2 times, most recently from e6cf639 to 12e6154 Compare December 28, 2023 17:36
@easybuilders easybuilders deleted a comment from boegelbot Dec 29, 2023
@xdelaruelle xdelaruelle changed the base branch from develop to 5.0.x August 18, 2024 08:49
@xdelaruelle
Copy link
Contributor Author

@boegel, @branfosj I have changed base branch for this PR to 5.0.X and rebased this PR. Please let me know if something should be changed for this PR to get merged.

test/framework/toy_build.py Outdated Show resolved Hide resolved
@boegel boegel added the EasyBuild-5.0 EasyBuild 5.0 label Aug 27, 2024
@boegel boegel modified the milestones: 4.x, 5.0 Aug 27, 2024
@boegel
Copy link
Member

boegel commented Aug 28, 2024

@xdelaruelle Can you also rebase this, to make sure the recently merged PRs pass with v4.5.3?

Should we (also?) test with v5.x?

@xdelaruelle
Copy link
Contributor Author

@xdelaruelle Can you also rebase this, to make sure the recently merged PRs pass with v4.5.3?

Of course, I will do that in the coming days, taking time to correctly handle test_toy_toy.

Should we (also?) test with v5.x?

We should, especially to test to cache build part. I will add a commit on this PR to also test against Modules 5.3 (version shipped on EL9)

Environment Modules was updated on EL8 from version 4.1.4 to version
4.5.2+patches which can be assimilated to version 4.5.3.

Seems interesting to update the modules4 version used in unit_tests
CI workflow to match Environment Modules version found in EL8.
test_cray_reset and test_independence tests successively load all Cray*
modules. One Cray* module does not unload other Cray* modules loaded
which give an inconsistent environment.

Environment Modules tool version 4.2 and above does not allow setting up
an inconsistent environment without --force option set.

To fix test_cray_reset and test_independence tests for Environment
Modules tool, environment is purged between each toolchain setup.
It seems interesting to also test Modules 5, especially that a lot of
changes are introduced compared to Modules 4. Some of these features are
now supported by EnvironmentModules framework's class.

Use Environment Modules 5.3 as this is version currently shipped on EL9
systems.
"test_toy_toy" test was generating two versions of "toy" module. Both
modules expressed a reflexive conflict (against "toy") and toy/0.0-two
loaded toy/0.0-one.

As these two modules shared the same name ("toy") and due to the
reflexive conflict they express, environment obtained when loading
toy/0.0-two is inconsistent as it tries to load toy/0.0-one.

Environment Modules version 4.2 (and above) detects this inconsistency
and raise an error unless --force option is set.

"test_toy_toy" test is adapted to build a "toy2" module for "toy2"
easyconfig.
@boegel boegel changed the title Run unit tests on an updated version of Modules 4 Run unit tests on an updated versions of Modules: v4.5.3 + v5.3.1 Sep 7, 2024
Copy link
Member

@boegel boegel left a comment

Choose a reason for hiding this comment

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

lgtm

@boegel boegel merged commit 78f65ea into easybuilders:5.0.x Sep 7, 2024
36 checks passed
@xdelaruelle xdelaruelle deleted the unit_tests_modules4 branch September 7, 2024 14:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants