Skip to content

Latest commit

 

History

History
256 lines (195 loc) · 8.32 KB

File metadata and controls

256 lines (195 loc) · 8.32 KB

Project Governance

Overview

This document defines the governance model for the Awesome Design Patterns Examples project, including decision-making processes, key roles, and responsibilities.

For detailed role definitions and current role holders, see ROLES.md.

Project Mission

To provide a comprehensive, multilingual educational resource for software design patterns, implemented across multiple programming languages (Go, React.js, PHP, TypeScript, Java, AngularJS, and Angular 2+), fostering learning and best practices in software design.

Governance Model

This project follows a benevolent dictator governance model with community input. Decision-making balances between maintaining project quality and encouraging community contributions.

Key Roles and Responsibilities

📋 See ROLES.md for detailed role definitions, current assignments, and required tasks.

1. Project Lead / Maintainer

Current: @luizwbr

Responsibilities:

  • Final decision-making authority on project direction and major changes
  • Review and merge pull requests
  • Manage releases and versioning
  • Oversee project roadmap and priorities (see ROADMAP.md)
  • Ensure adherence to project standards and quality
  • Manage repository settings and access
  • Resolve conflicts and disputes
  • Appoint and remove collaborators and contributors

Authority:

  • Accept or reject contributions
  • Make architectural decisions
  • Establish coding standards and conventions
  • Set project priorities and goals

2. Collaborators

Current: Contributors with write access (if any)

Responsibilities:

  • Review pull requests
  • Help maintain code quality
  • Respond to issues and discussions
  • Assist in project documentation
  • Support community members

How to become a Collaborator:

  • Demonstrate consistent, high-quality contributions over time
  • Show understanding of project goals and standards
  • Be invited by the Project Lead based on sustained engagement

3. Contributors

Anyone who contributes to the project

Responsibilities:

Rights:

  • Submit issues and feature requests
  • Propose changes via pull requests
  • Participate in discussions
  • Use and distribute the code per the license

Decision-Making Process

Minor Changes

Examples: Bug fixes, documentation improvements, small refactoring

Process:

  1. Contributor submits pull request
  2. Automated checks must pass
  3. Maintainer or collaborator reviews
  4. If approved, merged by maintainer/collaborator
  5. Timeline: Usually within 1-2 weeks

Major Changes

Examples: New patterns, architectural changes, new language support, breaking changes

Process:

  1. Create an issue or discussion first to propose the change
  2. Community feedback period (minimum 3-7 days for significant changes)
  3. Project Lead makes final decision considering:
    • Alignment with project mission
    • Community input and consensus
    • Technical merit and quality
    • Maintenance burden
    • Educational value
  4. If approved, contributor implements via pull request
  5. Code review and approval by Project Lead
  6. Merge and documentation updates

Emergency Changes

Examples: Critical security fixes, major bugs affecting functionality

Process:

  • Project Lead may expedite review and merge
  • May be implemented directly by Project Lead
  • Community notified post-merge with explanation

Communication Channels

GitHub Issues

  • Bug reports
  • Feature requests
  • Questions and support
  • General discussions

Pull Requests

  • Code contributions
  • Review discussions
  • Implementation feedback

Code Reviews

All code contributions require review before merging:

  • Automated tests must pass
  • Code quality standards must be met
  • Documentation must be updated
  • DCO sign-off required

Contribution Standards

Code Quality

  • Educational clarity is paramount
  • Follows language-specific conventions
  • Includes comments and documentation
  • Maintains consistency across implementations

Review Criteria

Contributions are evaluated on:

  1. Correctness: Code works as intended
  2. Educational value: Clear demonstration of pattern
  3. Consistency: Aligns with existing implementations
  4. Documentation: Adequate comments and README updates
  5. Quality: Follows project standards
  6. Completeness: Addresses the stated goal

Acceptance Timeline

  • Simple PRs: Reviewed within 1-2 weeks
  • Complex PRs: May take 2-4 weeks
  • Major changes: Timeline discussed in proposal phase

Conflict Resolution

Step 1: Discussion

  • Most conflicts resolved through respectful discussion
  • Contributors encouraged to find consensus

Step 2: Collaborator Mediation

  • If available, collaborators may help mediate
  • Seek middle ground and compromise

Step 3: Project Lead Decision

  • Project Lead has final authority
  • Decision will be documented and explained
  • Appeals may be considered with new information

Code of Conduct Violations

  • Handled per Code of Conduct
  • May result in temporary or permanent ban
  • Project Lead has final authority

Changing Governance

This governance model may be updated by:

  1. Proposal via GitHub issue
  2. Community discussion period (minimum 14 days)
  3. Final decision by Project Lead
  4. Changes documented in this file with clear changelog

Succession Planning

🔒 See ACCESS_CONTINUITY.md for comprehensive access continuity and succession plan.

If the current Project Lead becomes unavailable:

  1. Active collaborators (if any) may assume maintenance
  2. Repository ownership may transfer per GitHub's succession process
  3. Community may fork if necessary to continue development

Continuity Commitment: The project can create/close issues, accept changes, and release versions within one week of confirmed loss of support from any individual.

Measures in place:

  • Public repository (forkable by anyone)
  • MIT License (allows continuation)
  • Distributed version control (multiple backups)
  • Documented processes and governance
  • DCO ensures contribution rights are clear
  • Active collaborator appointment strategy
  • Community-driven fork process if needed

Transparency

Public Records

All governance-related decisions are tracked publicly:

  • Issues and pull requests on GitHub
  • Commit history and discussions
  • This governance document

Accountability

  • Project Lead accountable to community and open source principles
  • All significant decisions explained and documented
  • Regular engagement with contributor community

License and Legal

Contributions

Intellectual Property

  • No contributor license agreement (CLA) required
  • DCO sufficient for contribution certification
  • All code remains open source under MIT License

Contact

Questions about Governance

  • Open an issue with the "question" or "governance" label
  • Tag the Project Lead in discussions
  • Review this document and related policies first

Proposing Changes

  • Open an issue describing the proposed governance change
  • Allow time for community input
  • Provide clear rationale and expected benefits

Document Version: 1.0
Last Updated: January 28, 2026
Next Review: January 2027 (or as needed)

Related Documents