aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamruddhi Khandale <skhandale@microsoft.com>2023-10-18 01:05:01 +0300
committerGitHub <noreply@github.com>2023-10-18 01:05:01 +0300
commit36a3604b90762307dddd1ff2b89387f84b6ec66c (patch)
treef1236bd4901d5b197ed4f8102661754d9813dd4f
parent4fca96b5e8a4bfc93679098cb19d73c65ce571eb (diff)
[Python] - Support 3.12 (#726)feature_python_1.3.0
-rw-r--r--src/python/devcontainer-feature.json3
-rwxr-xr-xsrc/python/install.sh2
-rwxr-xr-xtest/python/install_python_3_12.sh38
-rw-r--r--test/python/scenarios.json10
4 files changed, 50 insertions, 3 deletions
diff --git a/src/python/devcontainer-feature.json b/src/python/devcontainer-feature.json
index 9a01268..bbc78bb 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 7be5eea..09727a8 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 0000000..2437aef
--- /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 c3c55d5..23b6cfc 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"
+ }
+ }
}
}