diff --git a/README.md b/README.md index ac193186300..0c83a837d29 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,7 @@ For more detailed build instructions, see the Servo book under [Setting up your ### macOS -- Download and install [`python`](https://www.python.org/downloads/macos/), [Xcode](https://developer.apple.com/xcode/), and [`brew`](https://brew.sh/) +- Download and install [`python`](https://www.python.org/downloads/macos/) (version 3.10 to 3.12), [Xcode](https://developer.apple.com/xcode/), and [`brew`](https://brew.sh/). - Install `rustup`: `curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh` - Restart your shell to make sure `cargo` is available - Install the other dependencies: `./mach bootstrap` @@ -25,7 +25,7 @@ For more detailed build instructions, see the Servo book under [Setting up your ### Linux -- Install `curl` and `python`: +- Install `curl` and `python` (version 3.10 to 3.12): - Arch: `sudo pacman -S --needed curl python python-pip` - Debian, Ubuntu: `sudo apt install curl python3-pip python3-venv python3-setuptools` - Fedora: `sudo dnf install curl python3 python3-pip python3-devel` @@ -37,7 +37,7 @@ For more detailed build instructions, see the Servo book under [Setting up your ### Windows -- Download and install [`python`](https://www.python.org/downloads/windows/), [`choco`](https://chocolatey.org/install#individual), and [`rustup`](https://win.rustup.rs/) +- Download and install [`python`](https://www.python.org/downloads/windows/) (version 3.10 to 3.12), [`choco`](https://chocolatey.org/install#individual), and [`rustup`](https://win.rustup.rs/) - Be sure to select *Quick install via the Visual Studio Community installer* - In the Visual Studio Installer, ensure the following components are installed: - **Windows 10 SDK (10.0.19041.0)** (`Microsoft.VisualStudio.Component.Windows10SDK.19041`) diff --git a/mach b/mach index 67d2d45e3d5..2ff80f6b51d 100755 --- a/mach +++ b/mach @@ -12,11 +12,15 @@ import os import sys -if sys.version_info < (3, 10): - print("mach does not support python < 3.10, please install python 3 >= 3.10") +# Destructure because version_info > max_ver is true when running the same version. +ver = (sys.version_info[0], sys.version_info[1]) +min_ver = (3, 10) +max_ver = (3, 12) # WPT does not support Python 3.13. See issue #34095. +if ver < min_ver or ver > max_ver: + print("mach does not support python {0}.{1}, please install 3.{2} <= python <= 3.{3}" \ + .format(ver[0], ver[1], min_ver[1], max_ver[1])) sys.exit(1) - def main(args): topdir = os.path.abspath(os.path.dirname(sys.argv[0])) sys.path.insert(0, os.path.join(topdir, "python"))