|
libmemalloc 0.0.0-alpha
The Magic of Memory Transmutation
|
The libmemalloc project uses this document to define how project decisions are made, reviewed, approved, recorded, and updated.
Governance exists to keep the project:
This document is based on a lightweight open-source governance model and uses the SustainOSS Governance Readiness Checklist as a reference for reviewing whether project governance is clear, healthy, and sustainable.
It also cites the Governance.md Guide as a general reference for documenting open-source project governance.
This document does not create a legal entity, foundation, board, or formal membership structure. It defines repository-level governance for project maintenance, contributions, reviews, releases, ownership, and decision-making.
The libmemalloc governance model values:
The project should avoid hidden decisions, unclear ownership, unreviewed critical changes, and silent bypasses of normal project review.
This governance document applies to official project spaces and activities, including:
It applies to:
This document complements, but does not replace:
| Document | Purpose |
|---|---|
| README.md | Explains what the project is and how to use it. |
| CONTRIBUTING.md | Explains how to contribute. |
| CODE_OF_CONDUCT.md | Defines expected behavior and enforcement. |
| SECURITY.md | Defines vulnerability reporting and handling. |
| CODEOWNERS | Defines path-based review ownership. |
The project uses the SustainOSS Governance Readiness framework as a recurring review model.
The framework is interpreted through three dimensions:
| Dimension | Project interpretation |
|---|---|
| Day-to-day | How the project makes decisions, reviews pull requests, approves releases, assigns owners, and handles normal maintenance. |
| Barriers and Needs | What can block healthy governance, such as unclear ownership, maintainer overload, missing reviewers, unresolved conflicts, or unclear release authority. |
| Interventions | What the project does when normal governance is not working, such as escalation, release freeze, owner rotation, or policy update. |
A governance readiness review should happen:
The project follows these governance principles:
| Principle | Meaning |
|---|---|
| Transparency | Important decisions should be visible in issues, pull requests, discussions, or decision records. |
| Traceability | Significant technical and release decisions should have a durable record. |
| Maintainer accountability | Maintainers may make final decisions, but those decisions should be explainable and reviewable. |
| Least necessary process | Use the smallest process that still protects users, contributors, maintainers, quality, and security. |
| Clear ownership | Critical project areas should have explicit owners. |
| Security awareness | Security-relevant changes require explicit review. |
| Sustainable maintenance | Governance should reduce bottlenecks and avoid relying on unclear or unavailable ownership. |
A person may hold more than one role. In a small project, one maintainer may temporarily hold several roles, but ownership gaps should remain visible.
| Role | Responsibility |
|---|---|
| Maintainer | Owns final technical direction, roadmap, merges, releases, and governance. |
| Reviewer | Reviews code, documentation, tests, portability, maintainability, and design. |
| Security Contact | Coordinates vulnerability reports, private fixes, advisories, and security releases. |
| Release Owner | Runs release checks, verifies release readiness, publishes release notes, and publishes artifacts. |
| Documentation Owner | Reviews user-facing and developer-facing documentation. |
| Tooling Owner | Maintains CI, linters, analyzers, scripts, and repository automation. |
| Community Steward | Watches for contributor friction, unclear processes, onboarding gaps, and governance barriers. |
| Role | Primary owner | Backup owner |
|---|---|---|
| Maintainer | Rafael V. Volkmer | TBD |
| Reviewer | Rafael V. Volkmer | TBD |
| Security Contact | Rafael V. Volkmer | TBD |
| Release Owner | Rafael V. Volkmer | TBD |
| Documentation Owner | Rafael V. Volkmer | TBD |
| Tooling Owner | Rafael V. Volkmer | TBD |
| Community Steward | Rafael V. Volkmer | TBD |
Maintainers are responsible for protecting the long-term health of the project.
Maintainers should:
Maintainers may reject changes that are technically correct but harmful to the project's maintainability, portability, security, compatibility, or long-term direction.
Reviewers are responsible for checking whether a change is:
A reviewer may request additional review from a project owner when the change affects:
The default decision model is:
technical discussion
-> rough consensus
-> maintainer decision when needed
-> scientific record for each engineering decision
Consensus is preferred, but unanimous agreement is not required.
A maintainer may make the final decision when:
Supporting discussion and evidence may be recorded in:
Record the rationale and reviewed revision in the issue or pull request. Link supporting discussions and restricted evidence without publishing sensitive content.
Use the issue or pull request to record the problem, chosen approach, alternatives, compatibility effects and verification evidence. Follow the engineering review procedure. Keep stable requirements and executable contracts in the SDDs and reference pages they govern. The reviewer assesses the evidence and the decision authority records acceptance for the reviewed revision.
A pull request should be classified before review.
| Change type | Required review |
|---|---|
| Documentation-only | One reviewer or maintainer |
| Internal implementation | One reviewer or maintainer |
| Public API or ABI | Maintainer approval |
| Memory allocator internals | Maintainer approval and targeted tests |
| Build system or CI | Maintainer or Tooling Owner approval |
| Dependency update | Maintainer or Security Contact review |
| Security-relevant change | Security Contact review |
| Release process change | Release Owner and maintainer approval |
| Governance change | Maintainer approval and open discussion when appropriate |
A pull request should not be merged when:
CODEOWNERS defines which maintainers or teams must review changes in specific repository paths.
The project ownership map is:
* @RafaelVVolkmer /.github/ @RafaelVVolkmer /docs/ @RafaelVVolkmer /LICENSES/ @RafaelVVolkmer /readme/ @RafaelVVolkmer /.gitkeep @RafaelVVolkmer /CHANGELOG.md @RafaelVVolkmer /CODE_OF_CONDUCT.md @RafaelVVolkmer /GOVERNANCE.md @RafaelVVolkmer /LICENSE @RafaelVVolkmer /README.md @RafaelVVolkmer /SECURITY.md @RafaelVVolkmer
Path ownership rules:
Security vulnerabilities are handled according to SECURITY.md.
Security-relevant changes include:
Security issues may be handled privately when coordinated disclosure is needed.
Public discussion should avoid exposing sensitive vulnerability details before users have had a reasonable opportunity to update.
Security releases may use a shorter public discussion period when needed, but they still require maintainer approval.
A release may be published only after release readiness review.
Minimum release requirements:
| Area | Requirement |
|---|---|
| CI | Required workflows pass |
| Tests | Required test suites pass |
| Security | No known unresolved critical issue |
| Documentation | Changelog and release notes updated |
| Ownership | Required owners reviewed release-impacting changes |
| Tag | Release tag created by a maintainer |
| Artifacts | Release artifacts published when applicable |
The Release Owner records the release decision and its evidence under the release procedure.
A governance readiness review checks whether the project can still operate clearly and sustainably.
Review output should be recorded as an issue or discussion and linked from any governance update pull request.
The project should actively watch for governance barriers.
| Barrier | Risk | Intervention |
|---|---|---|
| Single maintainer bottleneck | Reviews and releases stall | Add reviewers, delegate ownership, reduce required synchronous approval |
| Unclear ownership | Critical changes get merged without the right review | Update CODEOWNERS and role table |
| Missing security contact | Vulnerabilities are handled inconsistently | Assign a contact or define maintainer fallback |
| Release authority unclear | Releases become inconsistent or risky | Define Release Owner and release evidence record |
| Too much process | Contributors stop participating | Simplify gates |
| Too little process | Decisions become unclear | Add minimal review and ownership rules |
| Dormant maintainers | Decisions become blocked | Apply inactivity policy and rotate owners |
| Unresolved conflict | Technical direction stalls | Escalate to maintainer decision with documented rationale |
Governance interventions are allowed when normal day-to-day governance is not working.
Possible interventions:
| Intervention | When to use |
|---|---|
| Release freeze | Serious security or release integrity problem |
| Maintainer decision | Consensus cannot be reached and progress is blocked |
| Temporary owner assignment | A critical owner is unavailable |
| Policy update | Existing governance does not cover a recurring problem |
| Security embargo | Coordinated disclosure is needed |
| Retrospective | A release, vulnerability, incident, or conflict exposed governance gaps |
Each intervention should be documented with rationale and outcome.
A maintainer or owner may be considered inactive when they have not responded to project-critical review or governance requests for a reasonable period.
Suggested process:
This policy should be used respectfully and only to keep the project healthy.
Technical disagreement is normal.
Resolution path:
discussion
-> concrete proposal
-> review of trade-offs
-> maintainer decision if needed
-> documented outcome
Conflicts should be resolved based on:
Personal attacks, harassment, or bad-faith behavior should be handled under the project's Code of Conduct.
Changes to this document require maintainer approval.
A governance change should explain:
For major governance changes, leave the pull request open long enough for maintainers and regular contributors to review.
This governance document should be reviewed as the project evolves.
Review is expected when:
Substantial changes should be reviewed like any other repository governance change.
This governance document is informed by the SustainOSS Governance Readiness Checklist, the Governance.md Guide, and general open-source governance practices.
The structure and visual style follow the repository documentation style used by the project's Code of Conduct template.
Maintainers own approval of specification issues and the reserved spec and SDD area labels. The versioned roster and catalog require review alongside changes to maintainer responsibility. PRs close bounded issues after their acceptance criteria pass; partial implementation references the open issue.