From d928cbb58922bd686b79c39df164564ffef6c039 Mon Sep 17 00:00:00 2001 From: Samruddhi Khandale Date: Tue, 17 Oct 2023 00:43:31 +0000 Subject: [PATCH] [Python] - Support 3.12 --- src/python/devcontainer-feature.json | 3 ++- src/python/install.sh | 2 +- test/python/install_python_3_12.sh | 38 ++++++++++++++++++++++++++++ test/python/scenarios.json | 10 +++++++- 4 files changed, 50 insertions(+), 3 deletions(-) create mode 100755 test/python/install_python_3_12.sh diff --git a/src/python/devcontainer-feature.json b/src/python/devcontainer-feature.json index 9a01268f1..bbc78bb72 100644 --- a/src/python/devcontainer-feature.json +++ b/src/python/devcontainer-feature.json @@ -1,6 +1,6 @@ { "id": "python", - "version": "1.2.1", + "version": "1.3.0", "name": "Python", "documentationURL": "https://github.com/devcontainers/features/tree/main/src/python", "description": "Installs the provided version of Python, as well as PIPX, and other common Python utilities. JupyterLab is conditionally installed with the python feature. Note: May require source code compilation.", @@ -11,6 +11,7 @@ "latest", "os-provided", "none", + "3.12", "3.11", "3.10", "3.9", diff --git a/src/python/install.sh b/src/python/install.sh index 7be5eea8a..09727a833 100755 --- a/src/python/install.sh +++ b/src/python/install.sh @@ -27,7 +27,7 @@ CONFIGURE_JUPYTERLAB_ALLOW_ORIGIN="${CONFIGUREJUPYTERLABALLOWORIGIN:-""}" ADDITIONAL_VERSIONS="${ADDITIONALVERSIONS:-""}" DEFAULT_UTILS=("pylint" "flake8" "autopep8" "black" "yapf" "mypy" "pydocstyle" "pycodestyle" "bandit" "pipenv" "virtualenv" "pytest") -PYTHON_SOURCE_GPG_KEYS="64E628F8D684696D B26995E310250568 2D347EA6AA65421D FB9921286F5E1540 3A5CA953F73C700D 04C367C218ADD4FF 0EDDC5F26A45C816 6AF053F07D9DC8D2 C9BE28DEE6DF025C 126EB563A74B06BF D9866941EA5BBD71 ED9D77D5" +PYTHON_SOURCE_GPG_KEYS="64E628F8D684696D B26995E310250568 2D347EA6AA65421D FB9921286F5E1540 3A5CA953F73C700D 04C367C218ADD4FF 0EDDC5F26A45C816 6AF053F07D9DC8D2 C9BE28DEE6DF025C 126EB563A74B06BF D9866941EA5BBD71 ED9D77D5 A821E680E5FA6305" GPG_KEY_SERVERS="keyserver hkp://keyserver.ubuntu.com keyserver hkps://keys.openpgp.org keyserver hkp://keyserver.pgp.com" diff --git a/test/python/install_python_3_12.sh b/test/python/install_python_3_12.sh new file mode 100755 index 000000000..2437aefe7 --- /dev/null +++ b/test/python/install_python_3_12.sh @@ -0,0 +1,38 @@ +#!/bin/bash + +set -e + +# Optional: Import test library +source dev-container-features-test-lib + +check "python version 3.12 installed as default" bash -c "python --version | grep 3.12" +check "python3 version 3.12 installed as default" bash -c "python3 --version | grep 3.12" + +# Check that tools can execute - make sure something didn't get messed up in this scenario +check "autopep8" autopep8 --version +check "black" black --version +check "yapf" yapf --version +check "bandit" bandit --version +check "flake8" flake8 --version +check "mypy" mypy --version +check "pycodestyle" pycodestyle --version +check "pydocstyle" pydocstyle --version +check "pylint" pylint --version +check "pytest" pytest --version + +# Check paths in settings +check "current symlink is correct" bash -c "which python | grep /usr/local/python/current/bin/python" +check "current symlink works" /usr/local/python/current/bin/python --version +check "which autopep8" bash -c "which autopep8 | grep /usr/local/py-utils/bin/autopep8" +check "which black" bash -c "which black | grep /usr/local/py-utils/bin/black" +check "which yapf" bash -c "which yapf | grep /usr/local/py-utils/bin/yapf" +check "which bandit" bash -c "which bandit | grep /usr/local/py-utils/bin/bandit" +check "which flake8" bash -c "which flake8 | grep /usr/local/py-utils/bin/flake8" +check "which mypy" bash -c "which mypy | grep /usr/local/py-utils/bin/mypy" +check "which pycodestyle" bash -c "which pycodestyle | grep /usr/local/py-utils/bin/pycodestyle" +check "which pydocstyle" bash -c "which pydocstyle | grep /usr/local/py-utils/bin/pydocstyle" +check "which pylint" bash -c "which pylint | grep /usr/local/py-utils/bin/pylint" +check "which pytest" bash -c "which pytest | grep /usr/local/py-utils/bin/pytest" + +# Report result +reportResults diff --git a/test/python/scenarios.json b/test/python/scenarios.json index c3c55d52e..23b6cfc92 100644 --- a/test/python/scenarios.json +++ b/test/python/scenarios.json @@ -32,7 +32,7 @@ } }, "install_os_provided_python": { - "image": "mcr.microsoft.com/devcontainers/base:0-bullseye", + "image": "mcr.microsoft.com/devcontainers/base:1-bullseye", "features": { "python": "os-provided" } @@ -73,5 +73,13 @@ "configureJupyterlabAllowOrigin": "*" } } + }, + "install_python_3_12": { + "image": "mcr.microsoft.com/devcontainers/base:1-ubuntu-22.04", + "features": { + "python": { + "version": "3.12" + } + } } }