Claude Code Plugins

Community-maintained marketplace

Feedback

Use this skill when you need to configure, build, or rebuild CPython from source. It covers initial setup with configure, incremental builds, platform-specific considerations, and working with Argument Clinic generated code.

Install Skill

1Download skill
2Enable skills in Claude

Open claude.ai/settings/capabilities and find the "Skills" section

3Upload to Claude

Click "Upload skill" and select the downloaded ZIP file

Note: Please verify skill by going through its instructions before using it.

SKILL.md

name cpython-build
description Use this skill when you need to configure, build, or rebuild CPython from source. It covers initial setup with configure, incremental builds, platform-specific considerations, and working with Argument Clinic generated code.

Building CPython

ONLY build in a build/ subdirectory at repo root. Never build in the source tree.

Setup and Configuration

IMPORTANT: Use sub-agents when running configure and make build steps!

# Build directory setup
REPO_ROOT=<path-to-cpython-git-repo>
BUILD_DIR=$REPO_ROOT/build

# Configure with debug support (enables debug symbols, assertions, runtime checks)
cd $BUILD_DIR && ../configure --with-pydebug

# Build using all CPU cores (initial or incremental)
make -C $BUILD_DIR -j $(nproc)

Platform notes:

  • Linux: BUILT_PY=$BUILD_DIR/python
  • macOS: BUILT_PY=$BUILD_DIR/python.exe (note .exe extension)
  • Windows: Ask user how to build (uses Visual Studio, different process)

Argument Clinic

After editing .c files that change function signatures, docstrings, or argument specs:

make -C $BUILD_DIR clinic

NEVER edit files in **/clinic/** subdirectories - they're auto-generated.

Verify Build

$BUILT_PY --version
$BUILT_PY -c "print('Hello from CPython!')"

Troubleshooting

  • Missing dependencies: Configure reports missing libraries
  • Stale build: make clean in BUILD_DIR and rebuild
  • Clinic files out of sync: make -C $BUILD_DIR clinic
  • Clean build: rm -rf $BUILD_DIR && mkdir $BUILD_DIR && cd $BUILD_DIR && ../configure --with-pydebug && make -C $BUILD_DIR -j $(nproc)