You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Replace upstream terminology with reference implementation
Rebase the topic branch onto current main and preserve the original intent:
replace "upstream" naming with "reference implementation" across the repo.
- Update docs, prompts, workflows, and release automation wording
- Remove legacy upstream-sync assets superseded by reference-impl-sync assets
- Update references in tests and project guidance content
- Keep behavior aligned while clarifying terminology
- Apply Spotless formatting updates in touched Java test files
Copy file name to clipboardExpand all lines: .github/copilot-instructions.md
+6-5Lines changed: 6 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -9,7 +9,7 @@ These instructions guide GitHub Copilot when assisting with this repository. The
9
9
-**Tech Stack**: Java 17+, Maven, Jackson for JSON, JUnit for testing
10
10
-**Purpose**: Provide a Java SDK for programmatic control of GitHub Copilot CLI
11
11
-**Architecture**: JSON-RPC client communicating with Copilot CLI over stdio
12
-
-**Key Goals**: Maintain parity with upstream .NET SDK while following Java idioms
12
+
-**Key Goals**: Maintain parity with reference implementation .NET SDK while following Java idioms
13
13
14
14
## Build & Test Commands
15
15
@@ -85,7 +85,7 @@ Tests use the official copilot-sdk test harness from `https://github.com/github/
85
85
86
86
-**E2ETestContext** - Manages test environment with CapiProxy for deterministic API responses
87
87
-**CapiProxy** - Node.js-based replaying proxy using YAML snapshots from `test/snapshots/`
88
-
- Test snapshots are stored in the upstream repo's `test/snapshots/` directory
88
+
- Test snapshots are stored in the reference implementation repo's `test/snapshots/` directory
89
89
90
90
## Key Conventions
91
91
@@ -217,7 +217,7 @@ Test method names are converted to lowercase snake_case for snapshot filenames t
217
217
-**DO NOT** modify `target/` directory - this contains build artifacts
218
218
-**DO NOT** edit `pom.xml` dependencies without careful consideration - this SDK has minimal dependencies by design
219
219
-**DO NOT** change the Jackson version without testing against all serialization patterns
220
-
-**DO NOT** modify test snapshots in `target/copilot-sdk/test/snapshots/` - these come from upstream
220
+
-**DO NOT** modify test snapshots in `target/copilot-sdk/test/snapshots/` - these come from reference implementation
221
221
-**DO NOT** alter the Eclipse formatter configuration in `pom.xml` without team consensus
222
222
-**DO NOT** remove or skip Checkstyle or Spotless checks
223
223
@@ -299,12 +299,12 @@ The release process is automated via the `publish-maven.yml` GitHub Actions work
299
299
- Converts the `## [Unreleased]` section to `## [version] - date`
300
300
- Creates a new empty `## [Unreleased]` section at the top
301
301
- Updates version comparison links at the bottom of CHANGELOG.md
302
-
- Injects the upstream SDK commit hash (from `.lastmerge`) as a `> **Upstream sync:**` blockquote in both the new `[Unreleased]` section and the released version section
302
+
- Injects the reference implementation SDK commit hash (from `.lastmerge`) as a `> **Reference implementation sync:**` blockquote in both the new `[Unreleased]` section and the released version section
303
303
304
304
2.**Reference Implementation Sync Tracking**: Each release records which commit from the official `github/copilot-sdk` it is synced to:
305
305
- The `.lastmerge` file is read during the release workflow
306
306
- The commit hash is injected into `CHANGELOG.md` under the release heading
@@ -209,7 +209,7 @@ New test snapshots are stored in `test/snapshots/` in the reference implementati
209
209
210
210
If tests fail with errors like `TypeError: Cannot read properties of undefined`, the test harness may not yet support the new RPC methods. In this case:
211
211
212
-
1.**Mark tests as `@Disabled`** with a clear reason (e.g., `@Disabled("Requires test harness update with X support - see upstream PR #NNN")`)
212
+
1.**Mark tests as `@Disabled`** with a clear reason (e.g., `@Disabled("Requires test harness update with X support - see reference implementation PR #NNN")`)
213
213
2.**Document the dependency** in the test class Javadoc
214
214
3.**Enable tests later** once the harness is updated
215
215
@@ -403,7 +403,7 @@ Before finishing:
403
403
-[ ] New branch created from `main`
404
404
-[ ] Copilot CLI updated to latest version
405
405
-[ ] README.md updated with minimum CLI version requirement
406
-
-[ ]Upstream repository cloned
406
+
-[ ]reference implementation repository cloned
407
407
-[ ] Diff analyzed between `.lastmerge` commit and HEAD
408
408
-[ ] New features/fixes identified
409
409
-[ ] Changes ported to Java SDK following conventions
@@ -437,3 +437,4 @@ Before finishing:
437
437
- Uses JUnit 5 for testing
438
438
-**Java SDK design decisions take precedence over reference implementation patterns**
439
439
-**Adapt reference implementation changes to fit Java idioms, not the other way around**
0 commit comments