Skip to content

Contributing

Thank you for showing interest in contributing to Databasez.

Ways to help:

Reporting bugs and issues

The preferred flow starts with GitHub Discussions:

  • potential bugs: raise as "Potential Issue"
  • feature ideas: raise as "Ideas"

From there, we can escalate into a formal issue when appropriate.

When reporting, include:

  • OS/platform
  • Python version
  • installed dependencies
  • minimal reproducible snippet
  • traceback/log output

Development setup

Fork and clone:

$ git clone https://github.com/YOUR-USERNAME/databasez
$ cd databasez

Create environments:

$ hatch env create

Running tests

$ hatch test

Pass extra pytest arguments after --:

$ hatch test -- tests/test_database_url.py -q

Linting and formatting

$ hatch run ruff
$ hatch run lint
$ hatch run format

Type checking

$ hatch run test:check_types

Taskfile shortcut:

$ task ruff
$ task ty
$ task lint
$ task format

Documentation workflow (Zensical)

Prepare rendered docs (expands snippet includes):

$ hatch run docs:prepare

Build docs:

$ hatch run docs:build

Serve docs locally:

$ hatch run docs:serve

Taskfile shortcuts are also available:

$ task docs_prepare
$ task build
$ task serve

Building package artifacts

$ hatch build

Releasing (maintainers)

Before release:

  • update changelog with user-visible changes
  • bump version in databasez/__init__.py

Then create a GitHub release:

  • title: Version X.Y.Z
  • tag: X.Y.Z
  • release body from changelog