diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index b5b01e020..58185b27c 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,43 +1,54 @@ -# Contribute to freqtrade +# Contributing -Feel like our bot is missing a feature? We welcome your pull requests! Few pointers for contributions: +## Contribute to freqtrade + +Feel like our bot is missing a feature? We welcome your pull requests! + +Issues labeled [good first issue](https://github.com/freqtrade/freqtrade/labels/good%20first%20issue) can be good first contributions, and will help get you familiar with the codebase. + +Few pointers for contributions: - Create your PR against the `develop` branch, not `master`. -- New features need to contain unit tests and must be PEP8 -conformant (max-line-length = 100). +- New features need to contain unit tests and must be PEP8 conformant (max-line-length = 100). If you are unsure, discuss the feature on our [Slack](https://join.slack.com/t/highfrequencybot/shared_invite/enQtMjQ5NTM0OTYzMzY3LWMxYzE3M2MxNDdjMGM3ZTYwNzFjMGIwZGRjNTc3ZGU3MGE3NzdmZGMwNmU3NDM5ZTNmM2Y3NjRiNzk4NmM4OGE) or in a [issue](https://github.com/freqtrade/freqtrade/issues) before a PR. +## Before sending the PR: -**Before sending the PR:** - -## 1. Run unit tests +### 1. Run unit tests All unit tests must pass. If a unit test is broken, change your code to make it pass. It means you have introduced a regression. -**Test the whole project** +#### Test the whole project + ```bash pytest freqtrade ``` -**Test only one file** +#### Test only one file + ```bash pytest freqtrade/tests/test_.py ``` -**Test only one method from one file** +#### Test only one method from one file + ```bash pytest freqtrade/tests/test_.py::test_ ``` -## 2. Test if your code is PEP8 compliant -**Install packages** (If not already installed) +### 2. Test if your code is PEP8 compliant + +#### Install packages + ```bash pip3.6 install flake8 coveralls -``` -**Run Flake8** +``` + +#### Run Flake8 + ```bash flake8 freqtrade ``` @@ -47,16 +58,70 @@ To help with that, we encourage you to install the git pre-commit hook that will warn you when you try to commit code that fails these checks. Guide for installing them is [here](http://flake8.pycqa.org/en/latest/user/using-hooks.html). -## 3. Test if all type-hints are correct +### 3. Test if all type-hints are correct -**Install packages** (If not already installed) +#### Install packages ``` bash pip3.6 install mypy ``` -**Run mypy** +#### Run mypy ``` bash mypy freqtrade ``` + +## (Core)-Committer Guide + +### Process: Pull Requests + +How to prioritize pull requests, from most to least important: + +1. Fixes for broken tests. Broken means broken on any supported platform or Python version. +1. Extra tests to cover corner cases. +1. Minor edits to docs. +1. Bug fixes. +1. Major edits to docs. +1. Features. + +Ensure that each pull request meets all requirements in the Contributing document. + +### Process: Issues + +If an issue is a bug that needs an urgent fix, mark it for the next patch release. +Then either fix it or mark as please-help. + +For other issues: encourage friendly discussion, moderate debate, offer your thoughts. + +### Process: Your own code changes + +All code changes, regardless of who does them, need to be reviewed and merged by someone else. +This rule applies to all the core committers. + +Exceptions: + +- Minor corrections and fixes to pull requests submitted by others. +- While making a formal release, the release manager can make necessary, appropriate changes. +- Small documentation changes that reinforce existing subject matter. Most commonly being, but not limited to spelling and grammar corrections. + +### Responsibilities + +- Ensure cross-platform compatibility for every change that's accepted. Windows, Mac & Linux. +- Ensure no malicious code is introduced into the core code. +- Create issues for any major changes and enhancements that you wish to make. Discuss things transparently and get community feedback. +- Keep feature versions as small as possible, preferably one new feature per version. +- Be welcoming to newcomers and encourage diverse new contributors from all backgrounds. See the Python Community Code of Conduct (https://www.python.org/psf/codeofconduct/). + +### Becoming a Committer + +Contributors may be given commit privileges. Preference will be given to those with: + +1. Past contributions to FreqTrade and other related open-source projects. Contributions to FreqTrade include both code (both accepted and pending) and friendly participation in the issue tracker and Pull request reviews. Quantity and quality are considered. +1. A coding style that the other core committers find simple, minimal, and clean. +1. Access to resources for cross-platform development and testing. +1. Time to devote to the project regularly. + +Beeing a Committer does not grant write permission on `develop` or `master` for security reasons (Users trust FreqTrade with their Exchange API keys). + +After beeing Committer for some time, a Committer may be named Core Committer and given full repository access. diff --git a/README.md b/README.md index a46c1530f..571709e3b 100644 --- a/README.md +++ b/README.md @@ -62,6 +62,7 @@ hesitate to read the source code and understand the mechanism of this bot. - [Requirements](#requirements) - [Min hardware required](#min-hardware-required) - [Software requirements](#software-requirements) +- [Wanna help?] ## Quick start @@ -189,11 +190,15 @@ in the bug reports. ### [Pull Requests](https://github.com/freqtrade/freqtrade/pulls) -Feel like our bot is missing a feature? We welcome your pull requests! +Feel like our bot is missing a feature? We welcome your pull requests! + Please read our [Contributing document](https://github.com/freqtrade/freqtrade/blob/develop/CONTRIBUTING.md) to understand the requirements before sending your pull-requests. +Coding is not a neccessity to contribute - maybe start with improving our documentation? +Issues labeled [good first issue](https://github.com/freqtrade/freqtrade/labels/good%20first%20issue) can be good first contributions, and will help get you familiar with the codebase. + **Note** before starting any major new feature work, *please open an issue describing what you are planning to do* or talk to us on [Slack](https://join.slack.com/t/highfrequencybot/shared_invite/enQtMjQ5NTM0OTYzMzY3LWMxYzE3M2MxNDdjMGM3ZTYwNzFjMGIwZGRjNTc3ZGU3MGE3NzdmZGMwNmU3NDM5ZTNmM2Y3NjRiNzk4NmM4OGE). This will ensure that interested parties can give valuable feedback on the feature, and let others know that you are working on it. **Important:** Always create your PR against the `develop` branch, not `master`. @@ -218,3 +223,4 @@ To run this bot we recommend you a cloud instance with a minimum of: - [TA-Lib](https://mrjbq7.github.io/ta-lib/install.html) - [virtualenv](https://virtualenv.pypa.io/en/stable/installation/) (Recommended) - [Docker](https://www.docker.com/products/docker) (Recommended) + diff --git a/requirements.txt b/requirements.txt index 37f385ec0..5248e16fc 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,9 +1,9 @@ -ccxt==1.17.480 +ccxt==1.17.485 SQLAlchemy==1.2.13 python-telegram-bot==11.1.0 arrow==0.12.1 cachetools==3.0.0 -requests==2.20.0 +requests==2.20.1 urllib3==1.24.1 wrapt==1.10.11 pandas==0.23.4