summaryrefslogtreecommitdiffstats
path: root/.devcontainer
diff options
context:
space:
mode:
authorBrett Cannon <brett@python.org>2023-03-29 20:28:08 (GMT)
committerGitHub <noreply@github.com>2023-03-29 20:28:08 (GMT)
commit0b1d9c44f1f091a499856d81542eeafda25011e1 (patch)
treec310eec7b5c9bbaf9e35394753139d703a625d41 /.devcontainer
parentd052a383f1a0c599c176a12c73a761ca00436d8b (diff)
downloadcpython-0b1d9c44f1f091a499856d81542eeafda25011e1.zip
cpython-0b1d9c44f1f091a499856d81542eeafda25011e1.tar.gz
cpython-0b1d9c44f1f091a499856d81542eeafda25011e1.tar.bz2
GH-102973: add a dev container (GH-102975)
On content update, builds `python` and the docs. Also adds a Dockerfile that should include everything but autoconf 2.69 that's necessary to build CPython and the entire stdlib on Fedora. Co-authored-by: Ronald Oussoren <ronaldoussoren@mac.com> Co-authored-by: Dusty Phillips <dusty@phillips.codes>
Diffstat (limited to '.devcontainer')
-rw-r--r--.devcontainer/Dockerfile24
-rw-r--r--.devcontainer/devcontainer.json75
2 files changed, 99 insertions, 0 deletions
diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile
new file mode 100644
index 0000000..ce89673
--- /dev/null
+++ b/.devcontainer/Dockerfile
@@ -0,0 +1,24 @@
+FROM docker.io/library/fedora:37
+
+ENV CC=clang
+
+ENV WASI_SDK_VERSION=19
+ENV WASI_SDK_PATH=/opt/wasi-sdk
+
+ENV WASMTIME_HOME=/opt/wasmtime
+ENV WASMTIME_VERSION=7.0.0
+ENV WASMTIME_CPU_ARCH=x86_64
+
+RUN dnf -y --nodocs install git clang xz python3-blurb dnf-plugins-core && \
+ dnf -y --nodocs builddep python3 && \
+ dnf -y clean all
+
+RUN mkdir ${WASI_SDK_PATH} && \
+ curl --location https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-${WASI_SDK_VERSION}/wasi-sdk-${WASI_SDK_VERSION}.0-linux.tar.gz | \
+ tar --strip-components 1 --directory ${WASI_SDK_PATH} --extract --gunzip
+
+RUN mkdir --parents ${WASMTIME_HOME} && \
+ curl --location "https://github.com/bytecodealliance/wasmtime/releases/download/v${WASMTIME_VERSION}/wasmtime-v${WASMTIME_VERSION}-${WASMTIME_CPU_ARCH}-linux.tar.xz" | \
+ xz --decompress | \
+ tar --strip-components 1 --directory ${WASMTIME_HOME} -x && \
+ ln -s ${WASMTIME_HOME}/wasmtime /usr/local/bin
diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json
new file mode 100644
index 0000000..e3fb4c6
--- /dev/null
+++ b/.devcontainer/devcontainer.json
@@ -0,0 +1,75 @@
+{
+ "build": {
+ "dockerfile": "Dockerfile"
+ },
+ "onCreateCommand": [
+ // Install common tooling.
+ "dnf",
+ "install",
+ "-y",
+ "which",
+ "zsh",
+ "fish"
+ ],
+ "updateContentCommand": {
+ // Using the shell for `nproc` usage.
+ "python": "./configure --config-cache --with-pydebug && make -s -j `nproc`",
+ "docs": [
+ "make",
+ "--directory",
+ "Doc",
+ "venv",
+ "html"
+ ]
+ },
+ "customizations": {
+ "vscode": {
+ "extensions": [
+ // Highlighting for Parser/Python.asdl.
+ "brettcannon.zephyr-asdl",
+ // Highlighting for configure.ac.
+ "maelvalais.autoconf",
+ // C auto-complete.
+ "ms-vscode.cpptools",
+ // To view built docs.
+ "ms-vscode.live-server"
+ // https://github.com/microsoft/vscode-python/issues/18073
+ // "ms-python.python"
+ ],
+ "settings": {
+ "C_Cpp.default.cStandard": "c11",
+ "C_Cpp.default.defines": [
+ "Py_BUILD_CORE"
+ ],
+ // https://github.com/microsoft/vscode-cpptools/issues/10732
+ "C_Cpp.errorSquiggles": "disabled",
+ "editor.insertSpaces": true,
+ "editor.rulers": [
+ 80
+ ],
+ "editor.tabSize": 4,
+ "editor.trimAutoWhitespace": true,
+ "files.associations": {
+ "*.h": "c"
+ },
+ "files.encoding": "utf8",
+ "files.eol": "\n",
+ "files.insertFinalNewline": true,
+ "files.trimTrailingWhitespace": true,
+ "python.analysis.diagnosticSeverityOverrides": {
+ // Complains about shadowing the stdlib w/ the stdlib.
+ "reportShadowedImports": "none",
+ // Doesn't like _frozen_importlib.
+ "reportMissingImports": "none"
+ },
+ "python.analysis.extraPaths": [
+ "Lib"
+ ],
+ "python.defaultInterpreterPath": "./python",
+ "[restructuredtext]": {
+ "editor.tabSize": 3
+ }
+ }
+ }
+ }
+}