diff --git a/.claude/rules/commit-conventions.md b/.claude/rules/commit-conventions.md index 00e0ea1c..c0c9a290 100644 --- a/.claude/rules/commit-conventions.md +++ b/.claude/rules/commit-conventions.md @@ -99,3 +99,41 @@ git commit -s -m "feat(core): add new feature" ``` This adds a `Signed-off-by` line certifying you have the right to submit the code under the project's license. + +## PR Code Review Handling + +When addressing code review comments on a PR: + +1. **Fix the issue** in code +2. **Commit and push** the fix +3. **Reply** to the review comment explaining the fix +4. **Resolve the conversation** immediately after replying + +To resolve conversations via CLI: + +```bash +# Get thread IDs +gh api graphql -f query=' +{ + repository(owner: "OWNER", name: "REPO") { + pullRequest(number: PR_NUMBER) { + reviewThreads(first: 20) { + nodes { + id + isResolved + } + } + } + } +}' + +# Resolve a thread +gh api graphql -f query=' +mutation { + resolveReviewThread(input: {threadId: "THREAD_ID"}) { + thread { isResolved } + } +}' +``` + +**Important:** Always resolve conversations after fixing and replying - don't leave them open. diff --git a/.github/workflows/pr-tests.yml b/.github/workflows/pr-tests.yml index 06887c3f..f4f85559 100644 --- a/.github/workflows/pr-tests.yml +++ b/.github/workflows/pr-tests.yml @@ -99,6 +99,15 @@ jobs: echo "Coverage directory structure:" find coverage -type f -name "*.xml" 2>/dev/null || echo "No XML files found" + - name: Fix coverage paths + run: | + # Unity test runner generates paths with /github/workspace/ prefix (Docker container path) + # Strip this prefix so Codecov can match paths to repository files + echo "Fixing coverage paths..." + find coverage -name "*.xml" -exec sed -i 's|/github/workspace/||g' {} \; + echo "Path fix complete. Sample paths after fix:" + find coverage -name "TestCoverageResults*.xml" -exec grep -h "fullPath=" {} \; | head -5 || true + - name: Upload coverage to Codecov (util package) uses: codecov/codecov-action@v4 with: diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index bfabc6e1..09781903 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -181,6 +181,15 @@ jobs: echo "Coverage directory structure:" find coverage -type f -name "*.xml" 2>/dev/null || echo "No XML files found" + - name: Fix coverage paths + run: | + # Unity test runner generates paths with /github/workspace/ prefix (Docker container path) + # Strip this prefix so Codecov can match paths to repository files + echo "Fixing coverage paths..." + find coverage -name "*.xml" -exec sed -i 's|/github/workspace/||g' {} \; + echo "Path fix complete. Sample paths after fix:" + find coverage -name "TestCoverageResults*.xml" -exec grep -h "fullPath=" {} \; | head -5 || true + - name: Upload coverage to Codecov (util package) uses: codecov/codecov-action@v4 with: diff --git a/.github/workflows/unity-tests.yml b/.github/workflows/unity-tests.yml index 292e40ce..08ddeb2e 100644 --- a/.github/workflows/unity-tests.yml +++ b/.github/workflows/unity-tests.yml @@ -71,7 +71,7 @@ jobs: artifactsPath: artifacts/EditMode githubToken: ${{ secrets.GITHUB_TOKEN }} checkName: EditMode Test Results - coverageOptions: 'generateAdditionalMetrics;generateHtmlReport;generateBadgeReport' + coverageOptions: 'generateAdditionalMetrics;generateHtmlReport;generateBadgeReport;assemblyFilters:+JEngine.*' # Run PlayMode tests - name: Run PlayMode tests @@ -89,7 +89,7 @@ jobs: artifactsPath: artifacts/PlayMode githubToken: ${{ secrets.GITHUB_TOKEN }} checkName: PlayMode Test Results - coverageOptions: 'generateAdditionalMetrics;generateHtmlReport;generateBadgeReport' + coverageOptions: 'generateAdditionalMetrics;generateHtmlReport;generateBadgeReport;assemblyFilters:+JEngine.*' # Upload test results as artifacts - name: Upload EditMode test results