Skip to content

Conversation

@BaoZhuhan
Copy link

📝 Description

This PR adds an environment.yml file to the repository to streamline the development setup process.

🚀 Motivation

The project currently depends on several libraries with complex C/C++ extensions, such as faiss-cpu, grpcio, and psycopg. Installing these purely via pip can sometimes lead to build errors depending on the operating system and system-level libraries.
Using Conda provides pre-compiled binaries for these core dependencies, making the setup significantly more stable and faster for contributors.

🛠 Implementation Details

I have created the environment.yml based on the current pyproject.toml with a hybrid approach:
Conda (conda-forge): Used for heavy binary dependencies (e.g., faiss-cpu, numpy, grpcio, psycopg) to ensure stability.
Pip: Used for:
Fast-moving AI SDKs (e.g., xai-sdk, langchain-*, google-genai) to ensure we get the latest versions from PyPI.
Installing the package itself in editable mode (-e .).

Copilot AI review requested due to automatic review settings December 3, 2025 12:13
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR introduces a Conda environment configuration file to simplify the development setup process by providing pre-compiled binaries for complex dependencies with C/C++ extensions.

  • Adds environment.yml with a hybrid Conda/pip approach for dependency management
  • Uses Conda for binary dependencies (faiss-cpu, grpcio, psycopg) and pip for fast-moving AI SDKs
  • Updates README to recommend using Conda/Mamba for development setup

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.

File Description
environment.yml New Conda environment configuration specifying Python 3.10, binary dependencies via conda-forge, and AI SDKs via pip
README.md Updated contributing section to recommend Conda/Mamba for development environment setup

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@devwdave
Copy link
Collaborator

devwdave commented Dec 4, 2025

@BaoZhuhan

Thanks for this contribution. Conda is a powerful tool and we are evaluating this PR internally. I am curious, did you have issues getting setup with uv?

@Boburmirzo
Copy link
Contributor

BaoZhuhan

Thanks so much for the contribution! 🙌

This is definitely a nice-to-have improvement and we appreciate the effort you put into making the development setup smoother.

However, as part of our new feature request policy, we need to collect community votes (at least 3 developers raising the same need) before merging changes that affect the project setup or tooling.

To follow the process, we’re moving this into an open issue #212 so others can provide feedback and upvote. Once we gather enough signals, we can revisit and proceed accordingly.

@BaoZhuhan
Copy link
Author

@BaoZhuhan

Thanks for this contribution. Conda is a powerful tool and we are evaluating this PR internally. I am curious, did you have issues getting setup with uv?

I personally didn't have any issues with my setup using uv, and I agree that uv is an excellent, incredibly fast dependency resolver and package manager.

The motivation for this PR wasn't to solve my own setup problems. I found this interesting project while browsing trending, and noticed the reliance on dependencies with complex C/C++ extensions. Conda, as a mature environment manager that provides pre-compiled binaries for these complex dependencies (especially for packages like faiss-cpu and grpcio), significantly enhances the stability and success rate of development environment setup for new contributors across different operating systems.

I was happy to spend some time making this contribution, and I hope it helps streamline the process for future developers : )

@BaoZhuhan
Copy link
Author

BaoZhuhan

Thanks so much for the contribution! 🙌

This is definitely a nice-to-have improvement and we appreciate the effort you put into making the development setup smoother.

However, as part of our new feature request policy, we need to collect community votes (at least 3 developers raising the same need) before merging changes that affect the project setup or tooling.

To follow the process, we’re moving this into an open issue #212 so others can provide feedback and upvote. Once we gather enough signals, we can revisit and proceed accordingly.

Thank you for the detailed feedback and for appreciating the contribution! I completely understand and respect the policy to gather community consensus for changes affecting the core project setup and tooling.

I'm happy to see it moved to Issue #212. I will monitor that issue closely.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants