Update of Team Site#98
Merged
Merged
Conversation
Replaces the hand-maintained bullet list on team.ad with three TomEE-style
card grids — Active, Emeritus, Wall of Fame — populated at build time from
the OpenNLP committer/PMC roster (Whimsy LDAP) joined with live contributor
activity across apache/opennlp{,-site,-addons,-sandbox}. Identity merging
(login + apache-id + email + normalized-name) and bot filtering are ported
from the opennlp-stats reference tool.
Build:
- Bumps Java target to 21 and switches packaging to jar.
- Drops jbake-maven-plugin in favour of an exec-maven-plugin step that runs
the new org.apache.opennlp.website.Site driver. The driver fetches roster
+ activity, stages the JBake source tree with the team page populated,
then bakes via Oven programmatically. Responses are TTL-cached on disk
under target/contrib-cache/.
- mvn compile -Pserve enables a live-dev mode: bake once, serve the output
on http://localhost:\${jbake.port}/ (default 8080), watch src/main/jbake/
recursively and re-bake on change. Contributor data is fetched once and
reused across re-bakes.
Team page:
- Active vs Emeritus is derived from a 2-year activity window, with
optional manual overrides in src/main/resources/team-overrides.properties
(per-apache-id .gh, .status, .chair flags). Multiple GH logins per person
supported as semicolon-separated values.
- Cards show initials on a deterministic color, the name, and role pills
(C, C-P, Chair). PMC chair pill is OpenNLP brand orange.
- A "Last updated: <UTC timestamp>" line plus a legend pill row sit at the
top of the page (next to each other).
- All sections are sorted deterministically by "lastname firstname".
- Card grid styling lives in custom-style.css with a matching dark-mode
override block in scheme-dark.css.
The team page build can now skip the live GitHub + Whimsy retrieval entirely, for offline/restricted environments where api.github.com or whimsy.apache.org is unreachable. Triggered three ways: mvn compile -Pno-fetch # Maven profile ... -DopennlpSiteNoFetch ... # n/a; use the env var or profile OPENNLP_SITE_NO_FETCH=1 mvn compile # env var Site ... --no-fetch # CLI flag When set, Contributors.empty() returns three empty section lists instead of calling out to the network; the team page renders with "No contributors to show." placeholders, and the rest of the site builds normally. README also gains a "Manual roster overrides" subsection documenting the src/main/resources/team-overrides.properties keys (.gh, .status, .chair), including an example, plus a "Skipping the live fetch" subsection covering the new -Pno-fetch profile and the env var equivalent.
The validation workflow on GH Actions hits api.github.com from a shared runner egress pool, which is regularly already over the 60 req/h anon budget by the time our build starts. That doesn't fail the build (the fetcher swallows individual errors) but it makes the rendered Active / Emeritus / Wall-of-Fame counts inconsistent across PRs and noisy in logs. CI doesn't publish anything anyway — its job is to validate that the site builds and the per-version doc directories exist. The actual live team-page data is generated by the ASF BuildBot when it deploys to asf-site, so skipping the fetch here is purely a CI hygiene win.
kinow
approved these changes
Apr 30, 2026
mawiesne
approved these changes
Apr 30, 2026
Contributor
|
Excellent @rzo1 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Hi,
here is a draft for the thing we discussed. Details of the mechanics against GH and Whsimy are described in the README.