From 601ae0545960a5a6299615621d8ed655211bb59e Mon Sep 17 00:00:00 2001 From: Matthias Date: Wed, 12 Sep 2018 20:24:19 +0200 Subject: [PATCH 1/3] 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/3] 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/3] 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/).