Contributing
First, thank you for considering to make a contribution to this project. Spending your valuable time helping make this project better is deeply appreciated. All kinds of contributions are helpful and welcome.
Report issues https://github.com/nackjicholson/aiosql/issues
Review or make your own pull requests https://github.com/nackjicholson/aiosql/pulls
Write documentation https://github.com/nackjicholson/aiosql/tree/master/docs
Whether you have an idea for a feature improvement or have found a troubling bug, thank you for being here.
Packaging & Distribution
This aiosql repository uses the Python standard packaging tools. Read about them in more detail at the following links.
Development Setup
Create a virtual environment
# get the project sources
git clone git@github.com:nackjicholson/aiosql.git
cd aiosql
# create a venv manually
python -m venv venv
source venv/bin/activate
pip install --upgrade pip
All subsequent steps will assume you are using python within your activated virtual environment.
Install the development dependencies
As a development library, aiosql is expected to work with all supported versions of Python, and many drivers. The bare minimum of version pinning is declared in the dependencies.
# development tools
pip install .[dev]
# per-database stuff
pip install .[dev-sqlite]
pip install .[dev-postgres]
pip install .[dev-duckdb]
pip install .[dev-mysql]
pip install .[dev-mariadb]
Run tests
pytest
Alternatively, there is a convenient Makefile
to automate the above tasks:
make venv.dev # install dev virtual environment
source venv/bin/activate
make check # run all checks: pytest, flake8, coverage…
Also, there is a working poetry
setup in pyproject.toml
.
Dependency Management
There is no dependency for using aiosql
other than installing your
driver of choice.
For development you need to test with various databases and even more drivers, see above for generating a working python environment.
See also the docker
sub-directory which contains dockerfiles for testing
with Postgres, MySQL and MariaDB.