This is an experimental development setup for using Pixi to do development work on NumPy, SciPy and some related projects.
- Install
pixi - Authenticate with
gh- If you don't have
ghinstalled, you canpixi global install gh - Run
gh auth login - Run
gh auth setup-git
- If you don't have
- Clone this repository
- For example, with
gh repo clone rgommers/pixi-dev-scipystack
- For example, with
In the root directory of this repository:
- run
pixi run clone-allto clone all of the source repos into the workspace- alternatively, you can select only specific repos to clone, like
pixi run clone-numpy
- alternatively, you can select only specific repos to clone, like
- fork repositories with
pixi run fork-all- this forks repositories under the username set with
gh, and setsupstreamandoriginremotes appropriately - similarly, you can select specific repos to fork, like
pixi run fork-numpy
- this forks repositories under the username set with
pixi run clone-fork-all will do all of this in one go.
After that, if you cd REPO (replacing REPO with the name of a repo in the workspace),
you will be able to build and test that repo (plus other dev tasks, see pixi task list).
For example, with SciPy:
❯ pixi run clone-scipy
{snip}
❯ cd scipy
❯ pixi run build
✨ Pixi task (build in default): spin build --setup-args=-Dblas=blas --setup-args=-Dlapack=lapack --setup-args=-Duse-g77-abi=true $ meson setup build --prefix=/usr -Dblas=blas -Dlapack=lapack -Duse-g77-abi=true
The Meson build system
Version: 1.8.2
Source dir: /Users/lucascolley/ghq/github.com/rgommers/pixi-dev-scipystack/scipy/scipy
{snip}
❯ pixi run test-torch
? The task 'test-torch' can be run in multiple environments.
Please select an environment to run the task in: ›
❯ torch
array-api
✨ Pixi task (build in default): spin build --setup-args=-Dblas=blas --setup-args=-Dlapack=lapack --setup-args=-Duse-g77-abi=true $ meson compile -j 8 -C build
{snip}
✨ Pixi task (test-torch in torch): spin test --no-build -b torch -m 'array_api_backends and not slow'
{snip}
======================================== 1945 passed, 14 skipped, 228 deselected in 2.52s =========================================Goals of this repository include:
- Making it easier to get started contributing to projects like NumPy and SciPy.
- Making it easier for maintainers to reliably test in non-standard environments, e.g. when working on support for PyTorch, JAX, CuPy and other array libraries, or with BLAS/LAPACK libraries like MKL.
- Prototype extra spin/dev.py commands that may be useful.
- See what else Pixi can bring!
This repo is highly experimental - everything is subject to change, so please don't rely on it too much. Ideas, questions, bug reports and pull requests are very welcome though!