Thank you for your interest in contributing to dremio-cli! This document explains how to get started.
Please read our Code of Conduct before contributing.
- Python 3.11 or later
- uv package manager
git clone https://github.com/dremio/cli.git
cd cli
uv sync
uv run dremio --helpInstall pre-commit hooks to automatically run linting and license header checks on each commit:
uv run pre-commit installuv run pytest tests/ -vThis project uses ruff for linting and formatting.
Check for issues:
uv run ruff check .
uv run ruff format --check .Auto-fix:
uv run ruff check --fix .
uv run ruff format .- Fork the repository and create a feature branch from
main. - Make your changes, ensuring tests pass and linting is clean.
- Push your branch and open a pull request against
main. - CI will automatically run lint and test checks.
- A maintainer will review your pull request.
All Python source files must include the Apache 2.0 license header. This is enforced by a pre-commit hook. New files should start with:
#
# Copyright (C) 2017-2026 Dremio Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#Use GitHub Issues to report bugs or request features. Please include steps to reproduce the issue.
Releases are automated via GitHub Actions:
- Ensure
mainis green (CI passes). - Create a GitHub release with a tag following semver (e.g.,
v2.1.0). - The release workflow automatically builds, publishes to PyPI, and updates the Claude Code plugin version.
- Verify at
https://pypi.org/project/dremio-cli/.
Version is derived from the git tag via hatch-vcs — no manual version bumping is needed.