Project-scoped multi-environment workspace management for conda, with pixi compatibility
Project description
conda-workspaces
Project-scoped multi-environment workspace management for conda, with pixi manifest compatibility.
Define environments in your project manifest, compose them from reusable features, and let conda handle the solving and installation. Works with existing pixi manifests -- no new package manager required.
Quick start
Create a conda.toml in your project root:
[workspace]
name = "my-project"
channels = ["conda-forge"]
platforms = ["linux-64", "osx-arm64", "win-64"]
[dependencies]
python = ">=3.10"
numpy = ">=1.24"
[feature.test.dependencies]
pytest = ">=8.0"
pytest-cov = ">=4.0"
[environments]
default = { solve-group = "default" }
test = { features = ["test"], solve-group = "default" }
Install and manage your environments:
$ cw install # solve + install + generate conda.lock
$ cw run -e test -- pytest
$ cw list
$ cw install --locked # reproducible install from conda.lock
Why?
Conda handles environments and packages. pixi introduced a great project manifest format with multi-environment workspaces, but it brings its own solver and environment management.
conda-workspaces reads pixi-compatible manifests and delegates solving and installation to conda's own infrastructure. You get workspace management inside the conda CLI without switching tools.
What it does
- Reads
pixi.toml,conda.toml, andpyproject.tomlworkspace manifests - Multi-environment support with composable features
- Project-local environments in
.conda/envs/ - Lockfile generation (
conda.lock) in rattler-lock v6 format for reproducible installs - Solve-groups for version consistency across environments
- Per-platform dependency overrides via
[target.<platform>] - PyPI dependency parsing (delegated to conda-pypi)
- Standalone
cwCLI andconda workspaceplugin subcommand
Installation
conda install -c conda-forge conda-workspaces
CLI
conda-workspaces registers as conda workspace and provides cw as a
standalone shortcut.
| Command | Description |
|---|---|
cw init |
Initialize a new workspace manifest |
cw install |
Create/update workspace environments |
cw install --locked |
Install from lockfile (skip solving) |
cw lock |
Generate/update conda.lock |
cw list |
List defined environments |
cw info [ENV] |
Show environment details |
cw add SPECS... |
Add dependencies |
cw remove SPECS... |
Remove dependencies |
cw run -e ENV -- CMD |
Run a command in an environment |
cw shell [ENV] |
Spawn a shell with an environment activated |
cw activate [ENV] |
Print activation instructions |
cw clean |
Remove installed environments |
What it doesn't do
conda-workspaces is a workspace manager, not a package manager replacement. It does not bundle its own solver or bypass conda's installation machinery. If you want a fully integrated tool that handles both, see pixi.
Documentation
https://conda-incubator.github.io/conda-workspaces/
Development
pixi install
pixi run test
pixi run lint
Acknowledgements
The workspace and manifest system in conda-workspaces is directly inspired by the work of the prefix.dev team on pixi. Their design of workspace manifests, features, environments, and platform targeting provided the blueprint for this plugin.
License
BSD 3-Clause. See LICENSE.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file conda_workspaces-0.1.0.tar.gz.
File metadata
- Download URL: conda_workspaces-0.1.0.tar.gz
- Upload date:
- Size: 144.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d414f0fb3a16b04e5a55a53936a24375ebb547ccc72d9cf35db752a0b363cce6
|
|
| MD5 |
a6d55cd32337f155cd884d2c102d67d6
|
|
| BLAKE2b-256 |
cebda799d6999834248e687868ec3242d98ee594716aeb0f639308c563990d59
|
Provenance
The following attestation bundles were made for conda_workspaces-0.1.0.tar.gz:
Publisher:
release.yml on conda-incubator/conda-workspaces
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
conda_workspaces-0.1.0.tar.gz -
Subject digest:
d414f0fb3a16b04e5a55a53936a24375ebb547ccc72d9cf35db752a0b363cce6 - Sigstore transparency entry: 1042191800
- Sigstore integration time:
-
Permalink:
conda-incubator/conda-workspaces@804bde6324bebe82b307889c57c4b07233ec9339 -
Branch / Tag:
refs/tags/0.1.0 - Owner: https://github.com/conda-incubator
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@804bde6324bebe82b307889c57c4b07233ec9339 -
Trigger Event:
release
-
Statement type:
File details
Details for the file conda_workspaces-0.1.0-py3-none-any.whl.
File metadata
- Download URL: conda_workspaces-0.1.0-py3-none-any.whl
- Upload date:
- Size: 40.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0d19a8f82c62b0864bcc65bb023bcbe982d44557ba0ff277a589930fa79b8299
|
|
| MD5 |
91266c187af6201fa7006372867ed02c
|
|
| BLAKE2b-256 |
cea2993e66bdae0c7d21a9c3ee53e37654c62e72071160824819995cf050e6ee
|
Provenance
The following attestation bundles were made for conda_workspaces-0.1.0-py3-none-any.whl:
Publisher:
release.yml on conda-incubator/conda-workspaces
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
conda_workspaces-0.1.0-py3-none-any.whl -
Subject digest:
0d19a8f82c62b0864bcc65bb023bcbe982d44557ba0ff277a589930fa79b8299 - Sigstore transparency entry: 1042191851
- Sigstore integration time:
-
Permalink:
conda-incubator/conda-workspaces@804bde6324bebe82b307889c57c4b07233ec9339 -
Branch / Tag:
refs/tags/0.1.0 - Owner: https://github.com/conda-incubator
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@804bde6324bebe82b307889c57c4b07233ec9339 -
Trigger Event:
release
-
Statement type: