To start things off, bootstrap the sandbox environment:
git clone https://github.com/crate/sqlalchemy-cratedb
cd sqlalchemy-cratedb
source bootstrap.sh
This command should automatically install all prerequisites for the development sandbox and drop you into the virtualenv, ready for invoking further commands.
Verify code by running all linters and software tests:
export CRATEDB_VERSION=latest
docker compose -f tests/docker-compose.yml up
poe check
Run specific tests:
pytest -k SqlAlchemyCompilerTest
pytest -k test_score
# Integration tests, written as doctests.
python -m unittest -vvv tests/integration.py
Format code:
poe format
On branch main
:
- Add a section for the new version in the
CHANGES.md
file. - Commit your changes with a message like
Release x.y.z
. - Create a tag, and push to remote.
This will trigger a GitHub action which releases the new version to PyPi.
git tag 0.36.1 git push --tags
- On GitHub, designate a new release, copying in the relevant section from the CHANGELOG. https://github.com/crate/sqlalchemy-cratedb/releases
Optionally, build the package and upload to PyPI manually.
poe release
The docs live under the docs
directory.
The docs are written with ReStructuredText and Markdown, and will be processed with Sphinx.
Build the docs by running:
./bin/sphinx
The output can then be found in the out/html
directory.
The docs are automatically built from Git by Read the Docs. There is nothing special you need to do to get the live docs to update.