Skip to content

fix logic in Cargo easyblock to determine value for 'finalpath' after extracting sources#4022

Merged
bedroge merged 2 commits intoeasybuilders:developfrom
boegel:20251214221238_new_pr_cargo
Dec 15, 2025
Merged

fix logic in Cargo easyblock to determine value for 'finalpath' after extracting sources#4022
bedroge merged 2 commits intoeasybuilders:developfrom
boegel:20251214221238_new_pr_cargo

Conversation

@boegel
Copy link
Member

@boegel boegel commented Dec 14, 2025

(created using eb --new-pr)

fixes #4021

@boegel boegel added the bug fix label Dec 14, 2025
@boegel boegel added this to the next release (5.2.0) milestone Dec 14, 2025
@boegel
Copy link
Member Author

boegel commented Dec 14, 2025

@boegelbot please test @ jsc-zen3
CORE_CNT=16
EB_ARGS="--installpath /tmp/$USER/pr4022 alevin-fry-0.9.0-GCCcore-13.2.0.eb bamtofastq-1.4.1-GCCcore-12.3.0.eb bcrypt-4.0.1-GCCcore-12.3.0.eb bcrypt-4.1.3-GCCcore-13.2.0.eb bcrypt-4.3.0-GCCcore-13.3.0.eb bcrypt-4.3.0-GCCcore-14.3.0.eb cargo-c-0.10.13-GCCcore-14.2.0.eb cargo-c-0.10.15-GCCcore-14.3.0.eb cargo-c-0.9.32-GCCcore-13.3.0.eb chopper-0.9.0-GCCcore-12.3.0.eb Clarabel.rs-0.7.1-gfbf-2023a.eb clearml-1.16.5-foss-2023b.eb cramino-0.14.5-GCC-12.3.0.eb cramjam-2.9.0-GCCcore-12.3.0.eb cryptography-41.0.1-GCCcore-12.3.0.eb cryptography-41.0.5-GCCcore-13.2.0.eb cryptography-42.0.8-GCCcore-13.3.0.eb cryptography-44.0.2-GCCcore-14.2.0.eb cryptography-45.0.5-GCCcore-14.3.0.eb DeltaLake-0.15.1-gfbf-2023a.eb DeltaLake-0.25.5-gfbf-2023b.eb DeltaLake-0.25.5-gfbf-2024a.eb elfx86exts-0.6.2-GCC-12.3.0.eb Evcxr-REPL-0.14.2-GCCcore-12.2.0-Rust-1.65.0.eb fastparquet-2023.4.0-gfbf-2022b.eb helix-25.07.1-GCCcore-14.3.0.eb HERRO-0.1.0_20240808-foss-2023a.eb huggingface_hub-0.34.4-GCCcore-13.3.0.eb isONclust3-0.3.0-GCCcore-13.3.0.eb jiter-0.4.1-GCCcore-12.3.0.eb juliaup-1.17.9-GCCcore-12.3.0.eb jupyter-collaboration-2.1.1-GCCcore-13.2.0.eb jupyter-server-2.14.0-GCCcore-13.2.0.eb jupyter-server-2.14.2-GCCcore-13.3.0.eb jupyter-server-2.16.0-GCCcore-14.2.0.eb jupyter-server-2.17.0-GCCcore-14.3.0.eb jupyter-server-2.7.2-GCCcore-12.3.0.eb JupyterLab-4.0.3-GCCcore-12.2.0.eb kyber-0.4.0-GCC-12.3.0.eb lazrs-0.7.0-GCCcore-14.2.0.eb Longshot-0.4.5-GCCcore-11.3.0.eb Longshot-1.0.0-GCCcore-12.3.0.eb maturin-1.1.0-GCCcore-12.3.0.eb maturin-1.3.1-GCCcore-13.2.0.eb maturin-1.3.2-GCCcore-11.3.0-Rust-1.65.0.eb maturin-1.4.0-GCCcore-12.3.0-Rust-1.75.0.eb maturin-1.5.0-GCCcore-13.2.0-Rust-1.76.0.eb maturin-1.6.0-GCCcore-13.3.0-Rust-1.83.0.eb maturin-1.6.0-GCCcore-13.3.0.eb maturin-1.7.8-GCCcore-12.3.0-Rust-1.81.0.eb maturin-1.8.3-GCCcore-13.3.0-Rust-1.83.0.eb maturin-1.8.3-GCCcore-14.2.0.eb maturin-1.9.1-GCCcore-14.3.0.eb mfqe-0.5.0-GCC-12.3.0.eb modkit-0.3.3-GCCcore-12.3.0.eb modkit-0.4.1-GCCcore-13.3.0.eb modkit-0.5.0-GCCcore-13.3.0.eb orjson-3.10.13-GCCcore-13.3.0.eb orjson-3.9.15-GCCcore-12.3.0.eb phasius-0.2.0-GCC-12.3.0.eb poetry-1.7.1-GCCcore-12.3.0.eb poetry-1.7.1-GCCcore-13.2.0.eb poetry-1.8.3-GCCcore-13.3.0.eb poetry-2.1.2-GCCcore-14.2.0.eb poetry-2.1.3-GCCcore-14.3.0.eb polars-0.19.19-gfbf-2023a.eb polars-0.20.2-gfbf-2023a.eb polars-1.28.1-gfbf-2023b.eb polars-1.28.1-gfbf-2024a.eb pybigtools-0.1.2-gfbf-2023a.eb pydantic-2.11.7-GCCcore-14.2.0.eb pydantic-2.11.9-GCCcore-14.3.0.eb pydantic-2.5.3-GCCcore-12.2.0.eb pydantic-2.5.3-GCCcore-12.3.0.eb pydantic-2.6.4-GCCcore-13.2.0.eb pydantic-2.7.4-GCCcore-13.2.0.eb pydantic-2.9.1-GCCcore-13.3.0.eb pymatgen-2023.12.18-foss-2023a.eb Python-bundle-PyPI-2024.06-GCCcore-13.3.0.eb Python-bundle-PyPI-2025.04-GCCcore-14.2.0.eb Python-bundle-PyPI-2025.07-GCCcore-14.3.0.eb python-jellyfish-1.1.0-GCCcore-12.3.0.eb Qiskit-2.0.2-foss-2023a.eb Qutip-5.2.1-foss-2025b.eb RDP-0.13.5-GCCcore-13.3.0.eb retworkx-0.9.0-foss-2023a.eb ripunzip-0.4.0.eb ruff-0.7.0-GCCcore-13.3.0.eb ruff-0.14.3-GCCcore-14.3.0.eb rustworkx-0.12.1-foss-2023a.eb rustworkx-0.15.1-gfbf-2023a.eb rustworkx-0.16.0-gfbf-2024a.eb Safetensors-0.4.3-gfbf-2023a.eb Safetensors-0.4.4-gfbf-2023b.eb Safetensors-0.6.2-gfbf-2024a.eb scatac_fragment_tools-0.1.0-foss-2023a.eb SKA2-0.3.7-GCCcore-12.3.0.eb skani-0.2.2-GCCcore-12.3.0.eb smafa-0.8.0-GCC-12.3.0.eb Spyder-5.5.1-GCCcore-12.3.0.eb Spyder-6.0.1-GCCcore-13.2.0.eb subset-bam-1.1.0-GCCcore-10.3.0.eb tiktoken-0.6.0-GCCcore-12.3.0.eb tiktoken-0.7.0-GCCcore-13.2.0.eb tiktoken-0.9.0-GCCcore-13.3.0.eb timm-0.6.13-foss-2022a-CUDA-11.7.0.eb timm-0.9.7-foss-2022a-CUDA-11.7.0.eb tlparse-0.3.37-GCCcore-13.3.0.eb tlparse-0.3.5-GCCcore-13.2.0.eb tokenizers-0.13.3-GCCcore-12.2.0.eb tokenizers-0.15.2-GCCcore-12.3.0.eb tokenizers-0.19.1-GCCcore-13.2.0.eb tokenizers-0.21.4-GCCcore-13.3.0.eb torch-em-0.7.1-foss-2023a.eb tree-sitter-0.25.3-GCCcore-14.2.0.eb uv-0.2.30-GCCcore-13.3.0.eb uv-0.4.20-GCCcore-13.3.0.eb uv-0.7.13-GCCcore-14.2.0.eb vLLM-0.4.0-foss-2023a-CUDA-12.1.1.eb yacrd-1.0.0-foss-2023a.eb"

