Set 3.6.6 as minimum python version on Windows (#2117)

* Set 3.6.6 as minimum python version on Windows

Signed-off-by: Toby Harradine <tobyharradine@gmail.com>

* Conditional python_requires in setup.py

Signed-off-by: Toby Harradine <tobyharradine@gmail.com>

* Should probably add the comment too

Signed-off-by: Toby Harradine <tobyharradine@gmail.com>
This commit is contained in:
Toby Harradine 2018-09-14 21:22:43 +10:00 committed by GitHub
parent 08fc732b7b
commit 1a9216b522
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 40 additions and 12 deletions

View File

@ -53,7 +53,7 @@ Red's repository is configured to follow a particular development workflow, usin
### 4.1 Setting up your development environment ### 4.1 Setting up your development environment
The following requirements must be installed prior to setting up: The following requirements must be installed prior to setting up:
- Python 3.6.2 or greater - Python 3.6.2 or greater (3.6.6 or greater on Windows)
- git - git
- pip - pip
- pipenv - pipenv

View File

@ -17,8 +17,8 @@ you in the process.
Getting started Getting started
--------------- ---------------
To start off, be sure that you have installed Python 3.6.2 or higher. Open a terminal or command prompt and type To start off, be sure that you have installed Python 3.6.2 or higher (3.6.6 or higher on Windows).
:code:`pip install --process-dependency-links -U git+https://github.com/Cog-Creators/Red-DiscordBot@V3/develop#egg=redbot[test]` Open a terminal or command prompt and type :code:`pip install --process-dependency-links -U git+https://github.com/Cog-Creators/Red-DiscordBot@V3/develop#egg=redbot[test]`
(note that if you get an error with this, try again but put :code:`python -m` in front of the command (note that if you get an error with this, try again but put :code:`python -m` in front of the command
This will install the latest version of V3. This will install the latest version of V3.

View File

@ -8,7 +8,7 @@ Installing Red on Windows
Needed Software Needed Software
--------------- ---------------
* `Python <https://www.python.org/downloads/>`_ - Red needs Python 3.6.2 or greater * `Python <https://www.python.org/downloads/>`_ - Red needs Python 3.6.6 or greater on Windows
.. note:: Please make sure that the box to add Python to PATH is CHECKED, otherwise .. note:: Please make sure that the box to add Python to PATH is CHECKED, otherwise
you may run into issues when trying to run Red you may run into issues when trying to run Red

View File

@ -1,18 +1,32 @@
import sys import sys
import warnings import warnings
import discord import discord
from colorama import init import colorama
init()
# Let's do all the dumb version checking in one place. # Let's do all the dumb version checking in one place.
if sys.platform == "win32":
# Due to issues with ProactorEventLoop prior to 3.6.6 (bpo-26819)
MIN_PYTHON_VERSION = (3, 6, 6)
else:
MIN_PYTHON_VERSION = (3, 6, 2)
if sys.version_info < MIN_PYTHON_VERSION:
print(
f"Python {'.'.join(map(str, MIN_PYTHON_VERSION))} is required to run Red, but you have "
f"{sys.version}! Please update Python."
)
sys.exit(1)
if discord.version_info.major < 1: if discord.version_info.major < 1:
print( print(
"You are not running the rewritten version of discord.py.\n\n" "You are not running the rewritten version of discord.py.\n\n"
"In order to use Red v3 you MUST be running d.py version" "In order to use Red V3 you MUST be running d.py version "
" >= 1.0.0." "1.0.0 or greater."
) )
sys.exit(1) sys.exit(1)
colorama.init()
# Filter fuzzywuzzy slow sequence matcher warning # Filter fuzzywuzzy slow sequence matcher warning
warnings.filterwarnings("ignore", module=r"fuzzywuzzy.*") warnings.filterwarnings("ignore", module=r"fuzzywuzzy.*")

View File

@ -25,7 +25,6 @@ from redbot.core.cli import confirm
if sys.platform == "linux": if sys.platform == "linux":
import distro import distro
PYTHON_OK = sys.version_info >= (3, 6, 2)
INTERACTIVE_MODE = not len(sys.argv) > 1 # CLI flags = non-interactive INTERACTIVE_MODE = not len(sys.argv) > 1 # CLI flags = non-interactive
INTRO = "==========================\nRed Discord Bot - Launcher\n==========================\n" INTRO = "==========================\nRed Discord Bot - Launcher\n==========================\n"
@ -33,6 +32,14 @@ INTRO = "==========================\nRed Discord Bot - Launcher\n===============
IS_WINDOWS = os.name == "nt" IS_WINDOWS = os.name == "nt"
IS_MAC = sys.platform == "darwin" IS_MAC = sys.platform == "darwin"
if IS_WINDOWS:
# Due to issues with ProactorEventLoop prior to 3.6.6 (bpo-26819)
MIN_PYTHON_VERSION = (3, 6, 6)
else:
MIN_PYTHON_VERSION = (3, 6, 2)
PYTHON_OK = sys.version_info >= MIN_PYTHON_VERSION
def is_venv(): def is_venv():
"""Return True if the process is in a venv or in a virtualenv.""" """Return True if the process is in a venv or in a virtualenv."""
@ -461,9 +468,11 @@ def main_menu():
def main(): def main():
if not PYTHON_OK: if not PYTHON_OK:
raise RuntimeError( print(
"Red requires Python 3.6.2 or greater. Please install the correct version!" f"Python {'.'.join(map(str, MIN_PYTHON_VERSION))} is required to run Red, but you "
f"have {sys.version}! Please update Python."
) )
sys.exit(1)
if args.debuginfo: # Check first since the function triggers an exit if args.debuginfo: # Check first since the function triggers an exit
debug_info() debug_info()

View File

@ -27,6 +27,11 @@ requirements = [
"yarl==1.2.6", "yarl==1.2.6",
] ]
python_requires = ">=3.6.2,<3.8"
if os.name == "nt":
# Due to issues with ProactorEventLoop prior to 3.6.6 (bpo-26819)
python_requires = ">=3.6.6,<3.8"
def get_dependency_links(): def get_dependency_links():
with open("dependency_links.txt") as file: with open("dependency_links.txt") as file:
@ -94,7 +99,7 @@ if __name__ == "__main__":
], ],
"pytest11": ["red-discordbot = redbot.pytest"], "pytest11": ["red-discordbot = redbot.pytest"],
}, },
python_requires=">=3.6.2,<3.8", python_requires=python_requires,
install_requires=requirements, install_requires=requirements,
dependency_links=get_dependency_links(), dependency_links=get_dependency_links(),
extras_require={ extras_require={