Skip to content

WIP backend implementations to build pixi projects from source

Notifications You must be signed in to change notification settings

prefix-dev/pixi-build-backends

Repository files navigation

Pixi Build Backends

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.

Available Build Backends

The idea is that a backend should be able to build a certain type of so The repository provides the following build backends:

  1. pixi-build-python: A backend tailored for building Python-based projects.
  2. pixi-build-cmake: A backend designed for projects utilizing CMake as their build system.
  3. pixi-build-rattler-build: A backend for building recipe.yaml directly

These backends are located in the crates/* directory of the repository.

Features

  • 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.

Getting Started

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",
]

Developing on Backends

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

Contributing

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

Acknowledgemts

Developed by prefix.dev. For more information about Pixi and related projects, visit the prefix-dev organization on GitHub.

About

WIP backend implementations to build pixi projects from source

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published