Skip to content

Add missing @sourceacademy/conductor devDependency to modules-buildtools - #854

Merged
martin-henz merged 1 commit into
conductor-migrationfrom
fix/buildtools-conductor-devdep
Jul 27, 2026
Merged

Add missing @sourceacademy/conductor devDependency to modules-buildtools#854
martin-henz merged 1 commit into
conductor-migrationfrom
fix/buildtools-conductor-devdep

Conversation

@martin-henz

Copy link
Copy Markdown
Member

Summary

Fixes the `@sourceacademy/modules-buildtools` library CI failure (both windows-latest and ubuntu-latest) from PR #680's run: https://github.com/source-academy/modules/actions/runs/30272720846

`lib/buildtools/src/build/docs/tests/conductor.test.ts` processes the real source of the `repeat` and `rune` bundles through TypeDoc to test doc normalization. Both bundles import types from `@sourceacademy/conductor`, but `modules-buildtools` never declared it as a dependency of its own.

This was invisible in a full workspace install (hoisting made it resolvable anyway), but breaks in the isolated `yarn workspaces focus` install CI uses for the `modules-buildtools` library job — TypeDoc can't resolve the imported types there and falls back to a bare `'default'` export instead of discovering the `repeat`/`twice`/`thrice` and rune method members:

expected [ 'default' ] to deeply equal ArrayContaining{…}
TypeError: Cannot read properties of undefined (reading 'parameters')

`@sourceacademy/modules-lib` was also a candidate (rune also imports from it), but adding it creates a circular dependency since `modules-lib` already depends on `modules-buildtools`. `@sourceacademy/conductor` alone is enough to fix both failing tests.

This failure pattern predates PR #840 — it shows up on `conductor-migration` CI runs going back further (e.g. run 30242496974), so it's a pre-existing gap, not something introduced by the curve/plotly migration.

Verification

  • Reproduced the exact CI failure locally via an isolated `yarn workspaces focus @sourceacademy/modules-buildtools` install (matching what CI does)
  • After the fix: full buildtools test suite passes (148/148), including both previously-failing tests
  • `tsc` passes
  • `yarn constraints` clean (checked with both isolated and full installs)
  • `yarn lint:all` — no new errors/warnings

🤖 Generated with Claude Code

modules-buildtools/src/build/docs/__tests__/conductor.test.ts processes
the real source of the repeat and rune bundles through TypeDoc to test
doc normalization. Both bundles import types from @sourceacademy/conductor,
but buildtools never declared it as a dependency of its own. This was
invisible in a full workspace install (hoisting made it resolvable
anyway) but breaks in the isolated `yarn workspaces focus` install CI
uses for the modules-buildtools library job, where TypeDoc can't resolve
the imported types and falls back to a bare 'default' export instead of
discovering the repeat/twice/thrice and rune method members.

@sourceacademy/modules-lib was also a candidate (rune also imports from
it), but adding it creates a circular dependency since modules-lib
already depends on modules-buildtools. @sourceacademy/conductor alone is
enough to fix both failing tests.
@gemini-code-assist

Copy link
Copy Markdown
Contributor

Caution

The consumer version of Gemini Code Assist on GitHub has been sunset. All code review activity has officially ceased.

@martin-henz
martin-henz merged commit ab52c05 into conductor-migration Jul 27, 2026
@martin-henz
martin-henz deleted the fix/buildtools-conductor-devdep branch July 27, 2026 14:37
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