Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions _gsocorgs/2026/umanitoba.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
---
title: "University of Manitoba"
author: "Wouter Deconinck"
layout: default
organization: umanitoba
logo: UManitoba-logo.png
description: |
The University of Manitoba is a Canadian public research university in the province of Manitoba,
located on original lands of Anishinaabeg, Cree, Oji-Cree, Dakota, and Dene peoples, and on the
homeland of the Métis Nation.
---

{% include gsoc_proposal.ext %}
9 changes: 9 additions & 0 deletions _gsocprojects/2026/project_Spack.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
---
project: Spack
layout: default
logo: spack-logo-220-LLNL.png
description: |
[Spack](https://spack.io) is a flexible package manager designed to support multiple versions, configurations, platforms, and compilers. It is widely used in high-performance computing (HPC) environments to manage complex software stacks.
---

{% include gsoc_project.ext %}
63 changes: 63 additions & 0 deletions _gsocproposals/2026/proposal_Spack_AIAssistedTesting.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
---
title: Generative-AI Assisted Testing of Complex Stacks of Spack Packages
layout: gsoc_proposal
project: Spack
year: 2026
organization:
- umanitoba
difficulty: medium
duration: 175
mentor_avail: June-October
project_mentors:
- email: wouter.deconinck@umanitoba.ca
first_name: Wouter
last_name: Deconinck
organization: umanitoba
is_preferred_contact: yes
---

## Description

Spack is a flexible package manager widely used in high-performance computing (HPC) to manage complex software stacks. It is commonly used in scientific computing environments, including particle physics research. In high-energy physics (HEP), for example, Spack is used to manage complex software dependencies for the extensive stacks in HEP environments.

In contrast to traditional package managers, Spack is designed to support multiple versions with multiple variants at the same time. This allows for the necessary flexibility in HEP environments where for reasons of reproducibility and stability we may want to keep some dependencies at older versions while upgrading other dependencies to newer versions. However, this flexibility comes at the cost of increased complexity in testing the Spack packages, where the focus of testing is typically on the leading-edge configurations: the newest versions with the newest dependencies. This can lead to subtle and invisible breakages in configurations where older packages are combined with newer packages in user-defined configurations.

Based on recent advances in generative AI, it would appear to be feasible to compose specific test scenarios (away from the leading-edge of package versions already tested in CI) that are most likely to uncover breakages in Spack packages. For example, if a package has no upper limits on its dependency versions but other packages do typically have upper limits, then this may indicate that also here upper limits should be added.

This project will explore how generative AI can be used to assist in the identification and creation of such test scenarios for complex stacks of Spack packages, while at the same time developing a methodology to validate the effectiveness of the generated tests and reduce the probability of running large numbers of ineffective tests or repeated tests.

## Task Ideas

- Develop a scalable method to summarize information from multiple Spack packages for input into generative AI models
- Develop a method to record and propagate past successful test scenarios to avoid generating duplicate tests
- Develop a strategy to schedule and run generated test scenarios in an efficient manner
- Develop a methodology to validate the effectiveness of generated test scenarios in uncovering breakages
- Integrate the automatic test scenarios into Spack's existing continuous integration and testing infrastructure

## Expected Results and Milestones

- Familiarization with Spack's packaging practices and testing infrastructure
- Analyze classes of common off-leading-edge configurations that may lead to breakages
- Summarization of potential strategies for generative-AI assisted test generation
- Design of a solution for generative-AI assisted test generation
- Test the design in the context of Spack packages
- Documentation and integration into Spack

## Requirements

- Python programming skills
- Generative AI knowledge and experience
- Packaging and build system knowledge
- Interest in scientific software stacks

## AI Policy

AI assistance is allowed for this contribution. The applicant takes full responsibility for all code and results, disclosing AI use for non-routine tasks (algorithm design, architecture, complex problem-solving). Routine tasks (grammar, formatting, style) do not require disclosure.

## How to Apply

Email mentors with a brief background and interest in scientific software stacks and high-energy physics. Please include "gsoc26" in the subject line. Mentors will provide an evaluation task after submission.

## Resources

- [Spack](https://spack.io/)
61 changes: 61 additions & 0 deletions _gsocproposals/2026/proposal_Spack_DebuggableInstalls.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
---
title: Debuggable Installations for Spack Packages
layout: gsoc_proposal
project: Spack
year: 2026
organization:
- umanitoba
difficulty: medium
duration: 175
mentor_avail: June-October
project_mentors:
- email: wouter.deconinck@umanitoba.ca
first_name: Wouter
last_name: Deconinck
organization: umanitoba
is_preferred_contact: yes
---

## Description

Spack is a flexible package manager widely used in high-performance computing (HPC) to manage complex software stacks. It is commonly used in scientific computing environments, including particle physics research. For example, the key4HEP project uses Spack to manage software dependencies for high-energy physics applications.

Spack builds packages from scratch in a staging directory, which is then installed into a Spack-managed prefix. However, this approach can make debugging installation issues challenging, as the build artifacts are not easily accessible after installation. Symbols in the installed binaries may not correspond to the original source files, complicating debugging efforts.

There are some workarounds to ensuring debuggable installs in Spack, such as using `spack dev-build` or `spack develop`, but these methods have limitations and do not fully address the issue in a streamlined manner. This project will focus on ensuring that the source trees used for compilation can be installed in the prefix alongside the built binaries, allowing for easier debugging and symbol resolution. This project will have to ensure that temporary build products are still cleaned up properly to avoid bloating the installation prefix.

## Task Ideas

- Assess the limitations of the current approaches for installing source trees alongside built binaries in Spack
- Develop a robust solution to enable debuggable installs for Spack packages with out-of-tree build systems
- Test the implementation with a variety of packages and build systems, with a focus on high-energy physics software

As a stretch goal, in case of rapid progress, we may consider a next step which involves installing debug symbols in a separate location for access with `debuginfod`. This would allow installed binaries to be stripped of debug symbols, reducing their size and increasing performance, while still providing access to the symbols when needed for debugging.

## Expected Results and Milestones

- Familiarization with Spack's build and install processes
- Summarization of current limitations and potential solutions
- Design of a solution for debuggable installs
- Analyze design for anticipated challenges
- Implementation of the solution
- Testing and validation with various packages
- Documentation and integration into Spack

## Requirements

- Python programming skills
- Packaging and build system knowledge (in particular CMake)
- Interest in scientific software stacks and high-energy physics

## AI Policy

AI assistance is allowed for this contribution. The applicant takes full responsibility for all code and results, disclosing AI use for non-routine tasks (algorithm design, architecture, complex problem-solving). Routine tasks (grammar, formatting, style) do not require disclosure.

## How to Apply

Email mentors with a brief background and interest in scientific software stacks and high-energy physics. Please include "gsoc26" in the subject line. Mentors will provide an evaluation task after submission.

## Resources

- [Spack](https://spack.io/)
Binary file added images/spack-logo-220-LLNL.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.