Release & Governance Reality
This section takes you inside the maintainer and Technical Steering Committee (TSC) view of OpenSearch. The Contributor Mindset section answered the question "how do I behave so my work gets accepted?" This section answers the opposite, asymmetric question: what is the work being done by the people who accept your pull request? — what a maintainer reads in your diff, why a "trivial" change gets heavy scrutiny, how a fix actually ships in a release, and who decides any of it.
It is written for two audiences:
- Contributors who want to understand maintainers. If you know what a maintainer is worried about — backward compatibility across a mixed cluster, the blast radius of a change, the cost of a revert — you write PRs that get merged instead of stalling.
- Aspiring maintainers. The path from contributor to maintainer to TSC is not a mystery, but nobody hands you the operational playbook. This section is that playbook.
The chapters are deliberately not aspirational. They are the mechanics — which CI check
gates a merge, what the backport 2.x label does, where the SPDX header and licenses/
rules are bright lines, and what a "release readiness" issue tracks.
Note: OpenSearch is not an Apache project, and its governance is not the Apache model. There is no PMC, no IPMC, no incubator, no
[VOTE]email thread, and no JIRA. If you came here from an Apache background (or from the sibling Apache Tez curriculum), unlearn those reflexes. The differences are spelled out below and recur throughout the section.
How OpenSearch Governance Differs From the Apache Model
The Apache Software Foundation governs each project through a Project Management Committee
(PMC) that holds binding votes, cuts releases by a formal [VOTE] email on a developer
mailing list, and tracks work in JIRA. OpenSearch works nothing like that.
| Concern | Apache model | OpenSearch model |
|---|---|---|
| Legal/foundation home | Apache Software Foundation | OpenSearch Software Foundation, under the Linux Foundation (moved there Sept 2024; previously AWS-stewarded) |
| Top governance body | Per-project PMC + the ASF Board | Technical Steering Committee (TSC) for technical direction; LF for legal/IP |
| Per-component authority | Committers + PMC members | Maintainers listed in each repo's MAINTAINERS.md |
| Issue tracker | Apache JIRA | GitHub Issues (one repo, one tracker) |
| Code review unit | A patch attached to a JIRA, or a GitHub PR mirrored back | A GitHub Pull Request — the native and only unit |
| Contributor agreement | ICLA / CCLA on file | DCO sign-off per commit (git commit -s); no CLA |
| Design discussion | dev@ mailing list thread | A GitHub issue labeled RFC / meta / proposal, plus forum.opensearch.org |
| Release decision | A formal [VOTE] on dev@, 72h, 3 binding +1s | Open release process in opensearch-build — a release manager, a "release readiness" tracking issue, no binding email vote |
| Release artifact provenance | Signed source tarball is the release; binaries are convenience | Built and validated openly via the opensearch-build pipeline; release notes generated from CHANGELOG.md + PRs |
| License | Apache License 2.0 | Apache License 2.0 (this part is the same — and is the reason OpenSearch exists) |
The single most important reframing: in OpenSearch, the design discussion, the review, the merge decision, the backport, and the release tracking all happen in public on GitHub. There is no private mailing list where the "real" decision is made. The artifact you watch is an issue thread and a PR, not an email vote. If you can read GitHub, you can read the governance.
Reading Order
The section is one index plus seven chapters. Read them in order the first time; afterwards they stand alone.
| # | Chapter | Audience |
|---|---|---|
| 1 | Communication Channels and Building Consensus | Everyone |
| 2 | GitHub Issues and PR Review | Contributors and maintainers |
| 3 | How Maintainers Think About Compatibility | Aspiring maintainers; contributors touching wire/index/REST surfaces |
| 4 | The Release Process and Release Trains | Anyone who needs a fix in a specific release; release managers |
| 5 | The TSC and Project Governance | Aspiring maintainers; anyone proposing a new plugin/repo |
| 6 | Licensing, SPDX Headers, and the Apache 2.0 Story | Everyone touching dependencies; release managers |
| 7 | Code Style, Test Quality, and Building Trust | All contributors |
Chapters 1–2 and 6–7 are immediately useful to any contributor. Chapters 3–5 are maintainer- and release-facing, but read them early: understanding why a maintainer blocks a "small" change on compatibility grounds, or why the backport deadline is firm, will save you a stalled PR.
How This Differs From the Contributor Mindset Section
The two sections are halves of the same coin and are meant to be read together:
- The Contributor Mindset section is first person: reading the codebase, designing via GitHub, writing a high-quality PR, responding to feedback, thinking about compatibility, and aiming for maintainership. It is what you do.
- This section is second person, inverted: it is what the maintainer reviewing you, the release manager shipping you, and the TSC governing the project do. It is the other side of the table.
Specifically, several mindset chapters have a governance mirror here:
| Contributor Mindset chapter | Governance mirror in this section |
|---|---|
pr-quality.md | github-review.md and code-style-trust.md |
compatibility.md | maintainer-mindset.md |
responding-to-feedback.md | communication-channels.md |
maintainership.md | tsc-governance.md (the ladder) |
design-via-github.md | communication-channels.md (RFCs, consensus) |
Read your own behavior in the mindset section, then read what the receiving end expects here, and your PRs converge on what gets merged.
Prerequisites
Before this section is fully useful:
-
You have read the Contributor Mindset section, especially
compatibility.mdandpr-quality.md. -
You have a GitHub account and have configured DCO sign-off (
git config commit.gpgsignis optional; theSigned-off-by:trailer fromgit commit -sis mandatory). -
You have a local clone of the core engine at
~/OpenSearch:git clone https://github.com/opensearch-project/OpenSearch.git ~/OpenSearch cd ~/OpenSearch ls CONTRIBUTING.md DEVELOPER_GUIDE.md MAINTAINERS.md CHANGELOG.md TESTING.md -
You have skimmed
CONTRIBUTING.md,DEVELOPER_GUIDE.md, andMAINTAINERS.mdin that clone. These are the authoritative process documents; this section explains the why behind them, not a substitute for them. -
You have an account on
forum.opensearch.organd have joined the public Slack atopensearch.org/slack(covered in Communication Channels).
If you intend to follow the capstone, you will exercise nearly
everything in this section: getting a real PR reviewed (github-review.md),
backported, and into a release (release-process.md).
You've Absorbed This Section When…
You have internalised this material when you can, without looking it up:
- Name the CI checks that gate a merge on the core repo (
gradle-check, assemble, precommit, DCO) and say what each one protects. - Explain why OpenSearch uses review-then-merge with maintainer approval, not commit-then-review.
- Add the
backport 2.xlabel to a merged PR and describe exactly what the backport bot then does — and what to do when it conflicts. - Predict, before opening an issue, whether it belongs as a plain
bug, anenhancement, or anRFC/proposal, and which channel drives consensus for each. - Read a diff that touches
StreamInput/StreamOutputor a REST response shape and predict whether a maintainer will block it on backward-compatibility grounds. (See the serialization-BWC deep dive.) - Trace how a one-line fix merged to
mainends up in a2.xpatch release: theCHANGELOG.mdentry, the backport, the release-readiness issue, the release manager, and the generated release notes. - Add a new dependency and correctly predict the license review it triggers: SPDX header,
the
licenses/SHA +LICENSE/NOTICEfiles, and the allowed-license check. - Describe the contributor → maintainer → TSC ladder and what changes at each rung.
The next chapter — Communication Channels and Building Consensus — covers the operational mechanics of the GitHub/forum/Slack/community-meeting system that this entire section relies on.