Skip to content

Commit 8ef0fae

Browse files
authored
feat(gsoc): spack debuggable installs (#1813)
* feat(gsoc): spack debuggable installs * fix: UM -> umanitoba
1 parent ccf1481 commit 8ef0fae

File tree

4 files changed

+83
-0
lines changed

4 files changed

+83
-0
lines changed

_gsocorgs/2026/umanitoba.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
---
2+
title: "University of Manitoba"
3+
author: "Wouter Deconinck"
4+
layout: default
5+
organization: umanitoba
6+
logo: UManitoba-logo.png
7+
description: |
8+
The University of Manitoba is a Canadian public research university in the province of Manitoba,
9+
located on original lands of Anishinaabeg, Cree, Oji-Cree, Dakota, and Dene peoples, and on the
10+
homeland of the Métis Nation.
11+
---
12+
13+
{% include gsoc_proposal.ext %}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
---
2+
project: Spack
3+
layout: default
4+
logo: spack-logo-220-LLNL.png
5+
description: |
6+
[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.
7+
---
8+
9+
{% include gsoc_project.ext %}
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
---
2+
title: Debuggable Installations for Spack Packages
3+
layout: gsoc_proposal
4+
project: Spack
5+
year: 2026
6+
organization:
7+
- umanitoba
8+
difficulty: medium
9+
duration: 175
10+
mentor_avail: June-October
11+
project_mentors:
12+
13+
first_name: Wouter
14+
last_name: Deconinck
15+
organization: umanitoba
16+
is_preferred_contact: yes
17+
---
18+
19+
## Description
20+
21+
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.
22+
23+
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.
24+
25+
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.
26+
27+
## Task Ideas
28+
29+
- Assess the limitations of the current approaches for installing source trees alongside built binaries in Spack
30+
- Develop a robust solution to enable debuggable installs for Spack packages with out-of-tree build systems
31+
- Test the implementation with a variety of packages and build systems, with a focus on high-energy physics software
32+
33+
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.
34+
35+
## Expected Results and Milestones
36+
37+
- Familiarization with Spack's build and install processes
38+
- Summarization of current limitations and potential solutions
39+
- Design of a solution for debuggable installs
40+
- Analyze design for anticipated challenges
41+
- Implementation of the solution
42+
- Testing and validation with various packages
43+
- Documentation and integration into Spack
44+
45+
## Requirements
46+
47+
- Python programming skills
48+
- Packaging and build system knowledge (in particular CMake)
49+
- Interest in scientific software stacks and high-energy physics
50+
51+
## AI Policy
52+
53+
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.
54+
55+
## How to Apply
56+
57+
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.
58+
59+
## Resources
60+
61+
- [Spack](https://spack.io/)

images/spack-logo-220-LLNL.png

22.7 KB
Loading

0 commit comments

Comments
 (0)