FOSS Wiki StationFOSS Wiki Station
Operations & Community

Project Governance

Governance models, roles, governance documents, CLA vs DCO, releases, security policy, forks.

Project Governance

Governance answers "who decides?" — who can merge a patch, who can cut a release, who owns the trademark, and what happens when the project outgrows its founder.


1. Governance models

ModelHow decisions are madeExamplesStrength / weakness
BDFLOne founder has final sayLinux (Torvalds), Python (until 2018)Fast and coherent / succession risk
Meritocratic committer modelContributors earn commit access; PMC votesASF, EclipseClear path, strong legal hygiene / slow onboarding
Elected technical steering committeeTSC/TOC elected from contributors; SIGs own domainsKubernetes, CNCF projects, Node.jsVendor-neutral, scalable / elections are politics
Foundation-backed stewardshipNeutral entity holds IP and trademark; project self-governsLF, ASF, Eclipse, CNCFTrust, legal cover / overhead, slower legal moves
Single-vendor / corporate-ledCompany owns code, roadmap and trademarkTerraform (post-2023), ElasticsearchWell-funded / licence and roadmap risk
Consensus / do-ocracyRough consensus among those who do the workDebian, IETF, ArchResilient, hard to capture / can deadlock
Cooperative / membershipMembers vote on budgets and directionGNOME, KDE e.V., Debian (via SPI)Democratic legitimacy / scale problems

Most real projects are hybrids. Python moved from BDFL (Guido van Rossum stepped down July 2018) to an elected five-person Steering Council with PEPs as the design process. Rust has teams plus a Council plus an RFC process.

2. Roles and the contributor ladder

StageActivityWhat unlocks
UserReports issues, asks questionsReputation and context
ContributorOpens PRs, fixes docs, triagesReview requests, discussion channels
ReviewerReviews others' changes reliablyTriage permissions
CommitterWrite access to the repositoryResponsibility for release quality
MaintainerOwns a subsystem; merges, cuts releasesSeat on TSC/PMC
PMC / TSC memberBudget, governance, legal decisionsRepresenting the project publicly

Publish the criteria for each step. "N merged non-trivial PRs over M months, plus consistent review of others' work" is enough. Ambiguity reads as favouritism.

3. The documents that make it real

FileContainsWhy it matters
README.mdWhat it is, install, quick startDrives adoption
LICENSEFull licence textWithout it, nobody may use the code
GOVERNANCE.mdRoles, decision process, how to become a maintainer, removalWhat corporate backers read first
CONTRIBUTING.mdSetup, style, tests, sign-off, PR expectationsReduces review churn
CODE_OF_CONDUCT.mdBehavioural standards, reporting, enforcementRetention and legal defensibility
MAINTAINERS / OWNERSWho owns what, per moduleMakes review routing and CODEOWNERS work
SECURITY.mdPrivate reporting channel, disclosure policy, supported versionsWhat to do when a CVE lands
SUPPORT.md, CHANGELOG.md, ROADMAP.mdExpectation settingCuts down "any ETA?" issues
CHARTER.md (foundation projects)Scope, IP policy, voting rulesBinds foundation and project

4. Decision processes

  • Lazy consensus — propose on the list with a deadline; silence means consent (Apache's default).
  • RFC / PEP / KEP / DEP — design documents reviewed in public before implementation. Heavy, but the written rationale survives personnel turnover.
  • Quorum voting — binding votes for releases and legal matters (ASF: at least three +1s, no veto).
  • Veto — ASF committers may veto code commits, but it must be justified and can be overridden by vote.
  • SIG ownership — divide by subsystem so most decisions never reach the centre.

Write the removal process too. Governance that can only promote cannot handle an inactive or abusive maintainer.

5. CLA vs DCO

DCO (Developer Certificate of Origin)CLA (Contributor License Agreement)
Mechanismgit commit -s adds Signed-off-by:; no paperworkSigned agreement, often via a bot; entities sign a CCLA
Rights grantedCertifies the contributor may submit under the project licenceLicence to the project, sometimes including relicensing
RelicensingRequires asking every contributorPossible without further consent
Enforcement standingStays with individual copyright holdersCan centralise in the foundation
FrictionMinimalHigher; corporate contributors need legal sign-off
Used byLinux kernel, Git, Kubernetes/CNCF, OpenStackASF, Eclipse, Google, Microsoft

Corporate contributors need employer permission either way — an employment agreement assigning IP to your employer means your hobby commits may not be yours to give.

6. Releases, versioning and EOL

  • Semantic Versioning (MAJOR.MINOR.PATCH) is the expected default. Say explicitly if you are pre-1.0.
  • LTS policy: which versions get backports, for how long. Kubernetes ~12 months; Ubuntu LTS 5 years (10 with ESM); Node.js 30 months.
  • Deprecation ladder: announce → warn at runtime → remove in next major. Never silently break.
  • CHANGELOG generated from conventional commits, hand-curated at release time.
  • Reproducible builds and signed tags so downstream can verify what you shipped.
  • Deprecating a project: archive the repo, say so in the README, nominate successors.

7. Security policy

  1. Publish SECURITY.md with a private reporting channel and a GPG key.
  2. Register as a CVE Numbering Authority, or route through your foundation / GitHub's CNA.
  3. State your disclosure timeline. Coordinated disclosure with a fix-and-ship window is the norm; Project Zero historically used 90 days; CERT/CC uses 45.
  4. Announce via a security advisory; publish the CVE and a VEX statement where possible.
  5. Backport to supported branches in one release so downstream can ship without cherry-picking.

8. Forking: the escape hatch

ForkYearTriggerWhere it landed
LibreOffice2010Oracle's stewardship of OpenOffice.orgThe Document Foundation
MariaDB2009MySQL's acquisition by Sun/OracleMariaDB Foundation; distro default for a decade
io.js → Node.js2014–15Joyent's control of Node releasesRe-merged; Node moved to a foundation and TSC
OpenSearch2021Elastic License 2.0AWS-led; Apache-2.0
Valkey2024Redis moved to RSAL/SSPLLinux Foundation; adopted by distros within months
OpenTofu2023Terraform → BUSL 1.1LF → CNCF sandbox (April 2025); MPL-2.0

Forking is expensive — it splits maintainers and duplicates CI. It is also the threat that keeps single-vendor stewardship honest.

9. Antipatterns

  • Bus factor 1 with no documented release process — the condition that enabled the xz backdoor.
  • Governance by press release: announcing a foundation without transferring the trademark.
  • Undocumented power: maintainers who merge by fiat while advertising a community process.
  • No CODEOWNERS — PRs sit for weeks because nobody knows whose job review is.
  • Endless RFCs with no decider — process as a substitute for decisions.
  • Unfunded maintainers expected to meet SLAs — the path to burnout.

See also: Foundations · Contributing · Licenses · Business models

On this page