This document describes the governance model for the Promethium project, including roles, responsibilities, decision-making processes, and contribution pathways.
- Project Vision
- Governance Principles
- Roles and Responsibilities
- Decision-Making Process
- Contribution Ladder
- Maintainer Selection
- Conflict Resolution
- Changes to Governance
Promethium aims to be the leading open-source framework for AI-driven seismic data recovery and reconstruction. The project serves both academic research and industry applications, maintaining a balance between innovation and production stability.
- Scientific Rigor: Implementations are grounded in established geophysical principles.
- Technical Excellence: Code quality, testing, and documentation meet professional standards.
- Open Collaboration: Development is transparent and welcomes diverse contributions.
- User Focus: Features and improvements are driven by real-world use cases.
- All technical decisions are made in public forums (GitHub issues, discussions, pull requests).
- Roadmap and priorities are documented and publicly accessible.
- Meeting notes and significant discussions are summarized publicly.
- Contributions are valued based on quality and impact.
- Advancement in roles is based on demonstrated expertise and commitment.
- Technical decisions are based on merit, not authority.
- Major decisions seek broad agreement among stakeholders.
- Disagreements are resolved through discussion and compromise.
- When consensus cannot be reached, maintainers make final decisions.
- The project welcomes contributors from all backgrounds.
- Multiple expertise areas are valued: geophysics, ML, software engineering, documentation.
- Barriers to participation are actively identified and reduced.
Users consume the project without contributing code or documentation.
Expectations:
- Follow the Code of Conduct.
- Report bugs through appropriate channels.
- Provide feedback on usability and features.
Contributors have made at least one accepted contribution to the project.
Types of Contributions:
- Code (features, bug fixes, tests)
- Documentation
- Issue triage and reproduction
- Community support
- Translations
Recognition:
- Listed in contributor acknowledgments.
- May participate in project discussions.
Committers have demonstrated sustained, quality contributions and are granted write access to the repository.
Responsibilities:
- Review and merge pull requests.
- Maintain code quality standards.
- Support and mentor contributors.
- Participate in technical discussions.
Requirements:
- History of quality contributions.
- Familiarity with project conventions.
- Nomination by existing committer or maintainer.
- Approval by maintainers.
Maintainers have overall responsibility for the project direction and health.
Responsibilities:
- Set project vision and roadmap.
- Make final decisions on contentious issues.
- Manage releases.
- Handle security issues.
- Ensure project sustainability.
- Add or remove committers.
- Represent the project externally.
Current Maintainers:
| Name | Focus Area | GitHub |
|---|---|---|
| Olaf Yunus Laitinen | Project Lead, Architecture | @olaflaitinen |
As the project grows, a Technical Steering Committee (TSC) may be established to share governance responsibilities. The TSC would:
- Consist of 3-5 maintainers.
- Make decisions by majority vote.
- Meet regularly to discuss project direction.
- Rotate responsibilities among members.
Standard decisions (routine bug fixes, documentation updates, minor features) follow this process:
- Contributor opens a pull request.
- One or more committers review the change.
- If approved, any committer may merge.
- If concerns arise, discussion continues until resolved.
Significant decisions (major features, architecture changes, API modifications) require:
- Proposal in a GitHub issue or discussion.
- Minimum 7-day comment period.
- Review by at least two maintainers or committers.
- Explicit approval before implementation.
Breaking changes require:
- Detailed proposal with migration path.
- Minimum 14-day community feedback period.
- Documentation of breaking changes and upgrade instructions.
- Maintainer approval.
When consensus cannot be reached:
- Maintainers may call for a vote.
- Each maintainer has one vote.
- Simple majority decides.
- In case of tie, the project lead has tie-breaking authority.
- Contribute regularly: Multiple accepted contributions over several months.
- Demonstrate expertise: Show understanding of codebase and conventions.
- Engage constructively: Participate helpfully in discussions and reviews.
- Be nominated: Existing committer or maintainer proposes you.
- Maintainer approval: Maintainers vote on nomination.
- Serve as committer: Sustained contributions as a committer.
- Show leadership: Take initiative on significant features or areas.
- Mentor others: Help grow the contributor community.
- Demonstrate judgment: Make sound technical and community decisions.
- Maintainer invitation: Existing maintainers invite you to join.
Contributors may step down from roles at any time by notifying maintainers. Stepping down gracefully includes:
- Completing or handing off in-progress work.
- Documenting any specialized knowledge.
- Training successors if possible.
Inactive committers may have their access adjusted after 12 months of inactivity, with prior notification.
New maintainers are selected when:
- Project growth requires additional leadership.
- A committer demonstrates sustained maintainer-level contribution.
- Existing maintainers unanimously agree on the addition.
A maintainer may be removed for:
- Voluntary resignation.
- Extended inactivity (12+ months with no response).
- Code of Conduct violations.
- Loss of trust by other maintainers.
Removal requires:
- Documented concerns shared with the maintainer.
- Opportunity for the maintainer to respond.
- Vote by remaining maintainers.
- Discuss in the relevant GitHub issue or pull request.
- If unresolved, escalate to maintainers.
- Maintainers facilitate discussion and seek consensus.
- If needed, maintainers make a final decision.
- Attempt direct resolution between parties.
- If unresolved, report to maintainers.
- Maintainers mediate following Code of Conduct procedures.
- Enforcement actions are applied if necessary.
Decisions may be appealed by:
- Opening a governance issue with clear rationale.
- Maintainers review the appeal.
- The decision may be upheld, modified, or reversed.
This governance document may be amended through:
- Proposal via pull request to this file.
- Minimum 14-day community review period.
- Discussion and revision based on feedback.
- Unanimous approval by maintainers.
Minor clarifications may be made with standard pull request review.
For governance-related questions not addressed here, contact the maintainers through:
- GitHub Discussions
- Project communication channels listed in SUPPORT.md
This governance document is inspired by governance models from established open-source projects including the Linux Foundation, Apache Software Foundation, and CNCF projects.