diff --git a/README.md b/README.md index 46975a16..d5f5a27f 100644 --- a/README.md +++ b/README.md @@ -76,7 +76,7 @@ Users who wish to build MuJoCo from source should consult the [build from source] section of the documentation. However, please note that the commit at the tip of the `main` branch may be unstable. -### Python (>= 3.8) +### Python (>= 3.9) The native Python bindings, which come pre-packaged with a copy of MuJoCo, can be installed from [PyPI] via: diff --git a/doc/changelog.rst b/doc/changelog.rst index c4e1507f..29e90f2c 100644 --- a/doc/changelog.rst +++ b/doc/changelog.rst @@ -27,6 +27,10 @@ MJX - Added ``TENDONPOS`` and ``TENDONVEL`` sensors. - Fixed a bug with the computation of tangential contact forces in ``_decode_pyramid``. +Python bindings +^^^^^^^^^^^^^^^ +- Removed support for Python 3.8, now that it's `deprecated upstream `__. + Bug fixes ^^^^^^^^^ - Fixed a bug where ``actuator_force`` was not set in MJX (:github:issue:`2068`). diff --git a/mjx/cuda_requirements.txt b/mjx/cuda_requirements.txt index 3898472f..cc812792 100644 --- a/mjx/cuda_requirements.txt +++ b/mjx/cuda_requirements.txt @@ -1,11 +1,7 @@ -f https://storage.googleapis.com/jax-releases/jax_cuda_releases.html -jax[cuda12_local]==0.4.13; python_version == '3.8' \ - --hash=sha256:03bfe6749dfe647f16f15f6616638adae6c4a7ca7167c75c21961ecfd3a3baaa jax[cuda12_local]==0.4.18; python_version >= '3.9' \ --hash=sha256:c3ab72ea2f1c5d8ccf2561e79f6562fb2964629f3e55b3ac1c11c48b64c20336 -jaxlib==0.4.13+cuda12.cudnn89; python_version == '3.8' \ - --hash=sha256:31372f41dc28ecb11a5cc5573ae632e8ee9cfb63788edc8ad8a77e8d3279f569 jaxlib==0.4.18+cuda12.cudnn89; python_version >= '3.9' \ --hash=sha256:14f74ff081882ea091c121e355051b35932e39cb7ff7242b88a87f3690f3ca90 \ --hash=sha256:7c87dc2d68257b02e83c04be88a3c447373ee7077d65f43545bcbda5bfe2231d \ diff --git a/mjx/pyproject.toml b/mjx/pyproject.toml index fdbcebc1..ecbbd9af 100644 --- a/mjx/pyproject.toml +++ b/mjx/pyproject.toml @@ -18,14 +18,13 @@ classifiers = [ "License :: OSI Approved :: Apache Software License", "Natural Language :: English", "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Topic :: Scientific/Engineering", ] -requires-python = ">=3.8" +requires-python = ">=3.9" dependencies = [ "absl-py", "etils[epath]", diff --git a/mjx/requirements.txt b/mjx/requirements.txt index fe5c2623..e6130509 100644 --- a/mjx/requirements.txt +++ b/mjx/requirements.txt @@ -1,17 +1,9 @@ absl-py==2.0.0 \ --hash=sha256:9a28abb62774ae4e8edbe2dd4c49ffcd45a6a848952a5eccc6a49f3f0fc1e2f3 -etils[epath]==1.3.0; python_version == '3.8' \ - --hash=sha256:809a92ff72f12149441492cf4d9a26b56a4741dffb4dfb9c4c7b7afe055c2d28 etils[epath]==1.5.1; python_version >= '3.9' \ --hash=sha256:2c1bfa2817eb4881cb509097f1e65ac6160126ba74ec47b3bb47ee678628d8c8 -jax==0.4.13; python_version == '3.8' \ - --hash=sha256:03bfe6749dfe647f16f15f6616638adae6c4a7ca7167c75c21961ecfd3a3baaa jax==0.4.18; python_version >= '3.9' \ --hash=sha256:2ded3f558b74593c3533036a90c20d41ea35f35c74b25ca0fc86f4aafc388746 -jaxlib==0.4.13; python_version == '3.8' \ - --hash=sha256:839173b2e9593f5e9a6d3c42852cd15070fe80a939246efbb5cf40eec815de89 \ - --hash=sha256:411334d903df07dc1ace8d52fc53c17f6bc1d55aff7f6e0e5cf61ec149f758a0 \ - --hash=sha256:522635d5e159401a386c79f1236c218c1f68fbb4ca6648115c3ad3c2c3f518ab jaxlib==0.4.18; python_version >= '3.9' \ --hash=sha256:f0d5414bc79bdd667b81ee3c5836641bbd52d6d9c0054043dec8e025857e1260 \ --hash=sha256:ed1ba86c1a2adea8235269f3e1f5561696068ca60c68b8e5a6f0eb3b978a305a \ @@ -39,12 +31,6 @@ pytest==7.4.2 \ --hash=sha256:1d881c6124e08ff0a1bb75ba3ec0bfd8b5354a01c194ddd5a0a870a48d99b002 pytest-xdist==3.3.1 \ --hash=sha256:ff9daa7793569e6a68544850fd3927cd257cc03a7ef76c95e86915355e82b5f2 -scipy==1.10.1; python_version == '3.8' \ - --hash=sha256:049a8bbf0ad95277ffba9b3b7d23e5369cc39e66406d60422c8cfef40ccc8415 \ - --hash=sha256:07c3457ce0b3ad5124f98a86533106b643dd811dd61b548e78cf4c8786652f6f \ - --hash=sha256:bce5869c8d68cf383ce240e44c1d9ae7c06078a9396df68ce88a1230f93a30c1 \ - --hash=sha256:39becb03541f9e58243f4197584286e339029e8908c46f7221abeea4b749fa88 \ - --hash=sha256:5678f88c68ea866ed9ebe3a989091088553ba12c6090244fdae3e467b1139c35 scipy==1.11.3; python_version >= '3.9' \ --hash=sha256:90271dbde4be191522b3903fc97334e3956d7cfb9cce3f0718d0ab4fd7d8bfd6 \ --hash=sha256:d2f6dee6cbb0e263b8142ed587bc93e3ed5e777f1f75448d24fb923d9fd4dce6 \ @@ -90,11 +76,6 @@ zipp==3.19.1 \ # Transitive dependencies of jax and jaxlib importlib-metadata==6.8.0; python_version < '3.10' \ --hash=sha256:3ebb78df84a805d7698245025b975d9d67053cd94c79245ba4b3eb694abe68bb -ml-dtypes==0.2.0; python_version == '3.8' \ - --hash=sha256:50845af3e9a601810751b55091dee6c2562403fa1cb4e0123675cf3a4fc2c17a \ - --hash=sha256:022d5a4ee6be14569c2a9d1549e16f1ec87ca949681d0dca59995445d5fcdd5b \ - --hash=sha256:35b984cddbe8173b545a0e3334fe56ea1a5c3eb67c507f60d0cfde1d3fa8f8c2 \ - --hash=sha256:8faaf0897942c8253dd126662776ba45f0a5861968cf0f06d6d465f8a7bc298a ml-dtypes==0.3.1; python_version >= '3.9' \ --hash=sha256:3d8ca0acbd377082792d8b97081ba580abdad67c6afb7f827012c675b052f058 \ --hash=sha256:4828b62fa3bf1ae35faa40f3db9a38ec72fbce02f328a1d14c3a9da4606af364 \ @@ -112,12 +93,6 @@ ml-dtypes==0.3.1; python_version >= '3.9' \ --hash=sha256:70984b473db6489ec1d8c79b082a1322105155193049d08a3b0c515094e9777b \ --hash=sha256:4d94b2d1bed77284694f7fd0479640fa7aa5d96433dca3cbcec407a5ef752e77 \ --hash=sha256:979d7d196d9a17e0135ae22878f74241fbd3522cef58d7b292f1fd5b32282201 -numpy==1.24.4; python_version == '3.8' \ - --hash=sha256:692f2e0f55794943c5bfff12b3f56f99af76f902fc47487bdfe97856de51a706 \ - --hash=sha256:dd80e219fd4c71fc3699fc1dadac5dcf4fd882bfc6f7ec53d30fa197b8ee22dc \ - --hash=sha256:a5425b114831d1e77e4b5d812b69d11d962e104095a5b9c3b641a218abcc050e \ - --hash=sha256:04640dab83f7c6c85abf9cd729c5b65f1ebd0ccf9de90b270cd61935eef0197f \ - --hash=sha256:1452241c290f3e2a312c137a9999cdbf63f78864d63c79039bda65ee86943f61 numpy==1.26.0; python_version >= '3.9' \ --hash=sha256:166b36197e9debc4e384e9c652ba60c0bacc216d0fc89e78f973a9760b503388 \ --hash=sha256:f042f66d0b4ae6d48e70e28d487376204d3cbf43b84c03bac57e28dac6151581 \ diff --git a/python/build_requirements.txt b/python/build_requirements.txt index 89ba9e7d..62adb390 100644 --- a/python/build_requirements.txt +++ b/python/build_requirements.txt @@ -4,8 +4,6 @@ auditwheel==5.4.0; platform_system == 'Linux' \ --hash=sha256:d8410a17523427ba3f7b60c9701d23de28b8f94fa5dab732aa6c30d160df8127 build==1.0.3 \ --hash=sha256:589bf99a67df7c9cf07ec0ac0e5e2ea5d4b37ac63301c4986d1acb126aa83f8f -etils[epath]==1.3.0; python_version == '3.8' \ - --hash=sha256:809a92ff72f12149441492cf4d9a26b56a4741dffb4dfb9c4c7b7afe055c2d28 etils[epath]==1.5.1; python_version >= '3.9' \ --hash=sha256:2c1bfa2817eb4881cb509097f1e65ac6160126ba74ec47b3bb47ee678628d8c8 glfw==2.6.2 \ @@ -14,12 +12,6 @@ glfw==2.6.2 \ --hash=sha256:fb56cd24f9e173cdddc8f6ebaac4f52304a1dfcae1dadd583038355b73c1ae06 \ --hash=sha256:faa5596aad5490cdd8657931a66636508c1015a8b7b47018318bb72fcd2b9014 \ --hash=sha256:d8e4f087eba45f7f4815e3e912867ed5ca16d1047b0958c52047f5b53be67059 -numpy==1.24.4; python_version == '3.8' \ - --hash=sha256:692f2e0f55794943c5bfff12b3f56f99af76f902fc47487bdfe97856de51a706 \ - --hash=sha256:dd80e219fd4c71fc3699fc1dadac5dcf4fd882bfc6f7ec53d30fa197b8ee22dc \ - --hash=sha256:a5425b114831d1e77e4b5d812b69d11d962e104095a5b9c3b641a218abcc050e \ - --hash=sha256:04640dab83f7c6c85abf9cd729c5b65f1ebd0ccf9de90b270cd61935eef0197f \ - --hash=sha256:1452241c290f3e2a312c137a9999cdbf63f78864d63c79039bda65ee86943f61 numpy==1.26.0; python_version >= '3.9' \ --hash=sha256:166b36197e9debc4e384e9c652ba60c0bacc216d0fc89e78f973a9760b503388 \ --hash=sha256:f042f66d0b4ae6d48e70e28d487376204d3cbf43b84c03bac57e28dac6151581 \ diff --git a/python/pyproject.toml b/python/pyproject.toml index 3bcbc52c..38cae72d 100644 --- a/python/pyproject.toml +++ b/python/pyproject.toml @@ -9,7 +9,7 @@ authors = [ {name = "Google DeepMind", email = "mujoco@deepmind.com"}, ] description = "MuJoCo Physics Simulator" -requires-python = ">=3.8" +requires-python = ">=3.9" license = {text = "Apache License 2.0"} classifiers = [ "Development Status :: 5 - Production/Stable", @@ -18,7 +18,6 @@ classifiers = [ "License :: OSI Approved :: Apache Software License", "Natural Language :: English", "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11",