Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -202,7 +202,7 @@ set(CMAKE_CXX_STANDARD 17)
# The supported Python major/minor versions should match those listed in both
# doc/_pages/from_source.md and tools/workspace/python/repository.bzl.
if(APPLE)
set(SUPPORTED_PYTHON_VERSION 3.10)
set(SUPPORTED_PYTHON_VERSION 3.11)
else()
if(UNIX_DISTRIBUTION_CODENAME STREQUAL focal)
set(SUPPORTED_PYTHON_VERSION 3.8)
Expand Down
4 changes: 2 additions & 2 deletions doc/_pages/from_source.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@ integration. Any other configurations are provided on a best-effort basis.
|------------------------------------|--------------|------------|-------|-------|------------------------------|-------------------------------|
| Ubuntu 20.04 LTS (Focal Fossa) | x86_64 | 3.8 | 6.0 | 3.16 | GCC 9 (default) or Clang 12 | OpenJDK 11 |
| Ubuntu 22.04 LTS (Jammy Jellyfish) | x86_64 | 3.10 | 6.0 | 3.22 | GCC 11 (default) or Clang 12 | OpenJDK 11 |
| macOS Monterey (12) | x86_64 | 3.10 | 6.0 | 3.24 | Apple LLVM 14 (Xcode 14) | AdoptOpenJDK 16 (HotSpot JVM) |
| macOS Monterey (12) | arm64 | 3.10 | 6.0 | 3.24 | Apple LLVM 14 (Xcode 14) | AdoptOpenJDK 16 (HotSpot JVM) |
| macOS Monterey (12) | x86_64 | 3.11 | 6.0 | 3.24 | Apple LLVM 14 (Xcode 14) | AdoptOpenJDK 16 (HotSpot JVM) |
| macOS Monterey (12) | arm64 | 3.11 | 6.0 | 3.24 | Apple LLVM 14 (Xcode 14) | AdoptOpenJDK 16 (HotSpot JVM) |

⁽¹⁾ CPython is the only Python implementation supported.

Expand Down
2 changes: 1 addition & 1 deletion doc/_pages/installation.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ officially supports:
|------------------------------------|------------------|------------|
| Ubuntu 20.04 LTS (Focal Fossa) | x86_64 | 3.8 |
| Ubuntu 22.04 LTS (Jammy Jellyfish) | x86_64 | 3.10 |
| macOS Monterey (12) | x86_64 or arm64 | 3.10 |
| macOS Monterey (12) | x86_64 or arm64 | 3.11 |

