tursodatabase / tursodatabase/libsql

Auto generate bindings when `libsql-sqlite3` is changed

Open
#1,039 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

good first issue
Dominant language
C
Stars
17.2k
Forks
531
Avg merge
1h 12m
Merged PRs (30d)
1

Description

Whenever there is a change in libsql-sqlite3, we need to generate the sqlite header files and bindings. These commands to be run:

# this updates libsql-ffi and also libsql-sys
cargo xtask build-bundled 
# this updates bindings required for sqlite3-mc
cargo build --features multiple-ciphers

This is a manual step and easy to miss. It happened in #1027 which was fixed later by #1037

We should automate this, as part of the build process. We should also move multiple-ciphers build within build-bundled, so that there is only one command to run

Contributor guide

Open the contributing guide

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.

Research direction

Start by tracing the cargo xtask build-bundled command and the separate cargo build --features multiple-ciphers path. Determine how changes in libsql-sqlite3 trigger header and binding generation, then consolidate the multiple-ciphers build into build-bundled; done means one build command performs all required updates without the manual step.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust, sqlite
Domain
build-system, databases
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.