From 601ae0545960a5a6299615621d8ed655211bb59e Mon Sep 17 00:00:00 2001 From: Matthias Date: Wed, 12 Sep 2018 20:24:19 +0200 Subject: [PATCH 1/7] formatting for contributing.md --- CONTRIBUTING.md | 29 +++++++++++++++++++---------- 1 file changed, 19 insertions(+), 10 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index b5b01e020..043686425 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,15 +1,17 @@ -# Contribute to freqtrade +# Contributing + +## Contribute to freqtrade Feel like our bot is missing a feature? We welcome your pull requests! 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). 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:** ## 1. Run unit tests @@ -17,27 +19,34 @@ or in a [issue](https://github.com/freqtrade/freqtrade/issues) before a PR. 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) + +### Install packages + ```bash pip3.6 install flake8 coveralls -``` -**Run Flake8** +``` + +### Run Flake8 + ```bash flake8 freqtrade ``` @@ -49,13 +58,13 @@ Guide for installing them is [here](http://flake8.pycqa.org/en/latest/user/using ## 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 From 3f890335c5ca69f34cbe7bcb86b9e973ba52ed7b Mon Sep 17 00:00:00 2001 From: Matthias Date: Wed, 12 Sep 2018 20:40:52 +0200 Subject: [PATCH 2/7] Introduce Commiter guide --- CONTRIBUTING.md | 53 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 043686425..97130eded 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -69,3 +69,56 @@ pip3.6 install 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. +- 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. From 5d9c7fa82dd261325635f74f666f98bc26af36c4 Mon Sep 17 00:00:00 2001 From: Matthias Date: Fri, 14 Sep 2018 19:56:04 +0200 Subject: [PATCH 3/7] add point about malicious code --- CONTRIBUTING.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 97130eded..1c840fa31 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -106,6 +106,7 @@ Exceptions: ### 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/). From cca371c573ffb9b5cf19a0d0a0797113ac37af0e Mon Sep 17 00:00:00 2001 From: pyup-bot Date: Thu, 8 Nov 2018 13:34:06 +0100 Subject: [PATCH 4/7] Update ccxt from 1.17.480 to 1.17.481 --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 0d59236f9..8ba831d7e 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,4 @@ -ccxt==1.17.480 +ccxt==1.17.481 SQLAlchemy==1.2.13 python-telegram-bot==11.1.0 arrow==0.12.1 From 1db9169cfcaa81f54e78df7ba3240144e9505f55 Mon Sep 17 00:00:00 2001 From: pyup-bot Date: Fri, 9 Nov 2018 13:34:07 +0100 Subject: [PATCH 5/7] Update ccxt from 1.17.481 to 1.17.485 --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 8ba831d7e..b46d3de31 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,4 @@ -ccxt==1.17.481 +ccxt==1.17.485 SQLAlchemy==1.2.13 python-telegram-bot==11.1.0 arrow==0.12.1 From 1840695a1c6a06afbd1c24ff13c42da8e99178c3 Mon Sep 17 00:00:00 2001 From: pyup-bot Date: Fri, 9 Nov 2018 13:34:08 +0100 Subject: [PATCH 6/7] Update requests from 2.20.0 to 2.20.1 --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index b46d3de31..4e38f66de 100644 --- a/requirements.txt +++ b/requirements.txt @@ -3,7 +3,7 @@ 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 From b41633cfe362e0fd6cf847ee55f816c1c182216e Mon Sep 17 00:00:00 2001 From: Matthias Date: Fri, 9 Nov 2018 20:26:10 +0100 Subject: [PATCH 7/7] point out "good first issue" label --- CONTRIBUTING.md | 32 +++++++++++++++++--------------- README.md | 8 +++++++- 2 files changed, 24 insertions(+), 16 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 1c840fa31..58185b27c 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -2,50 +2,52 @@ ## Contribute to freqtrade -Feel like our bot is missing a feature? We welcome your pull requests! Few pointers for contributions: +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 +### 2. Test if your code is PEP8 compliant -### Install packages +#### Install packages ```bash pip3.6 install flake8 coveralls ``` -### Run Flake8 +#### Run Flake8 ```bash flake8 freqtrade @@ -56,15 +58,15 @@ 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 +#### Install packages ``` bash pip3.6 install mypy ``` -### Run mypy +#### Run mypy ``` bash mypy freqtrade 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) +