⁽¹⁾ CPython is the only Python implementation supported.
Drake does not support the Python environment supplied by Anaconda. Before
Expand Down
18 changes: 9 additions & 9 deletions doc/_pages/pip.md
Original file line number Diff line number Diff line change
Expand Up @@ -72,19 +72,19 @@ macOS are generated nightly and are available to download at:
* [https://drake-packages.csail.mit.edu/drake/nightly/drake-latest-cp39-cp39-manylinux_2_31_x86_64.whl](https://drake-packages.csail.mit.edu/drake/nightly/drake-latest-cp39-cp39-manylinux_2_31_x86_64.whl)
* [https://drake-packages.csail.mit.edu/drake/nightly/drake-latest-cp310-cp310-manylinux_2_31_x86_64.whl](https://drake-packages.csail.mit.edu/drake/nightly/drake-latest-cp310-cp310-manylinux_2_31_x86_64.whl)
* [https://drake-packages.csail.mit.edu/drake/nightly/drake-latest-cp311-cp311-manylinux_2_31_x86_64.whl](https://drake-packages.csail.mit.edu/drake/nightly/drake-latest-cp311-cp311-manylinux_2_31_x86_64.whl)
* [https://drake-packages.csail.mit.edu/drake/nightly/drake-latest-cp310-cp310-macosx_12_0_x86_64.whl](https://drake-packages.csail.mit.edu/drake/nightly/drake-latest-cp310-cp310-macosx_12_0_x86_64.whl)
* [https://drake-packages.csail.mit.edu/drake/nightly/drake-latest-cp310-cp310-macosx_12_0_arm64.whl](https://drake-packages.csail.mit.edu/drake/nightly/drake-latest-cp310-cp310-macosx_12_0_arm64.whl)
* [https://drake-packages.csail.mit.edu/drake/nightly/drake-latest-cp311-cp311-macosx_12_0_x86_64.whl](https://drake-packages.csail.mit.edu/drake/nightly/drake-latest-cp311-cp311-macosx_12_0_x86_64.whl)
* [https://drake-packages.csail.mit.edu/drake/nightly/drake-latest-cp311-cp311-macosx_12_0_arm64.whl](https://drake-packages.csail.mit.edu/drake/nightly/drake-latest-cp311-cp311-macosx_12_0_arm64.whl)

Older packages for specific dates are available by replacing ``latest`` with an
8-digit date, e.g., ``20221217`` for December 17th, 2022. The version number to
8-digit date, e.g., ``20230215`` for February 15th, 2023. The version number to
replace ``latest`` with follows the pattern ``0.0.YYYYMMDD``.

* [https://drake-packages.csail.mit.edu/drake/nightly/drake-0.0.20221217-cp38-cp38-manylinux_2_31_x86_64.whl](https://drake-packages.csail.mit.edu/drake/nightly/drake-0.0.20221217-cp38-cp38-manylinux_2_31_x86_64.whl)
* [https://drake-packages.csail.mit.edu/drake/nightly/drake-0.0.20221217-cp39-cp39-manylinux_2_31_x86_64.whl](https://drake-packages.csail.mit.edu/drake/nightly/drake-0.0.20221217-cp39-cp39-manylinux_2_31_x86_64.whl)
* [https://drake-packages.csail.mit.edu/drake/nightly/drake-0.0.20221217-cp310-cp310-manylinux_2_31_x86_64.whl](https://drake-packages.csail.mit.edu/drake/nightly/drake-0.0.20221217-cp310-cp310-manylinux_2_31_x86_64.whl)
* [https://drake-packages.csail.mit.edu/drake/nightly/drake-0.0.20221217-cp311-cp311-manylinux_2_31_x86_64.whl](https://drake-packages.csail.mit.edu/drake/nightly/drake-0.0.20221217-cp311-cp311-manylinux_2_31_x86_64.whl)
* [https://drake-packages.csail.mit.edu/drake/nightly/drake-0.0.20221217-cp310-cp310-macosx_12_0_x86_64.whl](https://drake-packages.csail.mit.edu/drake/nightly/drake-0.0.20221217-cp310-cp310-macosx_12_0_x86_64.whl)
* [https://drake-packages.csail.mit.edu/drake/nightly/drake-0.0.20221217-cp310-cp310-macosx_12_0_arm64.whl](https://drake-packages.csail.mit.edu/drake/nightly/drake-0.0.20221217-cp310-cp310-macosx_12_0_arm64.whl)
* [https://drake-packages.csail.mit.edu/drake/nightly/drake-0.0.20230215-cp38-cp38-manylinux_2_31_x86_64.whl](https://drake-packages.csail.mit.edu/drake/nightly/drake-0.0.20230215-cp38-cp38-manylinux_2_31_x86_64.whl)
* [https://drake-packages.csail.mit.edu/drake/nightly/drake-0.0.20230215-cp39-cp39-manylinux_2_31_x86_64.whl](https://drake-packages.csail.mit.edu/drake/nightly/drake-0.0.20230215-cp39-cp39-manylinux_2_31_x86_64.whl)
* [https://drake-packages.csail.mit.edu/drake/nightly/drake-0.0.20230215-cp310-cp310-manylinux_2_31_x86_64.whl](https://drake-packages.csail.mit.edu/drake/nightly/drake-0.0.20230215-cp310-cp310-manylinux_2_31_x86_64.whl)
* [https://drake-packages.csail.mit.edu/drake/nightly/drake-0.0.20230215-cp311-cp311-manylinux_2_31_x86_64.whl](https://drake-packages.csail.mit.edu/drake/nightly/drake-0.0.20230215-cp311-cp311-manylinux_2_31_x86_64.whl)
* [https://drake-packages.csail.mit.edu/drake/nightly/drake-0.0.20230215-cp311-cp311-macosx_12_0_x86_64.whl](https://drake-packages.csail.mit.edu/drake/nightly/drake-0.0.20230215-cp311-cp311-macosx_12_0_x86_64.whl)
* [https://drake-packages.csail.mit.edu/drake/nightly/drake-0.0.20230215-cp311-cp311-macosx_12_0_arm64.whl](https://drake-packages.csail.mit.edu/drake/nightly/drake-0.0.20230215-cp311-cp311-macosx_12_0_arm64.whl)

Nightly wheels are retained for 56 days from their date of creation.

Expand Down
2 changes: 1 addition & 1 deletion setup/mac/binary_distribution/Brewfile
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ brew 'numpy'
brew 'msgpack-cxx'
brew 'openblas'
brew 'pkg-config'
brew 'python@3.10'
brew 'python@3.11'
brew 'spdlog'
brew 'tinyxml'
brew 'robotlocomotion/director/vtk@9.1.0'
Expand Down
6 changes: 3 additions & 3 deletions setup/mac/binary_distribution/install_prereqs.sh
Original file line number Diff line number Diff line change
Expand Up @@ -62,9 +62,9 @@ fi

brew bundle --file="${BASH_SOURCE%/*}/Brewfile" --no-lock

if ! command -v pip3.10 &>/dev/null; then
echo 'ERROR: pip3.10 is NOT installed. The post-install step for the python@3.10 formula may have failed.' >&2
if ! command -v pip3.11 &>/dev/null; then
echo 'ERROR: pip3.11 is NOT installed. The post-install step for the python@3.11 formula may have failed.' >&2
exit 2
fi

pip3.10 install -r "${BASH_SOURCE%/*}/requirements.txt"
pip3.11 install -r "${BASH_SOURCE%/*}/requirements.txt"
8 changes: 4 additions & 4 deletions setup/mac/source_distribution/install_prereqs.sh
Original file line number Diff line number Diff line change
Expand Up @@ -45,13 +45,13 @@ fi

brew bundle --file="${BASH_SOURCE%/*}/Brewfile" --no-lock

if ! command -v pip3.10 &>/dev/null; then
echo 'ERROR: pip3.10 is NOT installed. The post-install step for the python@3.10 formula may have failed.' >&2
if ! command -v pip3.11 &>/dev/null; then
echo 'ERROR: pip3.11 is NOT installed. The post-install step for the python@3.11 formula may have failed.' >&2
exit 2
fi

pip3.10 install -r "${BASH_SOURCE%/*}/requirements.txt"
pip3.11 install -r "${BASH_SOURCE%/*}/requirements.txt"

if [[ "${with_test_only}" -eq 1 ]]; then
pip3.10 install -r "${BASH_SOURCE%/*}/requirements-test-only.txt"
pip3.11 install -r "${BASH_SOURCE%/*}/requirements-test-only.txt"
fi
6 changes: 3 additions & 3 deletions tools/install/install_test_helper.py
Original file line number Diff line number Diff line change
Expand Up @@ -71,14 +71,14 @@ def create_temporary_dir(name='tmp'):
def get_python_executable():
"""Use appropriate Python executable

Call python3.10 on macOS to force using the Python executable from the
python@3.10 formula. Calling a different Python executable would result in
Call python3.11 on macOS to force using the Python executable from the
python@3.11 formula. Calling a different Python executable would result in
a crash since pydrake was not built against the Python library
corresponding to that executable. On other systems, it will just fall back
to the current Python executable.
"""
if sys.platform == "darwin":
return "python3.10"
return "python3.11"
else:
return sys.executable

Expand Down
4 changes: 2 additions & 2 deletions tools/py_toolchain/interpreter_paths.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,9 @@ LINUX_DBG_INTERPRETER_PATH = "/usr/bin/python3-dbg"
# Default value of interpreter_path used by the py_runtime in the default
# Python toolchain registered on the @platforms//os:osx platform when
# running i386 (i.e., x86_64) builds.
MACOS_I386_INTERPRETER_PATH = "/usr/local/bin/python3.10"
MACOS_I386_INTERPRETER_PATH = "/usr/local/bin/python3.11"

# Default value of interpreter_path used by the py_runtime in the default
# Python toolchain registered on the @platforms//os:osx platform when
# running arm64 builds.
MACOS_ARM64_INTERPRETER_PATH = "/opt/homebrew/bin/python3.10"
MACOS_ARM64_INTERPRETER_PATH = "/opt/homebrew/bin/python3.11"
4 changes: 2 additions & 2 deletions tools/release_engineering/download_release_candidate.py
Original file line number Diff line number Diff line change
Expand Up @@ -135,8 +135,8 @@ def _download_binaries(*, timestamp, staging, version):
f"drake-{version[1:]}-cp39-cp39-manylinux_2_31_x86_64.whl",
f"drake-{version[1:]}-cp310-cp310-manylinux_2_31_x86_64.whl",
f"drake-{version[1:]}-cp311-cp311-manylinux_2_31_x86_64.whl",
f"drake-{version[1:]}-cp310-cp310-macosx_12_0_x86_64.whl",
f"drake-{version[1:]}-cp310-cp310-macosx_12_0_arm64.whl",
f"drake-{version[1:]}-cp311-cp311-macosx_12_0_x86_64.whl",
f"drake-{version[1:]}-cp311-cp311-macosx_12_0_arm64.whl",
# Deb filenames.
f"drake-dev_{version[1:]}-1_amd64-focal.deb",
f"drake-dev_{version[1:]}-1_amd64-jammy.deb",
Expand Down
2 changes: 1 addition & 1 deletion tools/wheel/image/setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ def _actually_find_packages():
'Topic :: Scientific/Engineering',
'Topic :: Software Development :: Libraries :: Python Modules'],
license='Various',
platforms=['linux_x86_64', 'macosx_x86_64'],
platforms=['linux_x86_64', 'macosx_x86_64', 'macosx_arm64'],
packages=_actually_find_packages(),
# Add in any packaged data.
include_package_data=True,
Expand Down
2 changes: 1 addition & 1 deletion tools/wheel/macos/build-wheel.sh
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,7 @@ bazel run "${bazel_args[@]}" //:install -- /opt/drake
rm -rf "/opt/drake-wheel-build/python"

# NOTE: Xcode ships python3, make sure to use the one from brew.
$(brew --prefix python@3.10)/bin/python3.10 \
$(brew --prefix python@3.11)/bin/python3.11 \
-m venv "/opt/drake-wheel-build/python"

. "/opt/drake-wheel-build/python/bin/activate"
Expand Down
2 changes: 1 addition & 1 deletion tools/wheel/macos/provision-test-python.sh
Original file line number Diff line number Diff line change
Expand Up @@ -11,5 +11,5 @@ rm -rf /opt/drake-wheel-test

# Prepare test environment.
# NOTE: Xcode ships python3, make sure to use the one from brew.
$(brew --prefix python@3.10)/bin/python3.10 \
$(brew --prefix python@3.11)/bin/python3.11 \
-m venv /opt/drake-wheel-test/python
11 changes: 8 additions & 3 deletions tools/workspace/python/repository.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -48,13 +48,18 @@ load("@drake//tools/workspace:os.bzl", "determine_os")
# CMakeLists.txt and doc/_pages/from_source.md, except for the "manylinux"
# matrix which should match tools/wheel/build-wheels list of targets=().
_VERSION_SUPPORT_MATRIX = {
# NOTE: when changing native OS python versions, make sure to update
# CMakeLists.txt python versions.
"ubuntu:20.04": ["3.8"],
"ubuntu:22.04": ["3.10"],
"macos": ["3.10"],
"macos": ["3.11"],
# NOTE: when updating supported wheel python versions:
# - Update URLs on doc/_pages/pip.md (`cpXY-cpXY` components), and
# - Update both lists of URLs on doc/_pages/pip.md (`cpXY-cpXY` components)
# under "Nightly Releases".
# - Wheel URLs in tools/release_engineering/download_release_candidate.py
# (`cpXY-cpXY` components).
# - Tables on from_source.md and installation.md (python version number).
"macos_wheel": ["3.10"],
"macos_wheel": ["3.11"],
"manylinux": ["3.8", "3.9", "3.10", "3.11"],
}

Expand Down