Repository navigation
Rework the hosting request forms and service pages - #109
Merged
Merged
Conversation
The request forms could only ask a flat list of questions, so a form covering many services had to ask everything of everyone. The form data can now describe follow-up questions that appear only when they apply. - Adds toggle fields, which reveal a set of follow-up questions, and titled groups that can require at least one checked box - Shows a field or checkbox group only when another field has one of the given values, following chains of conditions - Lets several toggles reuse one question set from the form's field_sets, prefixing each field name with the toggle's - Sends formsender each field's label, section and checkbox group, in form order, so tickets can follow the form's layout - Keeps the page still when a section opens, and resyncs toggles and conditional fields when the browser restores a page Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Lance Albertson <lance@osuosl.org>
The general hosting form asked the same broad questions of every project, so most requests needed a round of follow-up email before we could act on them. It now lists every service from the hosting details page, and choosing one asks what we need to set it up. - Covers VMs, CI/CD, mirroring, email, mailing lists, websites, collaboration tools, databases, object storage, DNS and co-location - Asks each collaboration tool and database its own questions - Asks who manages a service only where there's a choice, and says plainly that the rest are managed by the OSL - Requires an OSI-approved license, at least one service, and the answers each service can't be set up without - Ends with optional cost contributions, any hard deadline and a catch-all question Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Lance Albertson <lance@osuosl.org>
These forms lagged behind the general hosting form: the OpenStack ones offered a short list of fixed flavors that no longer match what projects need, and none asked about licensing or who was asking. - Replaces the flavor list with separate vCPU, memory and root disk choices, plus an optional attached volume on HDD or SSD - Asks for the requester's role, the source repository and an OSI-approved license - Uses sentence-case labels and shorter help text, and moves the catch-all question to the end Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Lance Albertson <lance@osuosl.org>
The site mixed AARCH64 and AArch64. Arm writes it AArch64, which is also how the request form and the rest of our docs spell it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Lance Albertson <lance@osuosl.org>
The details page and policy no longer matched what we offer or what the request form asks for. - Renames Community Services to Collaboration Tools and drops MediaWiki and Overleaf from its list - Mentions secondary DNS, and drops cable management arms from the co-location requirements - Requires an OSI-approved license in the hosting policy, rather than considering other licenses case by case Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Lance Albertson <lance@osuosl.org>
The request forms were easy to find from the front page but not from the services pages, the services page repeated itself, and the hosting page said little about what we actually host. - Adds request buttons under the title of every service page, driven by data/services.yml along with the front page cards - Gives each of the five services one section on the services page, with its request and details buttons - Rebuilds the hosting page around a grid of what we offer, who we host, how requesting works and some of the projects we host - Adds an "On this page" list to the hosting details page Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Lance Albertson <lance@osuosl.org>
There was no way to see the ticket a request form creates without sending a real one to RT. Formsender's new DRY_RUN mode logs tickets instead, so the site can now be tested against a local copy. - Adds a Docker Compose formsender in DRY_RUN mode, built from a local formsender checkout when there is one, and never given an RT_TOKEN - Adds a formtest Hugo environment that points the forms at it with Cloudflare's always-pass Turnstile test keys - Adds npm run test:forms, which submits each form scenario in Chrome through Playwright and saves every ticket to tmp/form-tickets - Fills the forms with answers for a made-up project, so the tickets read like a real request Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Lance Albertson <lance@osuosl.org>
PR previews are built like production, so their forms post to the real formsender and a test submission opens a real RT ticket. Previews now build with a staging environment that keeps the forms viewable but leaves out the formsender URL, token, captcha and Submit button, and points to the live form instead. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Lance Albertson <lance@osuosl.org>
ArtofBugs
reviewed
Oct 1, 2026
Wikipedia now has an AArch64 article, which explains the architecture better than the section of the Arm architecture article we linked to. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Lance Albertson <lance@osuosl.org>
The project pages linked to their sections by hand: a lone link on the AArch64 page, which has only one section, and unlabelled links on the POWER pages. The POWER pages now use the same "On this page" list as the hosting details page, and the AArch64 page drops its link. - Fixes "Below are a list" and adds the missing full stops Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Lance Albertson <lance@osuosl.org>
The hosting details page could only be reached through links on the hosting page, so it was easy to miss. It now has its own entry under Services, after General Hosting. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Lance Albertson <lance@osuosl.org>
The featured projects were bordered pills that looked like the large buttons on the hosting page, which made them seem more important than they are. They're now a plain list of links in two columns, on the home page and the hosting page, leading into the link to all projects. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Lance Albertson <lance@osuosl.org>
ArtofBugs
reviewed
Oct 1, 2026
The links ran across two or three columns, which read awkwardly with only two sections. They're now one vertical list, in a box only as wide as its contents. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Lance Albertson <lance@osuosl.org>
In the same font and weight, the 32px h2 and 28px h3 looked almost the same, so it was hard to see where a section on the hosting details page started. In page content, h3 and h4 are now smaller and each h2 has more space above it. Card titles in shortcodes keep their sizes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Lance Albertson <lance@osuosl.org>
The current POWER projects page used the internal name Powerdev, and both former project pages were titled "Formerly Hosted Projects" without saying which platform. They're now Current POWER Projects, Former POWER Projects and Former AArch64 Projects. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Lance Albertson <lance@osuosl.org>
ArtofBugs
reviewed
Oct 5, 2026
The AArch64 page linked to "Current Projects & Academic Partners", but we have no AArch64 academic partners and those pages only list projects. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Lance Albertson <lance@osuosl.org>
POWER CI shares the OpenPOWER page, so its More info link landed at the top of the page instead of the POWER CI section. An offering in data/services.yml can now name an anchor for that link. - The POWER CI heading gets a fixed power-ci ID to link to - The request buttons still match pages by url, so they're unchanged Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Lance Albertson <lance@osuosl.org>
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.
Reworks the hosting request forms so each one asks what we need to set up the services a project chooses, updates the
services and hosting pages around what we offer, and adds a way to test the forms locally without creating tickets.
Don't merge until osuosl/formsender#388 is deployed. These forms send a
field_labelsfield that the currentformsender doesn't know about, and it would put the whole list into every ticket.
Request forms
follow-up questions, and each collaboration tool and database gets its own.
requester's role, source repository and an OSI-approved license.
labels and layout, so formsender can lay the ticket out the way the form is.
Pages
Testing and previews
scripts/formsender-test.shandhugo server --environment formtestrun the forms against a local formsender indry-run mode, and
npm run test:formssubmits every form scenario through Playwright. The README has the details.--environment staging, which shows the forms without a way to submit them. Before this,a preview's forms posted to production formsender and could open real tickets.
🤖 Generated with Claude Code