diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 03a1ab0f4..d61678b46 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -3,7 +3,6 @@ name: Freqtrade CI on: push: branches: - - master - stable - develop tags: @@ -20,7 +19,7 @@ jobs: strategy: matrix: os: [ ubuntu-18.04, ubuntu-20.04 ] - python-version: [3.7, 3.8, 3.9] + python-version: ["3.7", "3.8", "3.9", "3.10"] steps: - uses: actions/checkout@v2 @@ -114,7 +113,7 @@ jobs: strategy: matrix: os: [ macos-latest ] - python-version: [3.7, 3.8, 3.9] + python-version: ["3.7", "3.8", "3.9", "3.10"] steps: - uses: actions/checkout@v2 @@ -205,7 +204,7 @@ jobs: strategy: matrix: os: [ windows-latest ] - python-version: [3.7, 3.8] + python-version: ["3.7", "3.8", "3.9", "3.10"] steps: - uses: actions/checkout@v2 diff --git a/Dockerfile b/Dockerfile index 8f5b85698..1d283e5c5 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM python:3.9.9-slim-bullseye as base +FROM python:3.10.0-slim-bullseye as base # Setup env ENV LANG C.UTF-8 diff --git a/README.md b/README.md index 9882bce02..3a7d42fe9 100644 --- a/README.md +++ b/README.md @@ -197,7 +197,7 @@ To run this bot we recommend you a cloud instance with a minimum of: ### Software requirements -- [Python 3.7.x](http://docs.python-guide.org/en/latest/starting/installation/) +- [Python >= 3.7](http://docs.python-guide.org/en/latest/starting/installation/) - [pip](https://pip.pypa.io/en/stable/installing/) - [git](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git) - [TA-Lib](https://mrjbq7.github.io/ta-lib/install.html) diff --git a/build_helpers/TA_Lib-0.4.22-cp310-cp310-win_amd64.whl b/build_helpers/TA_Lib-0.4.22-cp310-cp310-win_amd64.whl new file mode 100644 index 000000000..d3477abd1 Binary files /dev/null and b/build_helpers/TA_Lib-0.4.22-cp310-cp310-win_amd64.whl differ diff --git a/build_helpers/install_windows.ps1 b/build_helpers/install_windows.ps1 index cda87e98d..6247a344f 100644 --- a/build_helpers/install_windows.ps1 +++ b/build_helpers/install_windows.ps1 @@ -14,6 +14,8 @@ if ($pyv -eq '3.8') { if ($pyv -eq '3.9') { pip install build_helpers\TA_Lib-0.4.22-cp39-cp39-win_amd64.whl } - +if ($pyv -eq '3.10') { + pip install build_helpers\TA_Lib-0.4.22-cp310-cp310-win_amd64.whl +} pip install -r requirements-dev.txt pip install -e . diff --git a/docs/advanced-setup.md b/docs/advanced-setup.md index 02b0307e5..93a2025ed 100644 --- a/docs/advanced-setup.md +++ b/docs/advanced-setup.md @@ -176,12 +176,15 @@ Log messages are send to `syslog` with the `user` facility. So you can see them On many systems `syslog` (`rsyslog`) fetches data from `journald` (and vice versa), so both `--logfile syslog` or `--logfile journald` can be used and the messages be viewed with both `journalctl` and a syslog viewer utility. You can combine this in any way which suites you better. For `rsyslog` the messages from the bot can be redirected into a separate dedicated log file. To achieve this, add + ``` if $programname startswith "freqtrade" then -/var/log/freqtrade.log ``` + to one of the rsyslog configuration files, for example at the end of the `/etc/rsyslog.d/50-default.conf`. For `syslog` (`rsyslog`), the reduction mode can be switched on. This will reduce the number of repeating messages. For instance, multiple bot Heartbeat messages will be reduced to a single message when nothing else happens with the bot. To achieve this, set in `/etc/rsyslog.conf`: + ``` # Filter duplicated messages $RepeatedMsgReduction on diff --git a/docs/installation.md b/docs/installation.md index f3955ec5a..c67eff60b 100644 --- a/docs/installation.md +++ b/docs/installation.md @@ -56,10 +56,6 @@ OS Specific steps are listed first, the [Common](#common) section below is neces !!! Note Python3.7 or higher and the corresponding pip are assumed to be available. -!!! Warning "Python 3.10 support" - Due to issues with dependencies, freqtrade is currently unable to support python 3.10. - We're working on supporting python 3.10, are however dependant on support from dependencies. - === "Debian/Ubuntu" #### Install necessary dependencies @@ -424,16 +420,3 @@ open /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10 ``` If this file is inexistent, then you're probably on a different version of MacOS, so you may need to consult the internet for specific resolution details. - -### MacOS installation error with python 3.9 - -When using python 3.9 on macOS, it's currently necessary to install some os-level modules to allow dependencies to compile. -The errors you'll see happen during installation and are related to the installation of `tables` or `blosc`. - -You can install the necessary libraries with the following command: - -```bash -brew install hdf5 c-blosc -``` - -After this, please run the installation (script) again. diff --git a/docs/windows_installation.md b/docs/windows_installation.md index 965dde485..f4be06db3 100644 --- a/docs/windows_installation.md +++ b/docs/windows_installation.md @@ -25,7 +25,7 @@ Install ta-lib according to the [ta-lib documentation](https://github.com/mrjbq7 As compiling from source on windows has heavy dependencies (requires a partial visual studio installation), there is also a repository of unofficial pre-compiled windows Wheels [here](https://www.lfd.uci.edu/~gohlke/pythonlibs/#ta-lib), which need to be downloaded and installed using `pip install TA_Lib‑0.4.22‑cp38‑cp38‑win_amd64.whl` (make sure to use the version matching your python version). -Freqtrade provides these dependencies for the latest 3 Python versions (3.7, 3.8 and 3.9) and for 64bit Windows. +Freqtrade provides these dependencies for the latest 3 Python versions (3.7, 3.8, 3.9 and 3.10) and for 64bit Windows. Other versions must be downloaded from the above link. ``` powershell diff --git a/pyproject.toml b/pyproject.toml index f0637d8c6..ad32bad4e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -23,6 +23,7 @@ exclude = ''' line_length = 100 multi_line_output=0 lines_after_imports=2 +skip_glob = ["**/.env*", "**/env/*", "**/.venv/*", "**/docs/*"] [build-system] requires = ["setuptools >= 46.4.0", "wheel"] diff --git a/requirements.txt b/requirements.txt index e37cb5e76..3cf6cbb57 100644 --- a/requirements.txt +++ b/requirements.txt @@ -18,7 +18,7 @@ technical==1.3.0 tabulate==0.8.9 pycoingecko==2.2.0 jinja2==3.0.3 -tables==3.6.1 +tables==3.7.0 blosc==1.10.6 # find first, C search in arrays diff --git a/setup.cfg b/setup.cfg index b311c94da..c5c7f2f25 100644 --- a/setup.cfg +++ b/setup.cfg @@ -17,6 +17,7 @@ classifiers = Programming Language :: Python :: 3.7 Programming Language :: Python :: 3.8 Programming Language :: Python :: 3.9 + Programming Language :: Python :: 3.10 Operating System :: MacOS Operating System :: Unix Topic :: Office/Business :: Financial :: Investment diff --git a/setup.sh b/setup.sh index d14f8214d..c642a654d 100755 --- a/setup.sh +++ b/setup.sh @@ -25,7 +25,7 @@ function check_installed_python() { exit 2 fi - for v in 9 8 7 + for v in 9 10 8 7 do PYTHON="python3.${v}" which $PYTHON @@ -37,7 +37,6 @@ function check_installed_python() { done echo "No usable python found. Please make sure to have python3.7 or newer installed." - echo "python3.10 is currently not supported." exit 1 } @@ -220,7 +219,7 @@ function install() { install_redhat else echo "This script does not support your OS." - echo "If you have Python version 3.7 - 3.9, pip, virtualenv, ta-lib you can continue." + echo "If you have Python version 3.7 - 3.10, pip, virtualenv, ta-lib you can continue." echo "Wait 10 seconds to continue the next install steps or use ctrl+c to interrupt this shell." sleep 10 fi