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

sync with develop (2024-11-10) #3502

Merged
merged 9 commits into from
Nov 12, 2024
Merged

Conversation

lexming
Copy link
Contributor

@lexming lexming commented Nov 10, 2024

No description provided.

Flamefire and others added 8 commits October 14, 2024 12:42
Crates referenced by their git revision have a version but might have
different revisions.
The source filename ignored the revision such that sources from
different revisions were considered the same file which either fails the
checksum verification or the build.
Append the revision if specified to disambiguate them.
Crates downloaded from crates.io can just be put into the
vendored-sources directory.
However a referenced git repository might contain multiple crates in a
so-called "workspace".
If we put such a workspace into the vendor folder, cargo fails with
> found a virtual manifest at [...]Cargo.toml instead of a package manifest

This solution uses a separate folder for sources downloaded from git
repositories and checks them for workspaces.
If they are "regular", i.e. don't have a workspace, they are put to the
vendored sources from crates.io.
Otherwise they are left in the git-vendor directory.

Additionally refine the config.toml entry for sources vendored from git.
This allows to override a specific git URL and revision with the path to
the extracted repository.
Otherwise we would need entries for each crate in workspaces but then
cargo tries to verify the revision and fails with
> Unable to update https://github.com/[...]?rev=[...]
> Caused by: can't checkout from 'https://github.com/[...]': you are in the offline mode (--offline)
enhance cargo easyblock for sources from git repositories
…omponents

This commit implements the `make_module_req_guess` method for the
generic Bundle EasyBlock. With this, all the requirements of the
components in a bundle are transferred correctly to the final module.
Previously, this could lead to missing environment variables, letting
the build succeed but still resulting in a broken module, for example
because `PATH` is not set.

Signed-off-by: Jan André Reuter <[email protected]>
Instead of zipping bundles and configs every time, use a single instance list.
Also, do not check for the type when building the module requirements and
catch the exception instead.

Signed-off-by: Jan André Reuter <[email protected]>
Signed-off-by: Jan André Reuter <[email protected]>
…e-module-requirements

Enhance generic `Bundle` easyblock to transfer module requirements of components
@lexming lexming changed the base branch from develop to 5.0.x November 10, 2024 15:50
@lexming lexming added the EasyBuild-5.0 EasyBuild 5.0 label Nov 10, 2024
@lexming lexming added this to the 5.0 milestone Nov 10, 2024
Copy link
Contributor

@Micket Micket left a comment

Choose a reason for hiding this comment

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

lgtm

@Micket Micket merged commit cce4c2d into easybuilders:5.0.x Nov 12, 2024
19 checks passed
@lexming lexming deleted the sync-20241110 branch November 12, 2024 10:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
EasyBuild-5.0 EasyBuild 5.0
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants