clockworklabs / clockworklabs/SpacetimeDB
Add test: `RawModuleDefV10` auto-generated bindings must be up-to-date in all languages
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 25.2k
- Forks
- 1.1k
- Avg merge
- 2d 7h
- Merged PRs (30d)
- 46
Description
#4990 made the definition of RawModuleDefV10 invalid, so that generating it to TypeScript or C++ would result in code that didn't compile. We merged that PR without knowing, as we didn't actually re-run codegen during the PR; we planned to do so in a follow-up. This became a problem in #4636 and friends, when we attempted to make a separate change to RawModuleDefV10 in all of our supported languages. We reverted (well, as of writing, will revert) the broken change in #5098.
We should have a test which runs in CI which checks that the RawModuleDefV10 changes are up to date in all languages. Because we already check that the module libraries compile in all languages, this will mean that PRs like #4990 cannot merge. IIRC, we already have such a test for the WebSocket schema.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Find the existing WebSocket schema up-to-date test and the CI job that checks module libraries compile in each language. Trace how RawModuleDefV10 is generated for TypeScript and C++, then add coverage that detects stale generated bindings across all supported languages. Done means the check runs in CI and fails when RawModuleDefV10 changes are not regenerated.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp, rust, typescript
- Domain
- build-system, ci-cd, testing
- Issue type
- Feature
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 62/100