Developer guide#
Welcome to the conda developer guide. Whether you are fixing a bug, adding a new feature, writing a plugin, or diving deep into conda's internals, this guide has everything you need to get started and contribute effectively.
Getting started #
New to conda development? Start here.
Learn how the conda project is managed, how to open issues and pull requests, and what to expect from the review process.
Follow this guide to set up a local development environment and run conda from source.
Architecture & internals #
Understand how conda is structured and how its most complex subsystems work.
A high-level overview of conda's architecture, its major components, and how they interact with each other.
Detailed explorations of particularly complex subsystems such as the solver, activation, context, and logging.
Extending conda #
Build on top of conda using its plugin system or consult the formal specifications.
Learn how to extend and customize conda's behavior using the plugin system, including hooks for solvers, subcommands, auth handlers, and more.
Formal specifications for conda internals, including solver state and other components.
Contributing & quality #
Guides for writing tests, managing deprecations, and cutting releases.
Guidelines and guides for writing unit and integration tests, using the HTTP test server, and testing on Windows with AppLocker.
Learn the conda deprecation policy and how to mark APIs and behaviors as pending deprecated, deprecated, or removed.
Step-by-step instructions for preparing and publishing a new conda release, including the CalVer versioning scheme.
Guidelines for adding and improving type annotations in the conda codebase, including custom types and local tooling.
API reference #
Auto-generated API documentation for all public modules, classes, and functions in the conda package.