Skip to content

Instantly share code, notes, and snippets.

View Hofer-Julian's full-sized avatar
😁

Hofer-Julian

😁
View GitHub Profile
@Hofer-Julian
Hofer-Julian / debug-release.md
Created August 21, 2025 15:40
Debug Release Packages

A Comprehensive Compiler Strategy for pixi-build

This document outlines a complete strategy to enable selectable debug and release build variants for packages built with pixi-build. The approach is rooted in a modular compiler architecture and is controlled by a custom build variant (profile) in the pixi.toml configuration.

This design centralizes the build configuration logic within the workspace, keeps individual recipe.yaml files clean and declarative, and guarantees ABI compatibility across the entire dependency tree.

Part 1: Foundational Components

Before the build tool can select variants, a modular package structure must exist. This involves separating the compiler toolchain into distinct components and creating special "token" packages to enforce build consistency.

@Hofer-Julian
Hofer-Julian / build_profiles.md
Last active August 7, 2025 09:32
Pixi Build Profiles

Pixi Build Profiles

Rationale

Often the same package can be built in multiple ways. Existing build systems typically call those ways profiles or build types. For compiled languages that typically means different compiler flags and whether debug info is included or not. Interpreted languages typically don't exactly expose profiles, the closest equivalent is --editable in the case of Python.

We want to empower users to define fine-grained profiles without too much effort or duplication.

@Hofer-Julian
Hofer-Julian / vars_proposal.md
Created March 28, 2025 15:32
Variables Proposal

Variables in manifest

Goals:

  • Avoid repeating values
  • Make it easy to interact with a full tree of tasks
[vars]
profile = "--release"
@Hofer-Julian
Hofer-Julian / task_proposal.md
Last active March 28, 2025 16:09
Enhanced Task Design Document

Enhanced Task Design Proposal

Goals

  • More powerful tasks
  • Backwards compatibility with existing tasks

Existing Behavior