Thank you for your interest in contributing! This document provides guidelines for contributing to this project.
- Use GitHub Issues to report bugs or request features
- Include the stack variant you're using (e.g., slurm-gpu, eks-trainium)
- Include the AWS region and instance types
- For deployment failures, include the CloudFormation events (redact account IDs)
- Fork the repository
- Create a feature branch:
git checkout -b feature/my-change - Make your changes
- Run validation:
cfn-lint stacks/*/template.yaml modules/*/template.yaml modules/*/*.yaml - Submit a pull request
- All templates must pass
cfn-lintwith no errors - Use nested stacks via
modules/for shared components - Include
Descriptionin every template - Use
!Subfor string interpolation (not!Joinwhere avoidable) - Add
Metadata::AWS::CloudFormation::Interfacefor console parameter grouping - Default parameter values should work out of the box
- Tag all resources with
ResourceNamePrefix
- Use
#!/bin/bashwithset -euo pipefail - Log every major step to help with debugging
- Test on both Amazon Linux 2 and Ubuntu (HyperPod supports both)
- Handle errors gracefully with meaningful messages
- Python 3.12, boto3 only (no external dependencies)
- Always send cfnresponse (SUCCESS or FAILED)
- Include structured logging
- Timeout appropriate for the operation
- Write for someone who has never used HyperPod
- Include code examples that can be copy-pasted
- Keep the main README concise; details go in
docs/
Before submitting a PR, verify:
cfn-lintpasses on all modified templatesyamllintpasses on all YAML filesflake8passes on all Python files- If you modified a stack, test deployment in at least one region
This project follows the Amazon Open Source Code of Conduct. Please report unacceptable behavior to opensource-codeofconduct@amazon.com.
By contributing, you agree that your contributions will be licensed under the Apache-2.0 License.