@boegelbot
Copy link

@boegel: Request for testing this PR well received on jsczen3l1.int.jsc-zen3.fz-juelich.de

PR test command 'if [[ develop != 'develop' ]]; then EB_BRANCH=develop ./easybuild_develop.sh 2> /dev/null 1>&2; EB_PREFIX=/home/boegelbot/easybuild/develop source init_env_easybuild_develop.sh; fi; EB_PR=4022 EB_ARGS="--installpath /tmp/$USER/pr4022 alevin-fry-0.9.0-GCCcore-13.2.0.eb bamtofastq-1.4.1-GCCcore-12.3.0.eb bcrypt-4.0.1-GCCcore-12.3.0.eb bcrypt-4.1.3-GCCcore-13.2.0.eb bcrypt-4.3.0-GCCcore-13.3.0.eb bcrypt-4.3.0-GCCcore-14.3.0.eb cargo-c-0.10.13-GCCcore-14.2.0.eb cargo-c-0.10.15-GCCcore-14.3.0.eb cargo-c-0.9.32-GCCcore-13.3.0.eb chopper-0.9.0-GCCcore-12.3.0.eb Clarabel.rs-0.7.1-gfbf-2023a.eb clearml-1.16.5-foss-2023b.eb cramino-0.14.5-GCC-12.3.0.eb cramjam-2.9.0-GCCcore-12.3.0.eb cryptography-41.0.1-GCCcore-12.3.0.eb cryptography-41.0.5-GCCcore-13.2.0.eb cryptography-42.0.8-GCCcore-13.3.0.eb cryptography-44.0.2-GCCcore-14.2.0.eb cryptography-45.0.5-GCCcore-14.3.0.eb DeltaLake-0.15.1-gfbf-2023a.eb DeltaLake-0.25.5-gfbf-2023b.eb DeltaLake-0.25.5-gfbf-2024a.eb elfx86exts-0.6.2-GCC-12.3.0.eb Evcxr-REPL-0.14.2-GCCcore-12.2.0-Rust-1.65.0.eb fastparquet-2023.4.0-gfbf-2022b.eb helix-25.07.1-GCCcore-14.3.0.eb HERRO-0.1.0_20240808-foss-2023a.eb huggingface_hub-0.34.4-GCCcore-13.3.0.eb isONclust3-0.3.0-GCCcore-13.3.0.eb jiter-0.4.1-GCCcore-12.3.0.eb juliaup-1.17.9-GCCcore-12.3.0.eb jupyter-collaboration-2.1.1-GCCcore-13.2.0.eb jupyter-server-2.14.0-GCCcore-13.2.0.eb jupyter-server-2.14.2-GCCcore-13.3.0.eb jupyter-server-2.16.0-GCCcore-14.2.0.eb jupyter-server-2.17.0-GCCcore-14.3.0.eb jupyter-server-2.7.2-GCCcore-12.3.0.eb JupyterLab-4.0.3-GCCcore-12.2.0.eb kyber-0.4.0-GCC-12.3.0.eb lazrs-0.7.0-GCCcore-14.2.0.eb Longshot-0.4.5-GCCcore-11.3.0.eb Longshot-1.0.0-GCCcore-12.3.0.eb maturin-1.1.0-GCCcore-12.3.0.eb maturin-1.3.1-GCCcore-13.2.0.eb maturin-1.3.2-GCCcore-11.3.0-Rust-1.65.0.eb maturin-1.4.0-GCCcore-12.3.0-Rust-1.75.0.eb maturin-1.5.0-GCCcore-13.2.0-Rust-1.76.0.eb maturin-1.6.0-GCCcore-13.3.0-Rust-1.83.0.eb maturin-1.6.0-GCCcore-13.3.0.eb maturin-1.7.8-GCCcore-12.3.0-Rust-1.81.0.eb maturin-1.8.3-GCCcore-13.3.0-Rust-1.83.0.eb maturin-1.8.3-GCCcore-14.2.0.eb maturin-1.9.1-GCCcore-14.3.0.eb mfqe-0.5.0-GCC-12.3.0.eb modkit-0.3.3-GCCcore-12.3.0.eb modkit-0.4.1-GCCcore-13.3.0.eb modkit-0.5.0-GCCcore-13.3.0.eb orjson-3.10.13-GCCcore-13.3.0.eb orjson-3.9.15-GCCcore-12.3.0.eb phasius-0.2.0-GCC-12.3.0.eb poetry-1.7.1-GCCcore-12.3.0.eb poetry-1.7.1-GCCcore-13.2.0.eb poetry-1.8.3-GCCcore-13.3.0.eb poetry-2.1.2-GCCcore-14.2.0.eb poetry-2.1.3-GCCcore-14.3.0.eb polars-0.19.19-gfbf-2023a.eb polars-0.20.2-gfbf-2023a.eb polars-1.28.1-gfbf-2023b.eb polars-1.28.1-gfbf-2024a.eb pybigtools-0.1.2-gfbf-2023a.eb pydantic-2.11.7-GCCcore-14.2.0.eb pydantic-2.11.9-GCCcore-14.3.0.eb pydantic-2.5.3-GCCcore-12.2.0.eb pydantic-2.5.3-GCCcore-12.3.0.eb pydantic-2.6.4-GCCcore-13.2.0.eb pydantic-2.7.4-GCCcore-13.2.0.eb pydantic-2.9.1-GCCcore-13.3.0.eb pymatgen-2023.12.18-foss-2023a.eb Python-bundle-PyPI-2024.06-GCCcore-13.3.0.eb Python-bundle-PyPI-2025.04-GCCcore-14.2.0.eb Python-bundle-PyPI-2025.07-GCCcore-14.3.0.eb python-jellyfish-1.1.0-GCCcore-12.3.0.eb Qiskit-2.0.2-foss-2023a.eb Qutip-5.2.1-foss-2025b.eb RDP-0.13.5-GCCcore-13.3.0.eb retworkx-0.9.0-foss-2023a.eb ripunzip-0.4.0.eb ruff-0.7.0-GCCcore-13.3.0.eb ruff-0.14.3-GCCcore-14.3.0.eb rustworkx-0.12.1-foss-2023a.eb rustworkx-0.15.1-gfbf-2023a.eb rustworkx-0.16.0-gfbf-2024a.eb Safetensors-0.4.3-gfbf-2023a.eb Safetensors-0.4.4-gfbf-2023b.eb Safetensors-0.6.2-gfbf-2024a.eb scatac_fragment_tools-0.1.0-foss-2023a.eb SKA2-0.3.7-GCCcore-12.3.0.eb skani-0.2.2-GCCcore-12.3.0.eb smafa-0.8.0-GCC-12.3.0.eb Spyder-5.5.1-GCCcore-12.3.0.eb Spyder-6.0.1-GCCcore-13.2.0.eb subset-bam-1.1.0-GCCcore-10.3.0.eb tiktoken-0.6.0-GCCcore-12.3.0.eb tiktoken-0.7.0-GCCcore-13.2.0.eb tiktoken-0.9.0-GCCcore-13.3.0.eb timm-0.6.13-foss-2022a-CUDA-11.7.0.eb timm-0.9.7-foss-2022a-CUDA-11.7.0.eb tlparse-0.3.37-GCCcore-13.3.0.eb tlparse-0.3.5-GCCcore-13.2.0.eb tokenizers-0.13.3-GCCcore-12.2.0.eb tokenizers-0.15.2-GCCcore-12.3.0.eb tokenizers-0.19.1-GCCcore-13.2.0.eb tokenizers-0.21.4-GCCcore-13.3.0.eb torch-em-0.7.1-foss-2023a.eb tree-sitter-0.25.3-GCCcore-14.2.0.eb uv-0.2.30-GCCcore-13.3.0.eb uv-0.4.20-GCCcore-13.3.0.eb uv-0.7.13-GCCcore-14.2.0.eb vLLM-0.4.0-foss-2023a-CUDA-12.1.1.eb yacrd-1.0.0-foss-2023a.eb" EB_CONTAINER= EB_REPO=easybuild-easyblocks EB_BRANCH=develop /opt/software/slurm/bin/sbatch --job-name test_PR_4022 --ntasks="16" ~/boegelbot/eb_from_pr_upload_jsc-zen3.sh' executed!

  • exit code: 0
  • output:
