mirror of https://github.com/python/cpython
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>
This commit is contained in:
parent
d052a383f1
commit
0b1d9c44f1
|
@ -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
|
|
@ -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
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,2 @@
|
||||||
|
Add a dev container (along with accompanying Dockerfile) for development
|
||||||
|
purposes.
|
|
@ -5,6 +5,7 @@ audioop
|
||||||
_bz2
|
_bz2
|
||||||
_crypt
|
_crypt
|
||||||
_decimal
|
_decimal
|
||||||
|
nis
|
||||||
_pickle
|
_pickle
|
||||||
pyexpat _elementtree
|
pyexpat _elementtree
|
||||||
_sha3 _blake2
|
_sha3 _blake2
|
||||||
|
|
Loading…
Reference in New Issue