Skip to content

Rework the hosting request forms and service pages - #109

Merged
ramereth merged 17 commits into
mainfrom
hosting-request-forms
Oct 5, 2026
Merged

ramereth merged 17 commits into
mainfrom
hosting-request-forms

Conversation

@ramereth

@ramereth ramereth commented Oct 1, 2026

Copy link
Copy Markdown
Member

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_labels field that the current
formsender doesn't know about, and it would put the whole list into every ticket.

Request forms

  • The general hosting form lists every service from the hosting details page. Choosing one asks that service's
    follow-up questions, and each collaboration tool and database gets its own.
  • The POWER, AArch64 and IBM Z forms ask for vCPUs, memory and disk separately instead of fixed flavors, and ask for the
    requester's role, source repository and an OSI-approved license.
  • The form framework gains toggles, required groups, conditional fields and reusable question sets. Each form sends its
    labels and layout, so formsender can lay the ticket out the way the form is.

Pages

  • Request buttons under the title of every service page.
  • One section per service on the services page.
  • The hosting page is rebuilt around a grid of what we offer, and the details page gets an "On this page" list.
  • The hosting details and policy pages match the form, and AArch64 is spelled consistently.

Testing and previews

  • scripts/formsender-test.sh and hugo server --environment formtest run the forms against a local formsender in
    dry-run mode, and npm run test:forms submits every form scenario through Playwright. The README has the details.
  • PR previews now build with --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

ramereth and others added 8 commits October 1, 2026 12:09
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>
Comment thread content/services/aarch64/_index.md Outdated
Comment thread content/services/aarch64/current-projects.md Outdated
Comment thread content/services/aarch64/current-projects.md Outdated
Comment thread content/services/hosting/details.md
Comment thread content/services/hosting/_index.md
ramereth and others added 4 commits October 1, 2026 16:02
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>
Comment thread content/services/hosting/details.md
ramereth and others added 3 commits October 2, 2026 10:39
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>
Comment thread content/services/aarch64/_index.md Outdated
Comment thread data/services.yml
ramereth and others added 2 commits October 5, 2026 15:57
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>
@ramereth
ramereth merged commit d9e8ef0 into main Oct 5, 2026
5 checks passed
@ramereth
ramereth deleted the hosting-request-forms branch October 5, 2026 23:17
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.

2 participants