Skip to main content

Contributing to Physical AI Toolchain

Contributions improve this reference architecture for the robotics and AI community. This project accepts contributions for infrastructure code (Terraform/shell), deployment automation, documentation, training scripts, and ML workflows.

Reference architectures emphasize deployment validation over automated testing. Contributors validate changes through actual Azure deployments, which incurs cost. This guide provides cost-transparent guidance for different contribution scopes.

Contributions can include:

  • Infrastructure improvements (Terraform modules, networking, security)
  • Deployment automation enhancements (shell scripts, Kubernetes manifests)
  • Documentation updates (guides, troubleshooting, architecture diagrams)
  • Training script optimizations (Python, MLflow integration)
  • Workflow templates (AzureML, OSMO)
  • Bug fixes and issue resolution

๐Ÿ“– Contributing Guidesโ€‹

GuideDescription
PrerequisitesRequired tools, Azure access, NGC credentials, build commands
Contribution WorkflowBug reports, feature requests, first contributions
Pull Request ProcessPR workflow, review process, update procedures
Infrastructure StyleTerraform conventions, shell script standards, copyright headers
Deployment ValidationValidation levels, testing templates, cost optimization
Cost ConsiderationsComponent costs, budgeting, regional pricing
Security ReviewSecurity checklist, credential handling, dependency updates
AccessibilityAccessibility scope, documentation and CLI output guidelines
Updating External ComponentsProcess for updating reused externally-maintained components
Documentation MaintenanceUpdate triggers, ownership, review criteria, freshness policy
Fuzzing and Property-Based TestingFuzz targets, property tests, Hypothesis and fast-check patterns
Roadmap12-month project roadmap, priorities, and success metrics

Quick Referenceโ€‹

Changing...Read...
Terraform modulesInfrastructure Style, then Deployment Validation
Shell scriptsInfrastructure Style
Training workflowsDeployment Validation (Level 4)
Security-sensitive codeSecurity Review
Any PRCost Considerations for testing budget
Accessibility requirementsFollow Accessibility for docs and CLI output
Documentation policyDocumentation Maintenance

๐Ÿ“‹ Prerequisitesโ€‹

Install required tools and configure Azure access before contributing. See Prerequisites and Build Validation for complete details including Azure access requirements, NVIDIA NGC setup, and build validation commands.

ToolMinimum Version
Terraform1.9.8
Azure CLI2.65.0
kubectl1.31
Helm3.16
Node.js20+ LTS
Python3.11+
shellcheck0.10+

๐Ÿ“œ Code of Conductโ€‹

This project adopts the Microsoft Open Source Code of Conduct.

For more information, see the Code of Conduct FAQ or contact opencode@microsoft.com with questions or comments.

โ“ I Have a Questionโ€‹

Search existing resources before asking questions:

If you cannot find an answer:

  1. Open a new discussion in the Q&A category
  2. Provide context: What you are trying to accomplish, what you have tried, error messages or unexpected behavior
  3. Include relevant details: Azure region, Terraform version, deployment step, error logs

Maintainers and community members respond to discussions. For bugs or feature requests, use GitHub Issues instead.

๐Ÿค I Want To Contributeโ€‹

See the Contribution Workflow guide for detailed instructions on:

  • Legal notice and CLA requirements
  • Reporting bugs with deployment context
  • Suggesting enhancements
  • Making your first code contribution
  • Improving documentation

๐Ÿ’ฌ Commit Messagesโ€‹

This project uses Conventional Commits:

<type>(<scope>): <subject>

Types: feat (new feature), fix (bug fix), docs (documentation), refactor (code refactoring), chore (maintenance), ci (CI/CD changes), security (CVE fixes)

Scopes: terraform, k8s, azureml, osmo, scripts, docs, deploy

Use present tense, keep subject under 100 characters, capitalize subject line. Provide detailed body for non-trivial changes.

For complete commit message guidance with examples, see commit-message.instructions.md.

๐Ÿ“ Markdown Styleโ€‹

All Markdown documents require YAML frontmatter:

---
title: Document Title
description: Brief description (150 chars max)
author: Microsoft Robotics-AI Team
ms.date: YYYY-MM-DD
ms.topic: concept | how-to | reference | tutorial
---

Use ATX-style headers, tables for structured data, GitHub alert syntax for callouts, and language-specified code blocks. Validate with npm run lint:md.

For complete Markdown guidance, see docs-style-and-conventions.instructions.md.

๐Ÿ—๏ธ Infrastructure as Code Styleโ€‹

Infrastructure code follows strict conventions for consistency, security, and maintainability.

Key Terraform Conventionsโ€‹

  • Format with terraform fmt -recursive deploy/ before committing
  • Use descriptive snake_case variables with prefixes (enable_, is_, aks_)
  • Include standard tags on all Azure resources
  • Prefer managed identities over service principals
  • Store secrets in Key Vault, never in code

Key Shell Script Conventionsโ€‹

  • Begin scripts with #!/usr/bin/env bash and set -euo pipefail
  • Include header documentation with prerequisites, environment variables, and usage
  • Validate with shellcheck before committing

All source files require the Microsoft copyright header:

# Copyright (c) Microsoft Corporation.
# Licensed under the MIT License.

For complete conventions with examples, see Infrastructure Style Guide.

๐Ÿงช Deployment Validationโ€‹

This reference architecture validates through deployment rather than automated testing. Choose validation level based on contribution scope and cost constraints.

Validation Levelsโ€‹

LevelWhatWhen to UseCost
Level 1: Staticnpm run lint:tf:validate, shellcheck, npm run lint:mdEvery contribution$0
Level 2: Planterraform plan with documented outputTerraform changes$0
Level 3: DeploymentFull deployment in dev subscriptionMajor infrastructure changes$25-50
Level 4: WorkflowTraining job executionScript/workflow changes$5-30

Static validation is required for all PRs:

npm run lint:tf:validate
shellcheck infrastructure/**/*.sh scripts/**/*.sh
npm run lint:md

For complete validation procedures, testing templates, and cost optimization strategies, see Deployment Validation Guide.

๐Ÿ”„ Pull Request Processโ€‹

See the Pull Request Process guide for the complete workflow including reviewer assignment, review cycles, approval criteria, and update process.

๐Ÿ’ฐ Cost Considerationsโ€‹

Full deployment testing incurs Azure costs. Plan accordingly and destroy resources promptly.

[!NOTE] Cost estimates are approximate and subject to change. Use the Azure Pricing Calculator for current rates.

Testing Budget Summaryโ€‹

Contribution TypeTypical CostTesting Approach
Documentation$0Linting only
Terraform modules$10-25Plan + short deployment
Training scripts$15-30Single training job
Full infrastructure$25-50Complete deployment cycle

Key Cost Driversโ€‹

  • GPU VMs: ~$3.06/hour per Standard_NC24ads_A100_v4 node
  • Managed services: ~$50-100/month combined (Storage, Key Vault, PostgreSQL, Redis)

Cost Minimizationโ€‹

# Single GPU node, public network mode
terraform apply -var="gpu_node_count=1" -var="network_mode=public"

# Always destroy after testing
terraform destroy -auto-approve -var-file=terraform.tfvars

For component cost breakdowns, budgeting commands, and regional pricing, see Cost Considerations Guide.

๐Ÿ”’ Security Review Processโ€‹

Security-sensitive contributions require additional review to ensure Azure best practices.

Security Review Scopeโ€‹

  • RBAC and permissions changes
  • Private endpoints and networking configuration
  • Credential handling and secrets management
  • Network policies and firewall rules
  • Workload identity configuration

Key Requirementsโ€‹

  • Managed identities over service principals
  • Secrets in Key Vault, never in code
  • Least privilege RBAC assignments
  • Security scanning before PR submission

Reporting Security Issuesโ€‹

DO NOT report vulnerabilities through public GitHub issues. Report to Microsoft Security Response Center (MSRC). See SECURITY.md.

For the complete security checklist, dependency update process, and scanning requirements, see Security Review Guide.

โ™ฟ Accessibilityโ€‹

All contributions follow the project's Accessibility Best Practices.

Documentation standards:

  • Provide descriptive alt text for every image
  • Follow heading hierarchy without skipping levels
  • Use descriptive link text instead of raw URLs
  • Use tables and lists for structured data

CLI output standards:

  • Support the NO_COLOR standard in shell scripts
  • Shared color functions in scripts/lib/common.sh check NO_COLOR before emitting ANSI escape sequences

See Accessibility for full guidelines.

๐Ÿ“š Attributionโ€‹

This contributing guide is adapted for reference architecture contributions and Azure + NVIDIA robotics infrastructure.

Copyright (c) Microsoft Corporation. Licensed under the MIT License.