Skip to main content

Project-scoped multi-environment workspace management for conda, with pixi compatibility

Project description

conda-workspaces

License Python

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, and pyproject.toml workspace 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 cw CLI and conda workspace plugin 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

conda_workspaces-0.1.0.tar.gz (144.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

conda_workspaces-0.1.0-py3-none-any.whl (40.0 kB view details)

Uploaded Python 3

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

Hashes for conda_workspaces-0.1.0.tar.gz
Algorithm Hash digest
SHA256 d414f0fb3a16b04e5a55a53936a24375ebb547ccc72d9cf35db752a0b363cce6
MD5 a6d55cd32337f155cd884d2c102d67d6
BLAKE2b-256 cebda799d6999834248e687868ec3242d98ee594716aeb0f639308c563990d59

See more details on using hashes here.

Provenance

The following attestation bundles were made for conda_workspaces-0.1.0.tar.gz:

Publisher: release.yml on conda-incubator/conda-workspaces

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file conda_workspaces-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for conda_workspaces-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0d19a8f82c62b0864bcc65bb023bcbe982d44557ba0ff277a589930fa79b8299
MD5 91266c187af6201fa7006372867ed02c
BLAKE2b-256 cea2993e66bdae0c7d21a9c3ee53e37654c62e72071160824819995cf050e6ee

See more details on using hashes here.

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

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page