Skip to content

Commit f2e8469

Browse files
authored
# Java codegen: clean output directory before generating to prevent orphan accumulation (#1623)
## Summary Add a clean step to `java/scripts/codegen/java.ts` that removes the entire generated output directory before writing new files. This ensures that when upstream schema types are renamed or removed, the previously-generated `.java` files are automatically deleted rather than silently accumulating as orphans. ## Changes - **`java/scripts/codegen/java.ts`** — At the start of `main()`, recursively delete `src/generated/java/com/github/copilot/generated/` and recreate the empty directory before invoking any generators. - **`java/src/generated/java/`** — 204 orphan files removed (types no longer emitted by the current schema). These accumulated over multiple `@github/copilot` releases as types were renamed or removed upstream. - **`GeneratedRpcRecordsCoverageTest.java`** — Removed test methods that exercised deleted generated types (`SessionWorkspaceCreateFileParams`, `SessionModeGetResult`, `SessionModeSetResult`, `DiscoveredMcpServerSource`, and 16 others). - **`GeneratedRpcApiCoverageTest.java`** — Removed test method for the deleted `SessionAgentDeselectResult` type. ## Why this works going forward The CI workflow (`java-codegen-check.yml`) runs codegen and then checks `git status --porcelain`. Because codegen now cleans before writing, any future orphans will appear as deletions in the diff and the check will fail — preventing orphan accumulation without any additional workflow changes. Fixes #1619
1 parent 53ffb24 commit f2e8469

207 files changed

Lines changed: 6 additions & 8492 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

java/scripts/codegen/java.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2059,6 +2059,12 @@ async function main(): Promise<void> {
20592059
console.log("🚀 Java SDK code generator");
20602060
console.log("============================");
20612061

2062+
// Clean the generated output directory to remove orphaned files from previous runs
2063+
const generatedOutputDir = path.join(REPO_ROOT, "src/generated/java/com/github/copilot/generated");
2064+
console.log(`🧹 Cleaning output directory: ${generatedOutputDir}`);
2065+
await fs.rm(generatedOutputDir, { recursive: true, force: true });
2066+
await fs.mkdir(generatedOutputDir, { recursive: true });
2067+
20622068
const sessionEventsSchemaPath = await getSessionEventsSchemaPath();
20632069
console.log(`📄 Session events schema: ${sessionEventsSchemaPath}`);
20642070
const apiSchemaPath = await getApiSchemaPath();

java/src/generated/java/com/github/copilot/generated/McpServerStatusChangedStatus.java

Lines changed: 0 additions & 43 deletions
This file was deleted.

java/src/generated/java/com/github/copilot/generated/McpServersLoadedServerStatus.java

Lines changed: 0 additions & 43 deletions
This file was deleted.

java/src/generated/java/com/github/copilot/generated/PermissionApproved.java

Lines changed: 0 additions & 30 deletions
This file was deleted.

java/src/generated/java/com/github/copilot/generated/PermissionApprovedForLocation.java

Lines changed: 0 additions & 44 deletions
This file was deleted.

java/src/generated/java/com/github/copilot/generated/PermissionApprovedForSession.java

Lines changed: 0 additions & 37 deletions
This file was deleted.

java/src/generated/java/com/github/copilot/generated/PermissionCancelled.java

Lines changed: 0 additions & 37 deletions
This file was deleted.

java/src/generated/java/com/github/copilot/generated/PermissionCompletedKind.java

Lines changed: 0 additions & 47 deletions
This file was deleted.

java/src/generated/java/com/github/copilot/generated/PermissionCompletedResult.java

Lines changed: 0 additions & 27 deletions
This file was deleted.

java/src/generated/java/com/github/copilot/generated/PermissionDeniedByContentExclusionPolicy.java

Lines changed: 0 additions & 44 deletions
This file was deleted.

0 commit comments

Comments
 (0)