Conda Documentation

repository·main·Indexed 19 days ago

https://github.com/conda/conda-docs

Centralized documentation for the Conda ecosystem, providing landing pages and shared documentation for conda and conda-build. Includes guides on installation via Miniconda and Miniforge, development environment setup for Bash and Windows, contributing via feedstocks, and community support resources.

Tokens
4.1K
Snippets
6
Records
25
Agent score
64%

What's inside conda-docs

  1. Explore Conda projects and tools

    main

    Conda is part of a larger ecosystem of tools for package and environment management. Key related projects include:

    • conda: The core CLI for creating and managing environments.
    • conda-build: Tools for building conda packages.
    • conda-lock: Generates fully reproducible lock files for conda environments.
    • constructor: Builds OS-specific installers for conda packages.
    • conda-pack: Creates distributable archives of conda environments.
  2. Identify and use different issue types (Epics and Spikes)

    main

    Conda categorizes work into several issue types to manage complexity and uncertainty:

    • Standard Issue: Typical bug reports or feature requests with a clear definition and expected outcome.
    • Epics: Large work items that should be broken down into smaller, manageable issues. Use GitHub's sub-issues feature to relate smaller tasks to the Epic.
    • Spikes: Used when the outcome is unknown or optional (e.g., research or prototyping).
      • When to use: When the team lacks sufficient information to move forward or is encountering unknown technologies.
      • When NOT to use: For writing technical specs for known implementations, API design work, or any work that is mandatory/not optional.
      • Characteristics: Spikes are often timeboxed to prevent contributors from spending excessive time on unviable paths.
  3. Understand and use GitHub labeling conventions

    main

    Conda uses a scoped labeling system to track issue state, severity, and classification. Labels follow a [category::topic] or [topic] syntax.

    Key Label Categories:

    • type: High-level classification (e.g., type::bug, type::feature, type::documentation). These are mutually exclusive; an issue should have exactly one type label.
    • source: Indicates the author's subgroup (e.g., partner, frequent contributor, community). These are mutually exclusive; an issue should have exactly one source label.
    • severity: Indicates priority (e.g., critical, major). Required for all type::bug issues, but can be used for other types to indicate demand. These are mutually exclusive.
    • os: Indicates affected operating systems (e.g., os::linux, os::macos, os::windows). Unlike types, an issue can have multiple OS labels if it occurs on several systems.

    Automation Note: Certain labels trigger automation. For example, an issue labeled type::support is marked stale after 21 days of inactivity and auto-closed after 30 total inactive days.

  4. Understand the Conda Issue Sorting process

    main

    Conda uses an "Issue Sorting" process (similar to triaging) to assess the priority of incoming issues. The goal is to categorize issues into four priority levels:

    • Do now
    • Do sometime
    • Provide user support
    • Never do (close the issue)

    The Workflow:

    1. New Issues: Arrive in the repository issue tracker.
    2. Sorting: Core maintainers review issues to mitigate via workarounds, redirect to correct projects, provide support, or close duplicates/off-topic issues.
    3. Refinement: Once sorted and containing enough information, issues move to the Refinement tab of the Roadmap Board.
    4. Backlog: Refined issues that are accepted but not yet planned for a sprint move to the Backlog.
    5. Current Sprint: Issues actively being worked on move to the Current Sprint.
    6. Closed: Issues are closed once resolved or if they are deemed not actionable/irrelevant.
  5. Register new documentation pages in the Table of Contents

    main

    When creating new documentation files, you must manually update the Table of Contents (ToC) for the page to appear in the sidebar navigation.

    • For the conda-docs repository, update the toctree directive located in the index.rst file.
    • For the conda or conda-build repositories, you must locate and edit the specific toctree directive within the relevant index files.
  6. Install Conda via Miniforge

    main

    Miniforge is an installer maintained by the conda-forge community that comes preconfigured for use with the conda-forge channel. This is a common choice for users who prefer the community-led conda-forge ecosystem.

    You can install it using direct installers for various platforms or via Homebrew on macOS.

    # Install Miniforge using Homebrew on macOS
    brew install miniforge
  7. Use boilerplate responses for common issues

    main

    When sorting issues, maintainers use specific boilerplate responses and labeling patterns for common scenarios:

    Duplicate Issues

    Response: This is a duplicate of [link to primary issue]; please feel free to continue the discussion there. Required Labels:

    • Apply duplicate to the issue being closed.
    • Apply duplicate::primary to the original issue.

    Anaconda Product Issues

    Response: Thank you for filing this issue! Unfortunately, this is off-topic for this repo because it is related to an Anaconda product... (provides links to Anaconda community forums and GitHub issue tracker). Required Labels:

    • Apply off-topic before closing.

    General Off-Topic Issues

    Response: Unfortunately, this issue is outside the scope of support we offer via GitHub or is not directly related to this project... (provides links to Conda discourse, chat channels, and Stack Overflow). Required Labels:

    • Apply off-topic before closing.
  8. Contribute package recipes via feedstocks

    main

    The Conda community uses feedstocks—repositories containing package recipes and build configurations—to enable automated builds via CI services.

    To contribute:

    • Existing recipes: You can clone or fork many package feedstocks from the Anaconda Recipes organization (note: you cannot submit new feedstocks directly to this organization).
    • New feedstocks: To contribute new conda package feedstocks, submit a pull request to one of the following:
  9. Follow the feature development and change process

    main

    Conda encourages the following workflow for new features:

    1. Open an Issue: Start with an issue if one doesn't exist.
    2. Refinement: Once accepted (status moves from 'Sorting' to 'Refinement'), create a specification including mockups, API references, or a written plan.
    3. Incremental Integration: For large features, break work into small issues in the backlog. Instead of long-lived feature branches, integrate small slices of the feature directly into the main branch to avoid complex integration challenges.
    4. Campsite Rule: When making changes, attempt to leave the code better than you found it (e.g., refactoring or fixing minor bugs encountered during the task).
  10. Install Conda via Miniconda

    main

    Miniconda is an installer provided by Anaconda that comes preconfigured for use with the Anaconda Repository. It is a lightweight way to get started with conda.

    You can install it using direct installers for various platforms or via Homebrew on macOS.

    # Install Miniconda using Homebrew on macOS
    brew install miniconda