Skip to content

Spell the Server in American English - #122

Merged
kisielewski merged 1 commit into
mainfrom
feat/american-english
Sep 18, 2026
Merged

kisielewski merged 1 commit into
mainfrom
feat/american-english

Conversation

@kisielewski

Copy link
Copy Markdown
Member

The Server is spelled in American English: code, comments, interface text, and everything it puts on the wire. The owner decided this for the whole product as a 0.2 change, and 0.2 is not compatible with 0.1.

What changes on the wire

This list goes into the 0.2 release note.

0.1 0.2
Route POST /activities/{idOrSlug}/enrolment /enrollment
Route POST /lti/placements/{id}/roster/enrol /roster/enroll
Error codes enrolment.closed, enrolment.password, enrolment.required enrollment.*
Error code theme.colour theme.color
Error code cancelled (499) canceled
Job and storage-migration state, also ?state= "cancelled" "canceled"
Grade summary field synchronised synchronized
Account merge fields anonymiseAfter, sourceAnonymisedAt anonymizeAfter, sourceAnonymizedAt
Schema names EnrolInputDto, LocalisedLogoDto, RosterEnrolmentDto, ThemeColoursDto, ThemeColoursInputDto the American spelling

Server and Client 0.2 have to be tagged together. Ops follows the moving 0 tag, and a 0.2 Server beside a 0.1 Client answers the Client's enrollment with 404.

The database

One migration, americanSpelling, renames two columns of AccountMerges and their index in place:

ALTER TABLE "AccountMerges" RENAME COLUMN "SourceAnonymisedAt" TO "SourceAnonymizedAt";
ALTER TABLE "AccountMerges" RENAME COLUMN "AnonymiseAfter" TO "AnonymizeAfter";
ALTER INDEX "IX_AccountMerges_SourceAnonymisedAt_AnonymiseAfter" RENAME TO "IX_AccountMerges_SourceAnonymizedAt_AnonymizeAfter";

No data moves. EF scaffolded exactly these three statements, which also shows that nothing else in the schema changed. The enums that were renamed (Canceled, Synchronized) are stored as integers, so they need nothing. The manager role's seeded description has the new wording on a new installation and keeps its old text where it was already written.

The error-code census missed 44 codes

ErrorCodeCensusTests listed exception classes that do not exist and skipped ForbiddenActionException and UpstreamException. It dropped one-word codes, and it never read the codes ProblemDetailsExceptionHandler answers with for exceptions nobody raised. That is why enrolment.* and cancelled were never in error-codes.json.

  • It now reads all three sources, and error-codes.json holds 235 codes.
  • A second test refuses a code containing a British spelling.
  • A third reads the whole of openapi.json for one: routes, fields and schema names, which the census does not see.

Sabotaged: restoring enrolment.closed in the source fails the drift test and the spelling test.

Verified

  • dotnet build -warnaserror: no warnings.
  • dotnet test: 970 of 970, with the new migration applied to a fresh database.
  • openapi.json is byte-identical to what the running container serves: docker compose up, then curl …/swagger.json, then diff.
  • scripts/check-american-english.py in the workspace finds no British spelling outside the applied migrations, which are never edited.

Consumers change in their own pull requests: the Client, both Runners' tests, and the Docs. The Runner's CI builds the Server from main, so this one merges first.

Routes, error codes, enum values, JSON fields and schema names follow; the
pull request lists them for the 0.2 release note. One migration renames two
AccountMerges columns in place. The error-code census now reads every code
the Server emits, and refuses a British spelling in a code or in the
published contract.
@kisielewski
kisielewski merged commit 06d5787 into main Sep 18, 2026
6 checks passed
@kisielewski
kisielewski deleted the feat/american-english branch September 18, 2026 20:13
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.

1 participant