.. _contributing:
============
Contributing
============
Table of contents
1. `What to contribute`_
2. Feedback_
3. Code_
What to contribute
------------------
We welcome contributions to the project from anyone who wants to:
- give feedback
- add features
- fix bugs
- improve documentation
- add examples
Feedback
--------
Use the form below to provide feedback:
.. raw:: html
Code
----
.. image:: https://img.shields.io/bitbucket/pipelines/agiletekengineering/pyqalx :alt: Bitbucket Pipelines
.. image:: https://api.codacy.com/project/badge/Grade/fdfb81fd286a474098b624b426d63c41
:target: https://www.codacy.com?utm_source=bitbucket.org&utm_medium=referral&utm_content=agiletekengineering/pyqalx&utm_campaign=Badge_Grade
.. image:: https://api.codacy.com/project/badge/Coverage/fdfb81fd286a474098b624b426d63c41
:target: https://www.codacy.com?utm_source=bitbucket.org&utm_medium=referral&utm_content=agiletekengineering/pyqalx&utm_campaign=Badge_Coverage
.. note:: The pyqalx code will become fully open source on release of version 1.0. Until then you must request access to the codebase hosted at Bitbucket. `Send an email `_ to request access.
All code contributions should be made in through `pull requests `_ and there are some simple rules to follow:
- check that the issue hasn't been submitted previously or is being worked on by someone else
- follow the `git flow `_ branching system. Always branch off the develop branch to add new features.
- always **add tests to cover any code you add** if possible these should be unit tests but some types of feature (mainly relating to bots) are better to address in functional tests.
- ensure that your code complies with `black `_ and `flake8 `_. The build chain will fail if it doesn't. You can make your life easier by doing `pre-commit install` once you've installed the requirements (`poetry install`). This adds a series of pre-commit hooks which handle formatting for you and will prevent a commit if not compliant.
- add emojis to the start of commit messages to give a quick visual indicator of the content of the commit (use win + . keyboard shortcut to bring up emoji on windows):
=========================== ===================================
**Commit type** **Emoji**
=========================== ===================================
Initial commit 🎉 :tada:
Version tag 🔖 :bookmark:
New feature ✨ :sparkles:
Bugfix 🐛 :bug:
Documentation 📚 :books:
Documenting source code 💡 :bulb:
Performance 🐎 :racehorse:
Cosmetic 💄 :lipstick:
Adding a test ✅ :white_heavy_check_mark:
Make a test pass ✔ :heavy_check_mark:
General update ⚡ :zap:
Improve format/structure 🎨 :art:
Refactor code 🔨 :hammer:
Removing code/files 🔥 :fire:
Continuous Integration 💚 :green_heart:
Security 🔒 :lock:
Upgrading dependencies ⬆ :arrow_up:
Downgrading dependencies ⬇ :arrow_down:
Critical hotfix 🚑 :ambulance:
Deployment 🚀 :rocket:
Fixing on Linux 🐧 :penguin:
Fixing on Windows 🔲 :black_square_button:
Work in progress 🚧 :construction:
Merging branches 🔀 :twisted_rightwards_arrows:
Bad code / need improv. 💩 :hankey:
Reverting changes ⏪ :rewind:
Breaking changes 💥 :boom:
Code review changes 👌 :ok_hand:
Bots code 🤖 :robot_face:
Adapters code 🔌 :electric_plug:
=========================== ===================================