Skip to content

Governance Model UltraPlot

Casper van Elteren edited this page Jan 10, 2025 · 1 revision

To aid in UltraPlot's development and foster a sense of community, it pertinent to outline the governance model for UltraPlot.

1. Project Roles

The project recognizes different roles: users, contributors, maintainers, and project leads/owners. What follows is a brief discussion of each role and their responsibilities.

1.1 Users

  • Can use the package
  • Can report issues
  • Can submit feature requests
  • Can contribute to discussions

1.2 Contributors

  • All rights of Users
  • Can submit pull requests
  • Must ascribe by this document
  • Recognition in contributors list

1.3 Maintainers

  • All rights of Contributors
  • Can review and merge pull requests
  • Can triage issues
  • Can label and manage project boards
  • Requirements:
    • Demonstrated consistent quality contributions
    • At least 3 months of active participation
    • Nominated by existing maintainer and approved by Project Lead

1.4 Core Team Members

  • All rights of Maintainers
  • Can make architectural decisions
  • Can approve major feature additions
  • Can participate in roadmap planning
  • Requirements:
    • Minimum 6 months as Maintainer
    • Significant contributions to the project
    • Unanimous approval from existing Core Team

1.5 Project Lead (Currently @cvanelteren)

  • Final authority on project direction
  • Mediates conflicts
  • Manages project resources
  • Controls project access and permissions
  • Can delegate responsibilities

2. Decision Making Process

2.1 Code Changes

  • Minor changes: Single maintainer approval
  • Major changes: Two maintainer approvals
  • Breaking changes: Core Team consensus

2.2 Architectural Decisions

  • Proposed by Core Team members
  • Discussion period: 1 week minimum
  • Requires 2/3 majority of Core Team
  • Project Lead has veto power

2.3 Role Promotions

  • Maintainer: Nominated by existing maintainer, approved by Project Lead
  • Core Team: Unanimous Core Team approval
  • Project Lead succession: Must be Core Team member, 2/3 majority vote

3. Project Lead Succession

3.1 Voluntary Succession

  • Project Lead nominates successor from Core Team
  • Core Team votes to approve (2/3 majority required)
  • 1-month transition period

3.2 Emergency Succession

  • Core Team selects interim Project Lead
  • Must be finalized within 3 months
  • Requires unanimous Core Team approval

4. Code of Conduct

  • All participants must adhere to project's Code of Conduct
  • Violations handled by Core Team
  • Appeals handled by Project Lead

5. License and Copyright

  • Project remains under MIT
  • Project Lead maintains trademark rights

6. Amendments

  • Changes to governance require:
    • 2 week discussion period
    • 2/3 majority of Core Team
    • Project Lead approval

7. Communication

  • GitHub Issues for bug
  • Core Team meetings and decisions are documented in public
  • Major decisions announced via GitHub Discussions

8. Contributor Removal and Accountability

8.1 Grounds for Removal

Contributors may be removed from their roles for:

  • Violation of Code of Conduct
  • Malicious code contributions
  • Extended inactivity (6+ months without communication)
  • Repeated disruptive behavior
  • Breach of trust or project security
  • Harassment or discrimination
  • Unauthorized use of project resources

8.2 Removal Process

  1. Initial Warning

    • Written notice of concerns
    • 14-day period for response
    • Opportunity to correct behavior
  2. Temporary Suspension

    • Access rights temporarily revoked
    • Duration: 1-3 months
    • Clear conditions for reinstatement
  3. Permanent Removal

    • Requires Core Team majority vote
    • Project Lead confirmation
    • Public announcement if necessary
    • Immediate revocation of all access rights

8.3 Appeals Process

  • Removed contributors can appeal within 30 days
  • Appeals reviewed by Core Team
  • Project Lead makes final decision
  • One appeal permitted per incident

8.4 Reinstatement

  • Can apply for reinstatement after 6 months
  • Must show evidence of changed behavior
  • Requires unanimous Core Team approval
  • New probationary period of 3 months