-
Notifications
You must be signed in to change notification settings - Fork 5
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
[Project Proposal] Modules #22
Comments
Thank you for the great presentation today and discussion in the HPSF TAC meeting! We were going a bit back and forth on the maturity level, between Sandbox and Established because of the following: With regard to the code-review criteria, this is currently only possible for external contributors and external PRs are being reviewed and merged. At the same time, there is impressive (near-perfect) code coverage in the project and clearly extremely wide usage, active development and history. Something that was raised would make people on the TAC more at ease was if there would already be multiple members, but the lifecycle document under possible characteristics explicitly lists:
So we agreed that Established is sensible for the presented project and its major component in the HPC ecosystem. We will vote per usual in the coming week(s) on the criteria and @xdelaruelle is available for follow-up questions |
Many thanks TAC members for your warm welcome and attentiveness. Please find attached the slides presented today. |
Small update: we are progressing well drafting the Technical Charter for the project with Linux Foundation. I have added the current draft version of this document in the code repository, and updated governance document accordingly: |
I'm taking a look at Modules testing. @xdelaruelle, can you post a link to an example of a recent test run? |
You may find code coverage result from last commit on main here: On the CI side, in addition to linting jobs ( You may access the list of these jobs here: Each of these test jobss runs the non-regression testsuite (+20k tests) and the installation testsuite (+1k tests). CI jobs cover the following environments: 2 Windows (Cygwin and MSYS), 12 Linux (9 Ubuntu, 2 EL, 1 OpenSuse), 1 FreeBSD, 1 OS X. The Linux tests cover different configuration sets and version of Tcl (8.5, 8.6, 8.7 and 9.0). You may dive in the result of Cirrus CI jobs here for instance: |
Thank you. |
@xdelaruelle, can you provide hyperlinks that provide evidence that Modules is being used successfully in production by at least three independent end users? |
Three different computing centers mention usage of Environment Modules in their documentation:
You can also see that Modules is widely distributed on a variety of OSes: https://repology.org/project/environment-modules/versions Looking at the public archives of the mailing-list, you can find various people reporting their usage: https://sourceforge.net/p/modules/mailman/modules-interest/ |
Poll Results
|
1. Name of Project
Modules
2. Project Description
Modules, also called Environment Modules, is a tool that enables user to dynamically handle the environment of their shell session. By evaluating environment scripts called modulefiles, Modules through its
module
command is able to update the current shell and later undo these changes. Modules handles change of environment variable, alias, function, completion, etc. It supports most known shells (bash, ksh, zsh, sh, csh, tcsh, fish, cmd, pwsh) and programming language (perl, ruby, tcl, python, cmake and R).Modules is used since decades in the HPC community to provide access on supercomputers to the software catalog of HPC sites.
3. Statement on Alignment with High Performance Software Foundation's Mission
The Modules project aligns with the HPSF's mission.
Modules is a well known tool in the HPC community, used from the scientist laptop to the high-end supercomputer. The Modules project aims at constantly improving the module tool to ease the user experience when it is about to manage shell environment and access software catalog. The Modules project is committed to support the HPC ecosystem to promote quality and openness.
4. Project Website (please provide a link)
5. Open Source License (please provide a link)
SPDX Identifier:
GPL-2.0-or-later
COPYING.GPLv2
6. Code of Conduct (please provide a link)
Code of Conduct
7. Governance Practices (please provide a link)
Modules Governance
8. Two Sponsors from the High Performance Software Foundation's Technical Advisory Committee
Todd Gamblin and Damien Lebrun-Grandie
9. What is the project's solution for source control?
GitHub
10. What is the project's solution for issue tracking?
GitHub Issues
11. Please list all external dependencies and their license
Required dependencies:
Installation/build dependencies:
Some extra features of Modules relies on the following external software:
12. Please describe your release methodology and mechanics
Modules has 2 feature releases per year: one during the first half of the year, the second before the ACM/IEEE Supercomputing (SC) Conference. Bug fix releases are done on an ad-hoc basis according to the severity of bugs found on a supported feature release.
The technical process for drafting a Modules release is described in the Create new Modules release guide.
Only Modules lead developer has the permission to draft a Modules release.
13. Please describe Software Quality efforts (CI, security, auditing)
Modules project follows a Test-Driven Development approach. Thus a significant part of the development time on Modules is focused on testing. As a result, Modules now integrates 22k integration tests, 1k installation tests and code linting tests.
All these tests help to properly cover the numerous behavior of each feature. Code is currently covered by tests at 99.5%.
Test suites are relying on the DejaGnu framework. Tcl code linting is done with Nagelfar and shell code linting is done with ShellCheck.
Continuous Integration is extensively used to run the test suites against different installation configuration over a variety of OSes: FreeBSD, OSX, Windows and Linux (Ubuntu, EL, OpenSUSE).
For our CI needs, we are using GitHub Actions and Cirrus CI. Code coverage is measured with CodeCov.
Modules uses GitHub's private security reporting and we commit to provide fixes for a defined list of supported releases.
14. Please list the project's leadership team
15. Please list the project members with access to commit to the mainline of the project
16. Please describe the project's decision-making process
We aim for consensus-driven decision making. New development are presented on project's mailing-list. Feedbacks from mailing-list's members are taken into account or debated to adjust the development made.
Reviews of pull requests must be approved and merged by project's leadership team.
17. What is the maturity level of your project?
The Modules project has a long history and is quite mature. However this maturity does not mean development is stalled. There are still numerous new ideas to incorporate ans new use cases to support. Thus 2 new feature releases are published every year with a specific aim at not breaking things. This point is guarantied by the applied test-driven development methodology and the resulting large test suites.
18. Please list the project's official communication channels
Official communication channels are:
19. Please list the project's social media accounts
20. Please describe any existing financial sponsorships
Contributors are primarily paid by their own institution to work on Modules, though many also use their free time to contribute to the project.
The work on the logo of the project was paid by CEA in 2020.
All technical resources used by the project are currently freely provided by:
21. Please describe the project's infrastructure needs or requests
The Modules project would like to request:
envmodules.io
The text was updated successfully, but these errors were encountered: