This assumes that you have rust and cargo installed. We use the workflow recommended by pyo3 and maturin.
# fetch this repo
git clone [email protected]:letsql/letsql.git
# prepare development environment (used to build wheel / install in development)
python3 -m venv venv
# activate the venv
source venv/bin/activate
# update pip itself if necessary
python -m pip install -U pip
# install dependencies
python -m pip install -r requirements-dev.txt
# set up the git hook scripts
pre-commit install
Install the just command runner, if needed. Download example data to run the tests successfully.
just download-data
To test the code:
# make sure you activate the venv using "source venv/bin/activate" first
maturin develop
just up postgres # some of the tests use postgres
python -m pytest # or pytest
LETSQL follows the Conventional Commits structure. In brief, the commit summary should look like:
fix(types): make all floats doubles
The type (e.g. fix
) can be:
fix
: A bug fix. Correlates with PATCH in SemVerfeat
: A new feature. Correlates with MINOR in SemVerdocs
: Documentation only changesstyle
: Changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc)
If the commit fixes a GitHub issue, add something like this to the bottom of the description:
fixes #4242
This section is intended for LETSQL maintainers
- Compute the new version number (
<version-number>
) according to Semantic Versioning rules. - Update the version number in
Cargo.toml
. - Update the CHANGELOG using
git cliff --github-repo letsql/letsql -p CHANGELOG.md --tag v<version-number> -u
, manually add any additional notes (links to blogposts, etc.). - Create commit with message
release: <version-number>
. - Tag the last commit in main with
v<version-number>
, push the tag. - Create a GitHub release to trigger the publishing workflow.