Skip to content

Latest commit

 

History

History
77 lines (54 loc) · 1.52 KB

File metadata and controls

77 lines (54 loc) · 1.52 KB

Contributing

opendalfs is a hybrid of Rust and Python. The underlying implementation is written in Rust, with a Python interface provided by PyO3.

Development Setup

  1. Clone the repository:
git clone https://github.com/fsspec/opendalfs.git
cd opendalfs
  1. Create a virtual environment and install dependencies:
uv venv
uv sync --locked --all-extras --dev

Dependency Groups

The project uses several dependency groups:

  • dev: Development tools (ruff)
  • test: Testing tools (pytest, pytest-asyncio, pytest-cov, fsspec, s3fs)
  • all: All dependencies combined

Install specific groups as needed:

pip install -e ".[dev,test]"  # For development and testing
pip install -e ".[s3]"        # For S3 backend development

Testing

Prerequisites

  1. For S3 tests, you need MinIO running locally:
docker compose -f tests/docker/docker-compose.yml up -d

Note: The S3 tests use these default settings:

  • Endpoint: http://localhost:9000
  • Region: us-east-1
  • Access Key: minioadmin
  • Secret Key: minioadmin
  • Bucket: test-bucket

Running Tests

  1. Run the test suite:
pytest -v
  1. After testing, stop MinIO:
docker compose -f tests/docker/docker-compose.yml down

Code Style

  • Format and lint: ruff format .
  • Check: ruff check .

CI/CD

Our GitHub Actions workflows handle:

  • Code formatting and linting
  • Building packages
  • Running tests with MinIO
  • Package distribution checks

See .github/workflows/ for detailed configurations.