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.
Buscar uses uv for environment and package management.
git clone https://github.com/WayScience/buscar.git
cd buscar
uv sync --frozen --group devInstall the pre-commit hooks before making changes:
uv tool install pre-commit
pre-commit installRun the test suite:
uv run --frozen pytestRun tests with coverage:
uv run --frozen pytest --cov=buscar --cov-report=term-missing --cov-report=xml --cov-report=htmlThe 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-filesBuild the package:
uv build
uv run --frozen twine check dist/*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 pytestandpre-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 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.
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.
By contributing, you agree that your contribution will be licensed under the BSD 3-Clause license used by this project.