This is a guide for developers who would like to contribute to this project. It is recommended to use Python 3.7 and above for development.
If you're interested in contributing to duckcli, thank you. We'd love your help! You'll always get credit for your work.
-
Fork the repository on GitHub.
-
Clone your fork locally:
$ git clone <url-for-your-fork>
-
Add the official repository (
upstream) as a remote repository:$ git remote add upstream git@github.com:dbcli/duckcli.git
-
Set up a virtual environment for development:
$ cd duckcli $ pip install virtualenv $ virtualenv duckcli_devWe've just created a virtual environment that we'll use to install all the dependencies and tools we need to work on duckcli. Whenever you want to work on duckcli, you need to activate the virtual environment:
$ source duckcli_dev/bin/activateWhen you're done working, you can deactivate the virtual environment:
$ deactivate
-
Install the dependencies and development tools:
$ pip install -r requirements-dev.txt $ pip install --editable . -
Create a branch for your bugfix or feature based off the
masterbranch:$ git checkout -b <name-of-bugfix-or-feature>
-
While you work on your bugfix or feature, be sure to pull the latest changes from
upstream. This ensures that your local codebase is up-to-date:$ git pull upstream master
-
When your work is ready for the duckcli team to review it, push your branch to your fork:
$ git push origin <name-of-bugfix-or-feature>
-
Create a pull request on GitHub.
While you work on duckcli, it's important to run the tests to make sure your code hasn't broken any existing functionality. To run the tests, just type in:
$ ./setup.py testduckcli supports Python 3.7+. You can test against multiple versions of Python by running tox:
$ toxSome CLI tests expect the program ex to be a symbolic link to vim.
In some systems (e.g. Arch Linux) ex is a symbolic link to vi, which will
change the output and therefore make some tests fail.
You can check this by running:
$ readlink -f $(which ex)duckcli uses black to format the source code. Make sure to install black.
It's easy to check the style of your code, just run:
$ ./setup.py lintIf you see any style issues, you can automatically fix them by running:
$ ./setup.py lint --fixBe sure to commit and push any stylistic fixes.