Skip to content

Latest commit

 

History

History
93 lines (65 loc) · 2.46 KB

File metadata and controls

93 lines (65 loc) · 2.46 KB

Contributing

Thanks for your interest in improving Buscar. Contributions that fix bugs, improve documentation, add tests, or make the package easier to install and maintain are welcome.

Development Setup

Buscar uses uv for environment and package management.

git clone https://github.com/WayScience/buscar.git
cd buscar
uv sync --frozen --group dev

Install the pre-commit hooks before making changes:

uv tool install pre-commit
pre-commit install

Checks

Run the test suite:

uv run --frozen pytest

Run tests with coverage:

uv run --frozen pytest --cov=buscar --cov-report=term-missing --cov-report=xml --cov-report=html

The coverage run creates coverage.xml and an htmlcov/ directory. CI uploads these files from the Ubuntu Python 3.12 test job so maintainers can download the machine-readable coverage report or inspect the browsable HTML coverage report when reviewing pull requests.

Run linting and formatting checks:

pre-commit run --all-files

Build the package:

uv build
uv run --frozen twine check dist/*

Pull Requests

Before opening a pull request:

  • Keep changes focused on one bug fix, feature, or documentation update.
  • Add or update tests when behavior changes.
  • Update documentation when user-facing behavior changes.
  • Run uv run --frozen pytest and pre-commit run --all-files.
  • Make sure generated files and large local artifacts are not committed.

CI runs pre-commit checks, the test matrix across supported Python versions, and package build validation.

Dependabot checks GitHub Actions and pre-commit hooks weekly, and uv-managed Python dependencies monthly. Review dependency update pull requests like any other change and make sure CI passes before merging.

Releases

Releases are published to PyPI through PyPI Trusted Publishing from the GitHub Actions workflow. Maintainers should create a GitHub release only after the PyPI project has a trusted publisher configured for this repository, the ci.yml workflow, and the pypi GitHub environment.

Reporting Issues

When reporting a bug, include:

  • The Buscar version or commit you are using.
  • Your Python version and operating system.
  • A minimal example or traceback that reproduces the issue.
  • Any relevant input data shape, schema, or metadata column names.

License

By contributing, you agree that your contribution will be licensed under the BSD 3-Clause license used by this project.