Contributing docs: local test runs silently skip SpatiaLite and ext.c tests, and the setup steps assume SSH and uv

Open Beginner friendly
#928 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 3 days

Nobody has claimed this yet.

Assessment

Difficulty
2/5
Estimated time
1-3 hours
Newbie friendliness
84/100
Issue type
Documentation
Clarity
Clearly specified
Activity status
Active
Tech stack
python, sqlite

Research direction

Read docs/contributing.rst alongside .github/workflows/test.yml to align contributor setup with the CI environment. Update the clone instructions for HTTPS fork clones, link uv installation instructions, and document the local SpatiaLite and ext.c test setup with the commands in the issue. Done when the page explains these prerequisites and contributors can identify why those tests might otherwise skip locally.

Written by the indexing model from the issue text.

Description

Following docs/contributing.rst on a fresh macOS machine, I hit three gaps:

  1. The clone command uses SSH (git clone [email protected]:simonw/sqlite-utils). It worked for me because I already have an SSH key on GitHub, but it fails with Permission denied (publickey) for anyone without one, and contributors usually need to clone their fork rather than the main repository.

  2. Every command uses uv run, but the page does not say uv must be installed or link to its install instructions.

  3. uv run pytest passes locally while skipping tests that CI runs. On my machine: 1,494 passed, 19 skipped. pytest -rs shows 12 skips in tests/test_gis.py ("Could not find SpatiaLite extension") and 3 in tests/test_cli.py ("Requires compiled ext.c"). CI installs libsqlite3-mod-spatialite and compiles ext.c in .github/workflows/test.yml, but the contributing page mentions neither, so a contributor changing GIS code can get a green local run and a red CI run.

Environment: macOS 26.2, Python 3.11.5, uv 0.13.7, sqlite-utils main at 9c66baf.

Proposed fix, in docs/contributing.rst: clone your fork over HTTPS, link https://docs.astral.sh/uv/getting-started/installation/, and add a "Tests that skip locally" section with brew install spatialite-tools (macOS) or apt-get install libsqlite3-mod-spatialite (Ubuntu) and cd tests && gcc ext.c -fPIC -shared -o ext.so.

Related: #900 (docs build command) and #872 (CI legs that never run a pandas test). Happy to open a PR for this.

Dominant language
Python
Stars
2.2k
Forks
215
PR merge metrics
No merged PRs in 30d

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from simonw/sqlite-utils

All issues in simonw/sqlite-utils

Similar issues

More Python issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.