Work in Progress: Backend Implementations for Building Pixi Projects from Source
This repository contains backend implementations designed to facilitate the building of pixi projects directly from their source code. These backends aim to enhance the functionality of Pixi, a cross-platform, multi-language package manager and workflow tool built on the foundation of the conda ecosystem.
The idea is that a backend should be able to build a certain type of so The repository provides the following build backends:
- pixi-build-python: A backend tailored for building Python-based projects.
- pixi-build-cmake: A backend designed for projects utilizing CMake as their build system.
- pixi-build-rattler-build: A backend for building
recipe.yaml
directly
These backends are located in the crates/*
directory of the repository.
- Backend Implementations: Provides the necessary components to build Pixi projects from source, integrating seamlessly with the Pixi ecosystem.
- Schema Definitions: Includes schema definitions to standardize and validate project configurations.
Note: This project is currently a work in progress. Functionality and documentation are under active development. All of these backends are directly uploaded to the Pixi Build Backends. So will be utilized in pixi directly. We want to move these to conda-forge eventually.
For example, this build-section
will use the python backend to build a python project:
[build-system]
# The name of the build backend to use. This name refers both to the name of
# the package that provides the build backend and the name of the executable
# inside the package that is invoked.
#
# The `build-backend` key also functions as a dependency declaration. At least
# a version specifier must be added.
build-backend = { name = "pixi-build-python", version = "*" }
# These are the conda channels that are used to resolve the dependencies of the
# build backend package.
channels = [
"https://prefix.dev/pixi-build-backends",
"https://prefix.dev/conda-forge",
]
Even though binary versions are available on the prefix channels, its also quite easy to get started on developing a new backend or work on an existing one. To start development make sure you have installed pixi. After which, a number of command should be available:
# To build the backens
pixi run build
# .. to install a backend, for example the python one:
pixi r install-pixi-build-python
You can make use of these backends to overwrite any existing backend in pixi. For example, to overwrite the python backend with a local version, you can do the following:
PIXI_BUILD_BACKEND_OVERRIDE=/path/to/pixi-build-python pixi install
Contributions are welcome! Please refer to the contributing guidelines for more information. License
This project is licensed under the BSD-3-Clause License. See the LICENSE file for details. Acknowledgements
Developed by prefix.dev. For more information about Pixi and related projects, visit the prefix-dev organization on GitHub.