The missing task runner for conda, inspired by pixi.
Project description
conda-tasks
The missing task runner for conda, inspired by pixi.
Define tasks in your project, wire up dependencies between them, and run
everything through conda task. Works with your existing conda environments
-- no new package manager required.
Quick start
Create a conda-tasks.yml in your project root:
tasks:
build:
cmd: "python -m build"
test:
cmd: "pytest tests/ -v"
depends-on: [build]
lint:
cmd: "ruff check ."
check:
depends-on: [test, lint]
Running check resolves its dependencies and runs them in order:
$ conda task run check
[run] build: python -m build
[run] lint: ruff check .
[run] test: pytest tests/ -v
[done] check
Why?
Conda handles environments and packages. But there's no built-in way to
define project tasks -- the kind of thing you'd otherwise put in a Makefile,
tox.ini, or a pile of shell scripts. pixi solved this well, but it's a
separate tool with its own environment management.
conda-tasks brings the task runner part to conda as a plugin. You keep using conda for environments, and get a proper task system on top.
What it does
- Task dependencies with topological ordering (
depends-on) - Jinja2 templates in commands (
{{ conda.platform }}, conditionals) - Task arguments with defaults
- Input/output caching -- skip tasks when nothing changed
- Per-platform overrides for cross-platform projects
- Run tasks in any conda environment (
-n myenv) - Reads from
conda-tasks.yml,conda-tasks.toml,pixi.toml,pyproject.toml, or.condarc
Installation
conda install -c conda-forge conda-tasks
What it doesn't do
conda-tasks is a task runner, not a package manager. It does not create
environments or install dependencies -- that's conda's job. If you're
coming from pixi where pixi run handles both, see the
migration guide.
Documentation
https://conda-incubator.github.io/conda-tasks/
Acknowledgements
The task system in conda-tasks is directly inspired by the work of the prefix.dev team on pixi. Their design of task definitions, dependency graphs, platform overrides, and caching provided the blueprint for this plugin. conda-tasks exists because pixi demonstrated that a good task runner belongs in every project workflow.
License
BSD 3-Clause. See LICENSE.
Project details
Release history Release notifications | RSS feed
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_tasks-0.1.0.tar.gz.
File metadata
- Download URL: conda_tasks-0.1.0.tar.gz
- Upload date:
- Size: 153.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fd5a0c8be75690a05278abb6191c615d21da2eaefdbfdd255648bcdf0ff57c21
|
|
| MD5 |
6f179895e0aad1db9b4f2fbb26982c65
|
|
| BLAKE2b-256 |
79d751210e3bd0f4fdf95c5ce021271b1c824b4a4a735aac9bead19c05b86e6b
|
Provenance
The following attestation bundles were made for conda_tasks-0.1.0.tar.gz:
Publisher:
release.yml on conda-incubator/conda-tasks
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
conda_tasks-0.1.0.tar.gz -
Subject digest:
fd5a0c8be75690a05278abb6191c615d21da2eaefdbfdd255648bcdf0ff57c21 - Sigstore transparency entry: 1042399229
- Sigstore integration time:
-
Permalink:
conda-incubator/conda-tasks@aeb5977e3571f8e1f5d8a2bc24e1ccdc21fe86fb -
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@aeb5977e3571f8e1f5d8a2bc24e1ccdc21fe86fb -
Trigger Event:
release
-
Statement type:
File details
Details for the file conda_tasks-0.1.0-py3-none-any.whl.
File metadata
- Download URL: conda_tasks-0.1.0-py3-none-any.whl
- Upload date:
- Size: 30.5 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 |
6feca4841196bd936266f68c884166c4e07211ceeb0e2c10f4737f8687ca4054
|
|
| MD5 |
bb98c2cd135016b46e5ed76bd9935105
|
|
| BLAKE2b-256 |
44c7ee2ca73543d466ad2d0b3c1f6616e6c832e01421a28f4a2846376b37e77d
|
Provenance
The following attestation bundles were made for conda_tasks-0.1.0-py3-none-any.whl:
Publisher:
release.yml on conda-incubator/conda-tasks
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
conda_tasks-0.1.0-py3-none-any.whl -
Subject digest:
6feca4841196bd936266f68c884166c4e07211ceeb0e2c10f4737f8687ca4054 - Sigstore transparency entry: 1042399281
- Sigstore integration time:
-
Permalink:
conda-incubator/conda-tasks@aeb5977e3571f8e1f5d8a2bc24e1ccdc21fe86fb -
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@aeb5977e3571f8e1f5d8a2bc24e1ccdc21fe86fb -
Trigger Event:
release
-
Statement type: