Skip to content

[GSoC'26] CodeGen Test Harness #483

Description

@Shubh-Raj

Problem Statement

The concerto-codegen package generates code for TypeScript, Java, C#, and Go, but there is no automated verification that the generated code compiles. The current test suite only checks text output against snapshots — it doesn't validate that the output is syntactically valid code.

Description

This project builds a compile-verification infrastructure for concerto-codegen — a CI-integrated quality assurance system that ensures generated code is always valid.

Core deliverables:

  • Multi-language compilation pipeline in GitHub Actions (TypeScript, Java, C#)
  • Containerized compiler environments for reproducible builds
  • Comprehensive test model suite covering edge cases (enums, scalars, inheritance, reserved keywords)
  • Extensible architecture for adding new target languages

This infrastructure transforms code generation from "hope it works" to "verified to compile" — catching regressions automatically and preventing broken releases from reaching users.

Expected Outcomes

  1. GitHub Actions workflow with compile verification for TypeScript, Java, and C#
  2. Containerized build environments for each target language
  3. Edge-case test model fixtures covering language-specific quirks
  4. Extensible harness design with documentation for adding new languages
  5. Validation of harness by fixing existing known issues

Skills Required

  • Required: JavaScript, GitHub Actions/CI pipelines, multi-language compilation basics
  • Preferred: Docker, TypeScript, Java, C#

Possible Mentors

TBD

Expected Size

Medium (~175 hours)

Expected Difficulty

Medium

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    maintainer-engagedA maintainer has commented or reviewed this item

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions