Skip to content

Add conda package manager support to environment setup #50

@jeremymanning

Description

@jeremymanning

Problem Description

The widget interface includes conda as a package manager option in the Advanced Options dropdown, but conda support is not actually implemented in the backend.

Current State

  • Widget dropdown shows: ["auto", "pip", "conda", "uv"]
  • Many default configurations specify "package_manager": "conda"
  • Backend get_package_manager_command() handles:
    • "uv""uv pip"
    • "auto""uv pip" if available, else "pip"
    • "pip" → falls through to "pip" (works correctly)
    • "conda" → falls through to "pip" (ignores user choice)

Expected Behavior

When "conda" is selected as package manager:

  1. Use conda for package installation instead of pip
  2. Properly handle conda environment creation and activation
  3. Support conda-specific package resolution and installation
  4. Maintain compatibility with existing conda environments

Implementation Requirements

  • Update get_package_manager_command() to handle "conda" case
  • Add conda environment setup logic (instead of venv)
  • Add conda package installation commands
  • Add conda availability detection
  • Add comprehensive tests for conda functionality
  • Update documentation with conda usage examples

Files to Modify

  • clustrix/utils.py - Core package manager logic
  • clustrix/config.py - Configuration validation if needed
  • Tests and documentation

Use Cases

  • HPC environments where conda is standard
  • Data science workflows requiring conda-forge packages
  • Environments with complex dependency requirements
  • Systems where pip+venv may have limitations

Priority: Medium - Affects user experience when conda is selected but not properly used.

Note: pip and uv support are already working correctly.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions