Skip to main content

The missing task runner for conda, inspired by pixi.

Project description

conda-tasks

Tests Docs License Python

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

conda_tasks-0.1.0.tar.gz (153.2 kB view details)

Uploaded Source

Built Distribution

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

conda_tasks-0.1.0-py3-none-any.whl (30.5 kB view details)

Uploaded Python 3

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

Hashes for conda_tasks-0.1.0.tar.gz
Algorithm Hash digest
SHA256 fd5a0c8be75690a05278abb6191c615d21da2eaefdbfdd255648bcdf0ff57c21
MD5 6f179895e0aad1db9b4f2fbb26982c65
BLAKE2b-256 79d751210e3bd0f4fdf95c5ce021271b1c824b4a4a735aac9bead19c05b86e6b

See more details on using hashes here.

Provenance

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

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

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_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

Hashes for conda_tasks-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6feca4841196bd936266f68c884166c4e07211ceeb0e2c10f4737f8687ca4054
MD5 bb98c2cd135016b46e5ed76bd9935105
BLAKE2b-256 44c7ee2ca73543d466ad2d0b3c1f6616e6c832e01421a28f4a2846376b37e77d

See more details on using hashes here.

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

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