This devcontainer provides a fully configured development environment for the A2A project with all required dependencies pre-installed.
- protoc (v28.3) - Protocol Buffers compiler
- protoc-gen-jsonschema (bufbuild) - JSON Schema generator for protobuf
- jq (latest) - JSON processor
- googleapis - Google API proto definitions
- Python 3.12 with all documentation dependencies
- Go (latest) - for protoc plugin compilation
- Python language support with Pylance
- Buf for Protocol Buffers
- Code Spell Checker
- Install the Dev Containers extension
- Open this repository in VS Code
- When prompted, click "Reopen in Container" (or use Command Palette: "Dev Containers: Reopen in Container")
- Wait for the container to build and dependencies to install
Once inside the container:
# Build all documentation
./scripts/build_docs.sh
# Convert proto to JSON Schema only
./scripts/proto_to_json_schema.sh specification/json/a2a.jsonThis devcontainer configuration also works with GitHub Codespaces:
- Go to the repository on GitHub
- Click "Code" → "Codespaces" → "Create codespace on [branch]"
- Wait for the environment to be provisioned
- Reproducible builds: Everyone uses the same tool versions
- No local setup: No need to install protoc, jq, etc. on your host machine
- Quick onboarding: New contributors can start developing immediately
- CI/CD alignment: Same environment as CI can use similar container
To modify the environment:
- Add tools: Edit
.devcontainer/setup.sh - Change Python/Go versions: Edit
featuresindevcontainer.json - Add VS Code extensions: Edit
customizations.vscode.extensionsindevcontainer.json
# Rebuild without cache
Dev Containers: Rebuild Container (without cache)# Re-run setup script manually
bash .devcontainer/setup.sh