Thank you for your interest in improving conda-tasks! This document describes how to contribute to the project.
This project follows the conda Organization Code of Conduct. Please read it before participating.
-
Fork the repository on GitHub.
-
Clone your fork locally.
-
Install pixi (used for development environments).
-
Run the tests to make sure everything works:
pixi run test
conda-tasks uses pixi for development environment management. The available
tasks are defined in pixi.toml:
pixi run test # run tests
pixi run test-cov # run tests with coverage
pixi run lint # run ruff linter
pixi run format # run ruff formatter
pixi run typecheck # run ty type checker
pixi run docs # build documentation- Create a new branch from
mainfor your changes. - Keep changes focused on a single issue or feature.
- Write tests for new functionality.
- Make sure all tests pass before submitting.
- All code must be typed using modern annotations (
str | None,list[str]). - Use
from __future__ import annotationsin all modules. - Use relative imports for intra-package references.
- Run
pixi run lintandpixi run formatbefore committing. - Run
pixi run typecheckto verify type annotations.
- Tests are plain
pytestfunctions — nounittest.TestCaseclasses. - Use
pytest.mark.parametrizefor multiple test cases with the same logic. - Use
monkeypatchand native pytest fixtures instead ofunittest.mock. - Tests mirror the source structure (e.g., tests for
conda_tasks/cli/run.pylive intests/cli/test_run.py).
- Docs use Sphinx with MyST Markdown.
- Build locally with
pixi run docs. - Follow the Diataxis framework for new content.
- Push your branch to your fork.
- Open a pull request against
main. - Describe what your change does and why.
- Link any related issues.
- Make sure CI passes.
To contribute to conda ecosystem projects, you need to sign the Conda Contributor License Agreement (CLA).
You're welcome to use generative AI tools when contributing. However:
- You are responsible for all of your contributions. Review and understand any AI-generated content before including it in a pull request.
- Be prepared to discuss changes during review — do not paste AI responses verbatim.
- Make minimal, focused changes that match the existing style and patterns.
- Ensure AI-assisted changes actually fix the underlying problem rather than altering tests to make them pass.
Pull requests consisting of unchecked AI-generated content may be closed.
- Open an issue for bug reports or feature requests.
- Join the conda community chat for questions.