Lab 01 — Contributor Landscape Mapping

Phase: 01 — Apache Contributor Foundations
Difficulty: ⭐☆☆☆☆ | Estimated Time: 4–6 hours
Type: Research / Document


Goal

Build a concrete mental model of what the contributor → committer → PMC progression actually looks like by researching real engineers in a live Apache project. You are not reading theory — you are reading evidence.


Background

Apache project rosters and contribution histories are entirely public. JIRA archives, GitHub activity, and mailing list archives create a permanent, searchable record of every contribution ever made. You can reconstruct the journey of any Apache committer from their first patch to their election.

Most engineers have never done this. After this lab you will be able to look at any contributor profile and immediately recognize where they are on the ladder — and what is blocking them from moving up.


Setup

Primary project: Apache Spark
(You may substitute Apache Hadoop if you have a stronger background there.)

Tools you will use:

ToolURLPurpose
Apache Whimsy Rosterhttps://whimsy.apache.org/roster/committee/sparkCurrent PMC members and committers
Apache JIRAhttps://issues.apache.org/jira/projects/SPARKIssue history, patch attachments, comments
GitHub — apache/sparkhttps://github.com/apache/sparkPR history, review activity
Apache Mailing List Archiveshttps://lists.apache.org/list.html?dev@spark.apache.orgdev@ thread history
Apache Reporterhttps://reporter.apache.org/Project health and activity stats

Steps

Step 1 — Orient Yourself on the Roster (30 min)

  1. Open Whimsy Spark Roster.
  2. Note the total number of PMC members and committers.
  3. Pick two PMC members whose names you recognize (e.g., from conference talks or blogs).
  4. Search their names in the JIRA archive and GitHub. Find their first ever Spark-related commit or merged PR. Note the date.
  5. Note the approximate date they were added to the committer list (check git log of the CHANGES file or mailing list announcement).

This gives you a rough sense of how long the journey took for established names.

Step 2 — Profile Five Engineers (2–3 hours)

Select five engineers to profile:

SlotCriteria
Profile AA current PMC member with 5+ years of history
Profile BA committer (not PMC) with 2–4 years of history
Profile CA committer who became one relatively recently (< 2 years ago)
Profile DAn active contributor visible in recent PRs who is not yet a committer
Profile EYourself — or a fictional placeholder if you prefer

For each, complete one contributor-profile-template.md (copy the template below into a new file named contributor-profile-[handle].md).

Step 3 — Write a Journey Summary (30–45 min)

For Profile A or B (your most historically rich profile), write a 200–300 word "journey narrative" answering:

  • What was their first contribution?
  • What types of contributions built their reputation (fixes? reviews? design work? documentation)?
  • Were there visible inflection points — a period of significantly increased activity?
  • Is there any evidence of the committer election announcement on dev@?
  • What can you infer about why they were trusted?

Save this as journey-summary-[handle].md.

Step 4 — Synthesize (30 min)

After completing all five profiles, answer these three questions in a section at the bottom of your journey summary file:

  1. What patterns appear across all committer profiles that are absent in Profile D (the non-committer)?
  2. What is the minimum visible track record you observed before someone was elected committer (in time and contribution breadth)?
  3. If Profile D were nominated today, what is the single most important thing they are missing?

Template

Copy this template into a new file for each engineer you profile:

contributor-profile-template.md


Expected Output

lab-01-contributor-landscape/
├── README.md                              ← this file
├── contributor-profile-template.md        ← blank template (do not edit)
├── contributor-profile-[handle-a].md      ← your completed Profile A
├── contributor-profile-[handle-b].md      ← your completed Profile B
├── contributor-profile-[handle-c].md      ← your completed Profile C
├── contributor-profile-[handle-d].md      ← your completed Profile D
├── contributor-profile-[handle-e].md      ← your completed Profile E
└── journey-summary-[handle].md            ← 200–300 word narrative + synthesis

Talking Points

Be prepared to explain:

  • Why is the Apache contributor history fully public? (Legal, governance, and trust model reasons)
  • What is the difference between a committer vote and a PMC vote? (Advisory vs binding)
  • Why does the election process use a private mailing list? (Personnel discussion norms; protects nominees from public rejection)
  • What would you change about your own public contribution history after seeing these profiles?

Resume Bullet

"Analyzed contributor-to-committer progression for Apache Spark: mapped five public contribution histories across JIRA, GitHub, and mailing list archives to identify the trust-building patterns and minimum track record that precede committer elections."