Skip to content

Latest commit

 

History

History
197 lines (136 loc) · 5.65 KB

File metadata and controls

197 lines (136 loc) · 5.65 KB

Contributing to the Open Construct Foundation

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.

Ways to Contribute

Code Contributions

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

Non-Code Contributions

  • 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

Getting Started

1. Find a Project

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

2. Join the Community

  • Slack: Join cdk.dev and introduce yourself
  • GitHub: Watch repositories you're interested in
  • Events: Attend CDK Day and community meetups

3. Find Something to Work On

  • Look for issues labeled good first issue or help wanted
  • Check project roadmaps and discussions
  • Ask in Slack if you need suggestions

Contribution Process

For Code Contributions

  1. Fork the repository to your GitHub account

  2. Clone your fork locally

    git clone https://github.com/YOUR_USERNAME/REPO_NAME.git
    cd REPO_NAME
  3. Create a branch for your work

    git checkout -b feat/my-new-feature
  4. Make your changes following the project's coding standards

  5. Write tests for your changes

  6. Run the build to ensure everything works

    npm install
    npm run build
    npm test
  7. Commit your changes using conventional commits

    git commit -m "feat(module): add new feature"
  8. Push to your fork

    git push origin feat/my-new-feature
  9. Open a pull request against the main repository

Conventional Commits

All OCF projects use conventional commits. Format your commit messages as:

<type>(<scope>): <description>

[optional body]

[optional footer]

Types:

  • feat: New feature
  • fix: Bug fix
  • docs: Documentation changes
  • style: Code style changes (formatting, etc.)
  • refactor: Code refactoring
  • test: Adding or updating tests
  • chore: Maintenance tasks

Examples:

feat(aws-s3): add lifecycle rule construct
fix(lambda): correct timeout calculation
docs(readme): update installation instructions

Pull Request Guidelines

  • 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

Code Review

All contributions go through code review:

  1. A maintainer will review your PR
  2. They may request changes or ask questions
  3. Once approved, a maintainer will merge your PR
  4. Your contribution will be included in the next release

Review Criteria

  • Code quality and style consistency
  • Test coverage
  • Documentation
  • Backward compatibility
  • Security considerations

Development Environment

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)

Windows Users

Some projects use projen, which has limited Windows support. We recommend using WSL2 (Windows Subsystem for Linux) for development.

Contributor Roles

Contributors

Anyone who contributes to OCF projects. No formal requirements.

Reviewers

Experienced contributors who review pull requests and mentor others. Requirements:

  • History of quality contributions
  • Understanding of project patterns and practices
  • Commitment to timely reviews

Maintainers

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.

Recognition

We value all contributions! Contributors are:

  • Listed in project contributor lists
  • Credited in release notes
  • Recognized at CDK Day and community events

Questions and Support

  • Slack: cdk.dev - fastest way to get help
  • GitHub Discussions: For project-specific questions
  • GitHub Issues: For bugs and feature requests

Code of Conduct

All contributors must follow our Code of Conduct. We are committed to providing a welcoming and inclusive environment for everyone.

License

By contributing to OCF projects, you agree that your contributions will be licensed under the project's license (typically Apache 2.0).