bytedance / bytedance/videx

[Initiative] Enhance Python Usability and Simplify Installation

Open
#71 0 comments 0 reactions 0 assignees View on GitHub
important
Dominant language
Python
Stars
149
Forks
27
PR merge metrics
No merged PRs in 30d

Description

### Proposal Summary

This proposal aims to dramatically improve the user experience of VIDEX's Python components.

We'd like to publish a PyPI package to streamline installation and dependency management.

We will also validate compatibility across a wide range of Python versions (3.8-3.13) and explore launching the VIDEX server directly from the package, abstracting away the need for users to `git clone` the repository or manage complex environments manually.

### Motivation and Impact

Currently, setting up VIDEX's Python environment requires familiarity with tools like `conda` and manual script execution (`videx_build_env.py`, `start_videx_server.py`), which creates a significant barrier for many database administrators and developers who are not Python experts. Simplifying this process is critical for wider adoption and seamless evaluation. A streamlined, one-command installation will make VIDEX more accessible and easier to integrate into existing workflows.

We extend special thanks to the MariaDB team for their valuable testing and feedback, which highlighted the importance of this improvement for better integration within the MySQL and MariaDB ecosystems. The impact will be a lower barrier to entry, faster setup times, and a more positive initial experience for new users, ultimately encouraging broader community engagement.

### Technical Plan

1. **Package Structuring:** Refactor the current Python scripts and modules into a standard Python package structure with a well-defined `pyproject.toml`.
2. **Dependency Management:** Consolidate all dependencies into the package configuration to ensure `pip` can handle them automatically, resolving potential conflicts.
3. **Console Script Entry Points:** Implement console script entry points (e.g., `videx-build-env`, `videx-start-server`) to allow users to run commands directly from their terminal after installation, abstracting away the underlying script paths.
4. **CI/CD Validation:** Update the CI pipeline to test the `pip install` process and functionality of the package across Python versions 3.8 through 3.13 on Linux, macOS, and Windows.
5. **Documentation Overhaul:** Rewrite the "Quick Start" and installation guides to prioritize the `pip install` method as the primary, recommended approach.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by reviewing videx_build_env.py, start_videx_server.py, the current Python configuration, and the CI pipeline. Define the package structure, dependencies, console entry points, and supported Python versions and platforms before implementation. Done means pip installation works, the commands run, CI validates the supported matrix, and the Quick Start and installation guides use the new flow.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
build-system, ci-cd, documentation, tooling
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.