Submitted batch job 9147

Test results coming soon (I hope)...

Details

- notification for comment with ID 3652149772 processed

Message to humans: this is just bookkeeping information for me,
it is of no use to you (unless you think I have a bug, which I don't).


self.log.info("Unpacking source of %s", src['name'])
existing_dirs = set(os.listdir(extraction_dir))
existing_files = set(os.listdir(extraction_dir))
Copy link
Contributor

Choose a reason for hiding this comment

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

Can we not name this "files"? That would be as wrong as "dirs", so maybe "paths"?

Copy link
Member Author

Choose a reason for hiding this comment

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

You're right, but not going to change this now, since it's a local variable, and if we're strict that would require another round of testing...

Please open a follow-up PR (or squeeze the renaming of the local variable in another PR for Cargo easyblock)

extra_options=self.cfg['unpack_options'], change_into_dir=False, trace=False)
new_extracted_dirs = set(os.listdir(extraction_dir)) - existing_dirs
new_extracted_files = set(os.listdir(extraction_dir)) - existing_files
new_extracted_dirs = sorted(x for x in new_extracted_files
Copy link
Contributor

Choose a reason for hiding this comment

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

This introduces a change to previous behavior which used the result of extract_file which has the same logic as this had before: If extraction results in multiple files and/or directories the parent/extractiondir is returned.

This is also problematic, see easybuilders/easybuild-framework#4922

My tests included that PR so I added the change to #3665 to not rely on the (changed by 4922) result but misunderstood the (questionable) logic.

Copy link
Member Author

Choose a reason for hiding this comment

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

This is essentially fixing a regression that was introduced in #3665, so it should be merged.

The installation of helix-25.07.1-GCCcore-14.3.0.eb is broken without this fix, while it worked fine before #3665 got merged.

I'm testing this very broadly (see list of easyconfig files passed to the bot) deliberately to make sure this doesn't break any other easyconfigs we have currently.

I consider this a (small) blocker for the release of EasyBuild v5.2.0.

If more steps are needed afterwards to make things more sensible, that's OK, but without this fix the logic used to determine path to set in finalpath is just flawed: it should never be the path to a file (but a directory), and it should also not be a random path, as is happening now (it should always be the same path, even if that ends up being the wrong path).

So, this is a step forward, but probably not the end of the ride.

Copy link
Contributor

Choose a reason for hiding this comment

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

Yes, but it does not restore the behavior prior to #3665 if this is what the intention was. The prior behavior included files when checking which folder to use, see extract_file in framework: It returns the first folder that contains more than a single folder, which in this case is the parent folder.

The fix here only happens to work because there are multiple folders. But it would still trigger the regression if helix contained a single folder and and single file.

The previous logic was:

  • src_dir = extract_file(..) -> Returns extraction_dir for helix
  • if len(new_extracted_dirs) == 1: src_dir = os.path.join(extraction_dir, new_extracted_dirs.pop())
    • if is_vendor_crate and self.cfg['offline'] and git_key and member_dirs is None: src_dir = os.path.join(self.vendor_dir, os.path.basename(crate_dirs[0]))
  • src['finalpath'] = src_dir

Copy link
Member Author

Choose a reason for hiding this comment

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

Maybe it won't work in a theoretical case, but if it works in practice for all easyconfigs we have, it should still go in.

We can follow up in a subsequent PR with more fixes if needed.

Copy link
Contributor

Choose a reason for hiding this comment

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

I just wanted to make sure you are aware that the added line, filtering for directories, is a breaking change, similar to what happened in #3665 and introduces a difference in folder-detection to a) extract_file in framework b) the likely intended behavior in easybuilders/easybuild-framework#4922 and c) EB 5.1 Cargo

Although it is at least (more) deterministic than after #3665 so I'm fine with that if it works for the tested ECs

@boegelbot
Copy link

Test report by @boegelbot

Overview of tested easyconfigs (in order)

  • SUCCESS alevin-fry-0.9.0-GCCcore-13.2.0.eb

  • SUCCESS bamtofastq-1.4.1-GCCcore-12.3.0.eb

  • SUCCESS bcrypt-4.0.1-GCCcore-12.3.0.eb

  • SUCCESS bcrypt-4.1.3-GCCcore-13.2.0.eb

  • SUCCESS bcrypt-4.3.0-GCCcore-13.3.0.eb

  • SUCCESS bcrypt-4.3.0-GCCcore-14.3.0.eb

  • SUCCESS cargo-c-0.10.13-GCCcore-14.2.0.eb

  • SUCCESS cargo-c-0.10.15-GCCcore-14.3.0.eb

  • SUCCESS cargo-c-0.9.32-GCCcore-13.3.0.eb

  • SUCCESS chopper-0.9.0-GCCcore-12.3.0.eb

  • SUCCESS cramino-0.14.5-GCC-12.3.0.eb

  • SUCCESS cryptography-41.0.1-GCCcore-12.3.0.eb

  • SUCCESS cryptography-41.0.5-GCCcore-13.2.0.eb

  • SUCCESS cryptography-42.0.8-GCCcore-13.3.0.eb

  • SUCCESS elfx86exts-0.6.2-GCC-12.3.0.eb

  • SUCCESS Evcxr-REPL-0.14.2-GCCcore-12.2.0-Rust-1.65.0.eb

  • SUCCESS fastparquet-2023.4.0-gfbf-2022b.eb

  • SUCCESS helix-25.07.1-GCCcore-14.3.0.eb

  • SUCCESS HERRO-0.1.0_20240808-foss-2023a.eb

  • SUCCESS isONclust3-0.3.0-GCCcore-13.3.0.eb

  • SUCCESS juliaup-1.17.9-GCCcore-12.3.0.eb

  • SUCCESS JupyterLab-4.0.3-GCCcore-12.2.0.eb

  • SUCCESS kyber-0.4.0-GCC-12.3.0.eb

  • SUCCESS Longshot-0.4.5-GCCcore-11.3.0.eb

  • SUCCESS Longshot-1.0.0-GCCcore-12.3.0.eb

  • SUCCESS maturin-1.1.0-GCCcore-12.3.0.eb

  • SUCCESS maturin-1.3.1-GCCcore-13.2.0.eb

  • SUCCESS maturin-1.3.2-GCCcore-11.3.0-Rust-1.65.0.eb

  • SUCCESS maturin-1.4.0-GCCcore-12.3.0-Rust-1.75.0.eb

  • SUCCESS maturin-1.5.0-GCCcore-13.2.0-Rust-1.76.0.eb

  • SUCCESS maturin-1.6.0-GCCcore-13.3.0-Rust-1.83.0.eb

  • SUCCESS maturin-1.6.0-GCCcore-13.3.0.eb

  • SUCCESS maturin-1.7.8-GCCcore-12.3.0-Rust-1.81.0.eb

  • SUCCESS maturin-1.8.3-GCCcore-13.3.0-Rust-1.83.0.eb

  • SUCCESS maturin-1.8.3-GCCcore-14.2.0.eb

  • SUCCESS maturin-1.9.1-GCCcore-14.3.0.eb

  • SUCCESS mfqe-0.5.0-GCC-12.3.0.eb

  • SUCCESS modkit-0.3.3-GCCcore-12.3.0.eb

  • SUCCESS modkit-0.4.1-GCCcore-13.3.0.eb

  • SUCCESS modkit-0.5.0-GCCcore-13.3.0.eb

  • SUCCESS orjson-3.9.15-GCCcore-12.3.0.eb

  • SUCCESS phasius-0.2.0-GCC-12.3.0.eb

  • SUCCESS poetry-1.7.1-GCCcore-12.3.0.eb

  • SUCCESS poetry-1.7.1-GCCcore-13.2.0.eb

  • SUCCESS poetry-1.8.3-GCCcore-13.3.0.eb

  • SUCCESS pybigtools-0.1.2-gfbf-2023a.eb

  • SUCCESS pydantic-2.11.7-GCCcore-14.2.0.eb

  • SUCCESS pydantic-2.11.9-GCCcore-14.3.0.eb

  • SUCCESS pydantic-2.5.3-GCCcore-12.2.0.eb

  • SUCCESS pydantic-2.5.3-GCCcore-12.3.0.eb

  • SUCCESS pydantic-2.6.4-GCCcore-13.2.0.eb

  • SUCCESS pydantic-2.7.4-GCCcore-13.2.0.eb

  • SUCCESS pydantic-2.9.1-GCCcore-13.3.0.eb

  • SUCCESS pymatgen-2023.12.18-foss-2023a.eb

  • SUCCESS Python-bundle-PyPI-2024.06-GCCcore-13.3.0.eb

  • SUCCESS python-jellyfish-1.1.0-GCCcore-12.3.0.eb

  • SUCCESS RDP-0.13.5-GCCcore-13.3.0.eb

  • SUCCESS retworkx-0.9.0-foss-2023a.eb

  • SUCCESS ripunzip-0.4.0.eb

  • SUCCESS ruff-0.7.0-GCCcore-13.3.0.eb

  • SUCCESS ruff-0.14.3-GCCcore-14.3.0.eb

  • SUCCESS rustworkx-0.12.1-foss-2023a.eb

  • SUCCESS rustworkx-0.15.1-gfbf-2023a.eb

  • SUCCESS rustworkx-0.16.0-gfbf-2024a.eb

  • SUCCESS Safetensors-0.4.3-gfbf-2023a.eb

  • SUCCESS Safetensors-0.4.4-gfbf-2023b.eb

  • SUCCESS Safetensors-0.6.2-gfbf-2024a.eb

  • SUCCESS SKA2-0.3.7-GCCcore-12.3.0.eb

  • SUCCESS skani-0.2.2-GCCcore-12.3.0.eb

  • SUCCESS smafa-0.8.0-GCC-12.3.0.eb

  • SUCCESS subset-bam-1.1.0-GCCcore-10.3.0.eb

  • SUCCESS tiktoken-0.6.0-GCCcore-12.3.0.eb

  • SUCCESS tiktoken-0.7.0-GCCcore-13.2.0.eb

  • SUCCESS tiktoken-0.9.0-GCCcore-13.3.0.eb

  • SUCCESS timm-0.6.13-foss-2022a-CUDA-11.7.0.eb

  • SUCCESS timm-0.9.7-foss-2022a-CUDA-11.7.0.eb

  • SUCCESS tlparse-0.3.37-GCCcore-13.3.0.eb

  • SUCCESS tlparse-0.3.5-GCCcore-13.2.0.eb

  • SUCCESS tokenizers-0.13.3-GCCcore-12.2.0.eb

  • SUCCESS tokenizers-0.15.2-GCCcore-12.3.0.eb

  • SUCCESS tokenizers-0.19.1-GCCcore-13.2.0.eb

  • SUCCESS torch-em-0.7.1-foss-2023a.eb

  • SUCCESS tree-sitter-0.25.3-GCCcore-14.2.0.eb

  • SUCCESS uv-0.2.30-GCCcore-13.3.0.eb

  • SUCCESS uv-0.4.20-GCCcore-13.3.0.eb

  • SUCCESS uv-0.7.13-GCCcore-14.2.0.eb

  • SUCCESS vLLM-0.4.0-foss-2023a-CUDA-12.1.1.eb

  • SUCCESS yacrd-1.0.0-foss-2023a.eb

  • SUCCESS Clarabel.rs-0.7.1-gfbf-2023a.eb

  • SUCCESS clearml-1.16.5-foss-2023b.eb

  • SUCCESS cramjam-2.9.0-GCCcore-12.3.0.eb

  • SUCCESS cryptography-44.0.2-GCCcore-14.2.0.eb

  • SUCCESS cryptography-45.0.5-GCCcore-14.3.0.eb

  • SUCCESS DeltaLake-0.15.1-gfbf-2023a.eb

  • SUCCESS DeltaLake-0.25.5-gfbf-2023b.eb

  • SUCCESS DeltaLake-0.25.5-gfbf-2024a.eb

  • SUCCESS huggingface_hub-0.34.4-GCCcore-13.3.0.eb

  • SUCCESS jiter-0.4.1-GCCcore-12.3.0.eb

  • SUCCESS jupyter-collaboration-2.1.1-GCCcore-13.2.0.eb

  • SUCCESS jupyter-server-2.14.2-GCCcore-13.3.0.eb

  • SUCCESS jupyter-server-2.16.0-GCCcore-14.2.0.eb

  • SUCCESS jupyter-server-2.17.0-GCCcore-14.3.0.eb

  • SUCCESS jupyter-server-2.7.2-GCCcore-12.3.0.eb

  • SUCCESS lazrs-0.7.0-GCCcore-14.2.0.eb

  • SUCCESS orjson-3.10.13-GCCcore-13.3.0.eb

  • SUCCESS polars-0.19.19-gfbf-2023a.eb

  • SUCCESS polars-0.20.2-gfbf-2023a.eb

  • SUCCESS polars-1.28.1-gfbf-2023b.eb

  • SUCCESS polars-1.28.1-gfbf-2024a.eb

  • SUCCESS Qiskit-2.0.2-foss-2023a.eb

  • SUCCESS scatac_fragment_tools-0.1.0-foss-2023a.eb

  • SUCCESS Spyder-5.5.1-GCCcore-12.3.0.eb

  • SUCCESS tokenizers-0.21.4-GCCcore-13.3.0.eb

  • SUCCESS debugpy-1.8.1-GCCcore-13.2.0.eb

  • SUCCESS build-1.3.0-GCCcore-14.2.0.eb

  • SUCCESS build-1.3.0-GCCcore-14.3.0.eb

  • SUCCESS poetry-2.1.2-GCCcore-14.2.0.eb

  • SUCCESS poetry-2.1.3-GCCcore-14.3.0.eb

  • SUCCESS Python-bundle-PyPI-2025.04-GCCcore-14.2.0.eb

  • SUCCESS Python-bundle-PyPI-2025.07-GCCcore-14.3.0.eb

  • SUCCESS Qutip-5.2.1-foss-2025b.eb

  • SUCCESS deprecation-2.1.0-GCCcore-13.2.0.eb

  • SUCCESS jupyter_packaging-0.12.3-GCCcore-13.2.0.eb

  • SUCCESS ipywidgets-8.1.2-GCCcore-13.2.0.eb

  • SUCCESS jupyter-server-2.14.0-GCCcore-13.2.0.eb

  • SUCCESS Spyder-6.0.1-GCCcore-13.2.0.eb

Build succeeded for 126 out of 126 (total: 18 hours 51 mins 24 secs) (120 easyconfigs in total)
jsczen3c2.int.jsc-zen3.fz-juelich.de - Linux Rocky Linux 9.6, x86_64, AMD EPYC-Milan Processor (zen3), Python 3.9.21
See https://gist.github.com/boegelbot/b918cf078c527e56017c9b895fabbae4 for a full test report.

@bedroge bedroge merged commit e2cc2fa into easybuilders:develop Dec 15, 2025
22 checks passed
@boegel boegel deleted the 20251214221238_new_pr_cargo branch December 15, 2025 18:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

cargo EasyBlock may set source directory (and finalpath) incorrectly if sources include subdirs

4 participants