Repository navigation
ci(website): compile and test specs/course_recipe in the Course job - #1466
Merged
Merged
Conversation
check:course-recipe fails on a compile error, a failing assert, a module with zero tests, or an empty directory. Blog post included. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…feat/course-recipe-ci
# Conflicts: # apps/website/src/data/blog/index.ts # apps/website/src/data/blog/posts.ts
Two post-registry entries began their slug: line inside the previous entry's ru.openQuestions array: the main-first + head-after union kept both conflict fragments but dropped the array/object closers that sat between them. tsc -b reports 24 syntax errors and the typecheck ratchet refuses the file (0 -> 24). Each seam gets the four closing lines a healthy entry boundary already carries. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Stack refresh: the base PR's seam fix lands here; posts.ts keeps this branch's own entry on the HEAD side of both import blocks. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
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.
CI now compiles and runs the tests of
specs/course_recipe/*.t27, so a recipe step cannot be dropped silently. New scriptapps/website/scripts/check-course-recipe.mjs(npmcheck:course-recipe) reusesloadCompiler/verdictOf/constsOfandrunSpecTestsfrom the existing site scripts and is added to the Course step ofwebsite-checks.yml. It exits 1 on a compile error, a failing assert, a module with zero tests, or an empty directory.Stacked on #1465. Adds hand-written JS, hence
owner-approved-foreign.{ "version": 1, "head_sha": "44cba660c0e5d72775f4d33ade447d166654da0c", "summary": "The website Course job now compiles every specs/course_recipe module and runs its tests, failing on a compile error, a failing assert or a module with no tests.", "changes": [ "apps/website/scripts/check-course-recipe.mjs: compile and test every .t27 in specs/course_recipe with the site's wasm compiler", "apps/website/package.json: npm script check:course-recipe", ".github/workflows/website-checks.yml: the Course step also runs check:course-recipe", "apps/website/src/data/blog: post a-recipe-step-cannot-be-dropped-silently with English and Russian bodies" ], "tests": [ { "command": "npm run check:course-recipe in apps/website", "result": "course-27.t27 7 tests 26 asserts, roadmap.t27 4 tests 30 asserts, rc 0", "status": "passed", "evidence": "local run on 68c028280cb4160aa5bd2e92358771013f955110" }, { "command": "mutant: sed PLANNED_COUNT == 4 to == 5 in roadmap.t27, run, git checkout, rerun", "result": "mutant rc 1 (assert #2 is false), restored rc 0; zero-test copy rc 1; broken const copy rc 1; empty dir rc 1", "status": "passed", "evidence": "local run after commit" }, { "command": "tsc --noEmit in apps/website", "result": "rc 0, exit code 0 with no error output", "status": "passed", "evidence": "local run on the branch head b148e21ef" } ], "limitations": [ "The gate runs the tests the modules already have; it does not judge whether they cover every recipe step", "A syntactically broken const still reports typecheckOk true from the wasm compiler; it is caught by the tests that use it, not by the verdict" ], "tags": [ "t27", "course", "ci" ], "blog": { "title": "A recipe step cannot be dropped silently", "summary": "The website checks now compile and run the tests of the t27 course recipe.", "outline": [ "The course recipe in specs/course_recipe had tests, but no CI job ran them, so a step could be deleted without anyone noticing.", "The Course job of the website checks now runs check:course-recipe, compiling every module with the site's wasm compiler and running its tests.", "The gate fails on a compile error, a failing assert, a module with zero tests or an empty directory, each shown by a planted mutant.", "It runs only the tests the modules already have and does not judge whether those tests cover every step of the recipe." ] } }🤖 Generated with Claude Code