Skip to content

Commit

Permalink
doc: add simple readme (#35)
Browse files Browse the repository at this point in the history
  • Loading branch information
tdejager authored Dec 9, 2024
1 parent 0a44caa commit 5688ee3
Showing 1 changed file with 74 additions and 0 deletions.
74 changes: 74 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
# 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`](https://rattler.build/latest/) 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](https://prefix.dev/channels/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:

```toml
[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](https://pixi.sh). After which, a number of command should be available:

```bash
# 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:

```bash
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](https://github.com/prefix-dev) organization on GitHub.

0 comments on commit 5688ee3

Please sign in to comment.