Skip to content

Commit 5688ee3

Browse files
authored
doc: add simple readme (#35)
1 parent 0a44caa commit 5688ee3

File tree

1 file changed

+74
-0
lines changed

1 file changed

+74
-0
lines changed

README.md

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
# Pixi Build Backends
2+
3+
**Work in Progress: Backend Implementations for Building Pixi Projects from Source**
4+
5+
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.
6+
7+
## Available Build Backends
8+
The idea is that a backend should be able to build a certain type of so
9+
The repository provides the following build backends:
10+
11+
1. **pixi-build-python**: A backend tailored for building Python-based projects.
12+
2. **pixi-build-cmake**: A backend designed for projects utilizing CMake as their build system.
13+
3. **pixi-build-rattler-build**: A backend for building [`recipe.yaml`](https://rattler.build/latest/) directly
14+
15+
These backends are located in the `crates/*` directory of the repository.
16+
17+
## Features
18+
* **Backend Implementations**: Provides the necessary components to build Pixi projects from source, integrating seamlessly with the Pixi ecosystem.
19+
* **Schema Definitions**: Includes schema definitions to standardize and validate project configurations.
20+
21+
## Getting Started
22+
23+
**Note**: This project is currently a work in progress. Functionality and documentation are under active development.
24+
All of these backends are directly uploaded to the [Pixi Build Backends](https://prefix.dev/channels/pixi-build-backends).
25+
So will be utilized in pixi directly. We want to move these to conda-forge eventually.
26+
27+
For example, this `build-section` will use the python backend to build a python project:
28+
29+
```toml
30+
[build-system]
31+
# The name of the build backend to use. This name refers both to the name of
32+
# the package that provides the build backend and the name of the executable
33+
# inside the package that is invoked.
34+
#
35+
# The `build-backend` key also functions as a dependency declaration. At least
36+
# a version specifier must be added.
37+
build-backend = { name = "pixi-build-python", version = "*" }
38+
# These are the conda channels that are used to resolve the dependencies of the
39+
# build backend package.
40+
channels = [
41+
"https://prefix.dev/pixi-build-backends",
42+
"https://prefix.dev/conda-forge",
43+
]
44+
```
45+
46+
47+
### Developing on Backends
48+
49+
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.
50+
To start development make sure you have installed [pixi](https://pixi.sh). After which, a number of command should be available:
51+
52+
```bash
53+
# To build the backens
54+
pixi run build
55+
# .. to install a backend, for example the python one:
56+
pixi r install-pixi-build-python
57+
```
58+
59+
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:
60+
61+
```bash
62+
PIXI_BUILD_BACKEND_OVERRIDE=/path/to/pixi-build-python pixi install
63+
```
64+
65+
## Contributing
66+
Contributions are welcome! Please refer to the contributing guidelines for more information.
67+
License
68+
69+
This project is licensed under the BSD-3-Clause License. See the LICENSE file for details.
70+
Acknowledgements
71+
72+
## Acknowledgemts
73+
Developed by prefix.dev.
74+
For more information about Pixi and related projects, visit the [prefix-dev](https://github.com/prefix-dev) organization on GitHub.

0 commit comments

Comments
 (0)