Thank you for your interest in contributing to the Open Construct Foundation! This document provides guidelines for contributing to OCF projects and participating in the community.
Each OCF project has its own repository with specific contribution guidelines. Common ways to contribute code include:
- Bug fixes: Identify and fix issues in existing code
- New features: Implement new functionality
- Documentation: Improve or add documentation
- Tests: Add or improve test coverage
- Reviews: Review pull requests from other contributors
- Issue triage: Help organize and prioritize issues
- Community support: Answer questions in Slack or GitHub
- Content creation: Write blog posts, tutorials, or videos
- Event organization: Help organize CDK Day or meetups
- Translation: Help translate documentation
| Project | Repository | Focus |
|---|---|---|
| AWS CDK Library | open-constructs/aws-cdk-library | Community CDK constructs |
| CDK Serverless | open-constructs/cdk-serverless | Serverless toolkit |
| Projen Pipelines | open-constructs/projen-pipelines | CI/CD automation |
| CDK DevOps | open-constructs/cdk-devops | DevOps constructs |
| CDK Terrain | open-constructs/cdk-terrain | Community continuation of CDKTF |
- Slack: Join cdk.dev and introduce yourself
- GitHub: Watch repositories you're interested in
- Events: Attend CDK Day and community meetups
- Look for issues labeled
good first issueorhelp wanted - Check project roadmaps and discussions
- Ask in Slack if you need suggestions
-
Fork the repository to your GitHub account
-
Clone your fork locally
git clone https://github.com/YOUR_USERNAME/REPO_NAME.git cd REPO_NAME -
Create a branch for your work
git checkout -b feat/my-new-feature
-
Make your changes following the project's coding standards
-
Write tests for your changes
-
Run the build to ensure everything works
npm install npm run build npm test -
Commit your changes using conventional commits
git commit -m "feat(module): add new feature" -
Push to your fork
git push origin feat/my-new-feature
-
Open a pull request against the main repository
All OCF projects use conventional commits. Format your commit messages as:
<type>(<scope>): <description>
[optional body]
[optional footer]
Types:
feat: New featurefix: Bug fixdocs: Documentation changesstyle: Code style changes (formatting, etc.)refactor: Code refactoringtest: Adding or updating testschore: Maintenance tasks
Examples:
feat(aws-s3): add lifecycle rule construct
fix(lambda): correct timeout calculation
docs(readme): update installation instructions
- Title: Use conventional commit format
- Description: Explain what changes you made and why
- Tests: Include tests for new functionality
- Documentation: Update relevant documentation
- Size: Keep PRs focused and reasonably sized
All contributions go through code review:
- A maintainer will review your PR
- They may request changes or ask questions
- Once approved, a maintainer will merge your PR
- Your contribution will be included in the next release
- Code quality and style consistency
- Test coverage
- Documentation
- Backward compatibility
- Security considerations
Most OCF projects require:
- Node.js: Version 18 or later
- npm: Comes with Node.js
- Git: For version control
- AWS CDK: Version 2.120.0 or later (for CDK projects)
Some projects use projen, which has limited Windows support. We recommend using WSL2 (Windows Subsystem for Linux) for development.
Anyone who contributes to OCF projects. No formal requirements.
Experienced contributors who review pull requests and mentor others. Requirements:
- History of quality contributions
- Understanding of project patterns and practices
- Commitment to timely reviews
Project leaders who make release and architectural decisions. Requirements:
- Significant contribution history
- Deep understanding of project direction
- Demonstrated leadership
See MEMBERSHIP.md for details on roles and how to advance.
We value all contributions! Contributors are:
- Listed in project contributor lists
- Credited in release notes
- Recognized at CDK Day and community events
- Slack: cdk.dev - fastest way to get help
- GitHub Discussions: For project-specific questions
- GitHub Issues: For bugs and feature requests
All contributors must follow our Code of Conduct. We are committed to providing a welcoming and inclusive environment for everyone.
By contributing to OCF projects, you agree that your contributions will be licensed under the project's license (typically Apache 2.0).