Skip to content

Render the board's minutes as pages, the way calendar.md is rendered - #715

Draft
sstriker wants to merge 1 commit into
mainfrom
preview/striker-board-minutes-pages
Draft

sstriker wants to merge 1 commit into
mainfrom
preview/striker-board-minutes-pages

Conversation

@sstriker

@sstriker sstriker commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

Replaces #714, on a preview/ branch so .asf.yaml's autobuild: preview/* and
autostage: preview/* pick it up and the change can be seen built rather than reasoned about

What this does

Renders the board's minutes as pages of this site, using the same arrangement calendar.md
already uses: a script in setup.run exports markdown from SVN before the build, Pelican renders
it with everything else, and the output is gitignored because it is generated rather than written.

get_minutes.sh new, alongside get_calendar.sh
pelicanconf.yaml one line in setup.run
.gitignore content/foundation/board/minutes/, next to the existing calendar.md entry

The pages are generated from the published minutes by the Board Agenda Tool
(apache/tooling-agenda#54) and committed to
SVN beside calendar.md. There are three kinds, all under /foundation/board/minutes/:

minutes/index.html                            the index: years, then committees
minutes/2025/index.html                       one year
minutes/2025/board_minutes_2025_06_18.html    one meeting
minutes/Tomcat.html                           one committee, its whole history

Today those two views are served by whimsy, at /board_minutes/<year>/... and
/board/minutes/<Name>.html. The generating side reproduces whimsy's filenames and anchors
exactly, because www.apache.org already links to them by name, and it emits a matching
.htaccess of redirects so every URL whimsy serves keeps working. That is what lets whimsy be
retired rather than kept alongside.

Absent is not an error

svn ls first, and skip with a message if the directory is not there.

The tool writes these pages only once it is configured to, and that switch is thrown after this
wiring exists - otherwise it would be publishing into a site that does not render them. So there
is a window, starting when this merges, where the SVN path does not exist yet. A bare
svn export would exit non-zero for the whole build over a directory nothing is serving from.

Verified both ways against the real SVN: the skip path exits 0 today, and svn export of an
existing path creates the directory named for the final URL segment, which is what puts the pages
at content/foundation/board/minutes/. shellcheck is clean.

Not in this PR

The minutes text stays where it is. /foundation/records/minutes/ is proxied to
svn.apache.org by content/foundation/records/.htaccess, and this changes nothing about that -
the rendered pages link out to it as they do now.

Bringing the .txt alongside the rendered pages and retiring that proxy is a second pass. Two
things to know when it happens:

  • that .htaccess covers all of /foundation/records/, including the IRS 990 PDFs, so it cannot
    simply be deleted
  • /foundation/records/minutes without a trailing slash currently 301s to svn.apache.org,
    because the proxied backend issues its own DirectorySlash redirect and nothing rewrites it
    back - so the hostname leaks into the address bar today

Draft

Draft until the generating side lands. Nothing here serves anything until the tool is switched on
to publish, so merging it early is safe - but reviewing it against the pages it will render is
easier once those exist.

The board's minutes are published as text and have been read through whimsy's
renderer ever since. Those pages are now generated from the same record by the
Board Agenda Tool and committed to SVN beside calendar.md - one page per meeting,
one page per committee, and an index over both - so the website can serve them
itself rather than pointing at another host.

This is the wiring only, and it is deliberately the same arrangement calendar.md
already uses: a script in setup.run exports the markdown from SVN before the
build, Pelican renders it with everything else, and the output is gitignored
because it is generated rather than written.

Absent is not an error. The tool writes these pages only once it is configured
to, and that is thrown after this wiring exists - so there is a window where the
SVN directory is not there yet, and failing hard would break every build of the
whole site over a directory nothing serves from. It logs and carries on.

The minutes text itself is not moved here yet. Those files live under
/foundation/records/minutes/ and are proxied to svn.apache.org by
content/foundation/records/.htaccess; bringing them alongside the rendered pages,
and retiring that proxy, is a second pass.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01L6te4U8EufoXpmYjCaRB16
@bproffitt

Copy link
Copy Markdown
Contributor

I would like @Paul-TT to review this when he gets back from paternity leave.

@dave2wave

Copy link
Copy Markdown
Member

I would like @Paul-TT to review this when he gets back from paternity leave.

@bproffitt When will @Paul-TT return from leave? Could @loganloganlogan check if this won't be soon?

@bproffitt

bproffitt commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

The agenda side is not ready. So there's still things to do.

@dave2wave

dave2wave commented Aug 7, 2026

Copy link
Copy Markdown
Member

The agenda side is not ready. So there's still things to do.

From Sander:

This is largely done. The two views whimsy publishes - one page per meeting and one per committee -
are generated here from the published minutes, by our own parser rather than whimsy's, and every
page whimsy currently serves has a redirect pointing at ours. That is the condition for retiring
whimsy's copy rather than running both.

You can login and the pages are simulated.

https://agenda-dev.apache.org/minutes-pages/raw/minutes/index.md - the generated markdown as written
https://agenda-dev.apache.org/minutes-pages/site/minutes/index.md - the same drop, rendered

@bproffitt

Copy link
Copy Markdown
Contributor

I can now, I just got access a little bit ago.

@sstriker

sstriker commented Aug 7, 2026

Copy link
Copy Markdown
Contributor Author

Thanks @bproffitt. We'll mark the PR as ready as soon as the data side lands from the agenda tool. Please let us know if you are ok with integrating the minutes in this way into the main site. Styling/layout improvements can always be made.

@bproffitt

Copy link
Copy Markdown
Contributor

I am definitely okay with integrating the minutes into the main site like this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants