Phase 10 — Release Engineering

Apache releases are not deployments. They are legal artifacts — signed, voted on by the community, and distributed under the Apache License. Every PMC member is personally accountable for every release they vote +1 on.


Labs

LabTitleWhat you build
01Release Checklist EngineValidates a simulated release directory against the ASF release policy checklist
02API Compatibility CheckerDetects REMOVED / ADDED / MODIFIED public methods between two API snapshots; classifies binary-breaking changes
03RC Vote ParserParses a [VOTE] email thread; counts binding votes; determines pass/fail per Apache quorum rules

Core Concepts

ConceptWhat it means in practice
RC (Release Candidate)A versioned, signed artifact submitted for community vote; may go through multiple iterations (RC1, RC2, …)
Binding voteA +1 / 0 / -1 cast by a PMC member; only binding votes count toward quorum
Quorum rule≥ 3 binding +1 votes AND no binding -1 votes → release passes
Binary-breaking changeA change that prevents existing compiled code from running without recompilation (removed method, changed signature)
Source-compatible changeA change that requires recompilation but no code edits (new overload, new default method)
GPG detached signature.asc file alongside the artifact; lets downloaders verify the release was signed by a known committer
SHA-512 checksum.sha512 file; lets downloaders verify artifact integrity after download
LICENSE / NOTICERequired in every source release; LICENSE covers the ASL-2.0 grant + bundled deps; NOTICE contains required attribution

Deliverables

  • 3 Maven projects, all mvn clean test green
  • Phase-level HITCHHIKERS-GUIDE.md

Interview Relevance

  • "Walk me through the Apache release process" — Phase 10 gives you the full lifecycle answer
  • "What is a binary-breaking change?" — Lab 02 forces you to implement the detection logic
  • "How does a lazy consensus vote differ from a full vote?" — covered in HITCHHIKERS-GUIDE.md