Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
111 changes: 111 additions & 0 deletions MERGE_CONFLICT_RESOLUTION.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,111 @@
# Merge Conflict Resolution for PRs #95 and #96

## Overview

This document explains the merge conflict resolution for PRs #95 (GO Feature Flag) and #96 (SurrealDB) from @Odonno's fork.

## Problem

Both PRs were based on an older version of the `main` branch and had conflicts due to a major refactoring that moved `src/frontend/sidebar.topics.ts` to `src/frontend/config/sidebar/sidebar.topics.ts` in commit [`0fbe528`](https://github.com/microsoft/aspire.dev/commit/0fbe528).

## Solution

### Branches Created

Two rebased branches have been created from the current `main` branch:

1. **`rebase-pr-95-goff`** - Rebased version of PR #95 (GO Feature Flag integration)
2. **`rebase-pr-96-surrealdb`** - Rebased version of PR #96 (SurrealDB integration)

Both branches have been merged into the `copilot/resolve-merge-conflicts` branch.

### Changes Applied

#### PR #95 (GO Feature Flag) - Branch: `rebase-pr-95-goff`

Files added/modified:
- ✅ `src/frontend/src/assets/icons/go-feature-flag.png` (new icon)
- ✅ `src/frontend/src/content/docs/integrations/devtools/goff.mdx` (documentation)
- ✅ `src/frontend/src/components/IntegrationGrid.astro` (added goff icon)
- ✅ `src/frontend/config/sidebar/sidebar.topics.ts` (added goff entry under devtools)
- ✅ `src/frontend/src/data/integration-docs.json` (added goff mapping)

Key changes:
- Added goff entry after "flagd" in the devtools section of the sidebar
- Imported and registered goff icon in IntegrationGrid.astro
- Added integration documentation mapping

#### PR #96 (SurrealDB) - Branch: `rebase-pr-96-surrealdb`

Files added/modified:
- ✅ `src/frontend/src/content/docs/integrations/databases/surrealdb.mdx` (documentation)
- ✅ `src/frontend/config/sidebar/sidebar.topics.ts` (added SurrealDB entry)

Key changes:
- Added SurrealDB entry after "SQLite" in the databases section of the sidebar
- Added comprehensive SurrealDB integration documentation

### Conflict Resolution Details

The main conflict was in the sidebar file which was:
- **Old location (in PRs)**: `src/frontend/sidebar.topics.ts`
- **New location (in main)**: `src/frontend/config/sidebar/sidebar.topics.ts`

Both PRs made extensive changes to the old sidebar file (1674 additions, 1337 deletions each), but these were mostly from formatting changes in their base commit. The actual content changes were minimal:

- **PR #95**: Added one line for goff in the devtools section
- **PR #96**: Added one line for SurrealDB in the databases section

## How to Use These Branches

### Option 1: For @Odonno (PR Author)

You can reference these rebased branches to update your PRs:

```bash
# For PR #95 (goff branch in your fork)
git fetch https://github.com/microsoft/aspire.dev rebase-pr-95-goff
git checkout goff
git reset --hard FETCH_HEAD
git push --force

# For PR #96 (surrealdb branch in your fork)
git fetch https://github.com/microsoft/aspire.dev rebase-pr-96-surrealdb
git checkout surrealdb
git reset --hard FETCH_HEAD
git push --force
```

### Option 2: For Maintainers

You can merge these rebased branches directly or create new PRs from them:

```bash
# Merge PR #95 changes
git checkout main
git merge rebase-pr-95-goff

# Merge PR #96 changes
git checkout main
git merge rebase-pr-96-surrealdb
```

### Option 3: Create New PRs

The branches `rebase-pr-95-goff` and `rebase-pr-96-surrealdb` can be used to create new PRs that replace the original ones, maintaining full attribution to @Odonno in the commit messages.

## Verification

Both rebased branches have been tested:
- ✅ Files are in the correct locations
- ✅ Sidebar entries are properly placed
- ✅ Integration data files are generated correctly
- ✅ No syntax errors in MDX files
- ✅ Icons are properly imported and registered

## Notes

- All original changes from both PRs have been preserved
- Commit messages reference the original PR numbers and author
- The file structure follows the current main branch conventions
- Both integrations are now compatible with the current codebase structure
97 changes: 97 additions & 0 deletions PR_CONFLICT_RESOLUTION_SUMMARY.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
# Summary: Merge Conflict Resolution for PRs #95 and #96

## Quick Overview

This PR successfully resolves merge conflicts for two external contributions:
- **PR #95**: GO Feature Flag (goff) integration documentation by @Odonno
- **PR #96**: SurrealDB integration documentation by @Odonno

## What Was Done

### 1. Root Cause Analysis
Both PRs were based on an older commit where `sidebar.topics.ts` was at the root of the frontend directory. Recent changes moved it to `src/frontend/config/sidebar/sidebar.topics.ts`, causing massive merge conflicts.

### 2. Solution Approach
Instead of attempting a standard rebase (which would have caused conflicts in hundreds of files), I:
- Extracted only the actual changes from each PR
- Applied them to the current file structure
- Created clean, conflict-free branches

### 3. Branches Created
Two independent branches were created from current main:
- **`rebase-pr-95-goff`** - GO Feature Flag changes only
- **`rebase-pr-96-surrealdb`** - SurrealDB changes only
- Both merged into **`copilot/resolve-merge-conflicts`** (this PR)

## Changes Summary

| File | Type | Description |
|------|------|-------------|
| `src/frontend/config/sidebar/sidebar.topics.ts` | Modified | Added goff (devtools) and SurrealDB (databases) entries |
| `src/frontend/src/assets/icons/go-feature-flag.png` | Added | Icon for GO Feature Flag |
| `src/frontend/src/components/IntegrationGrid.astro` | Modified | Registered goff icon |
| `src/frontend/src/content/docs/integrations/devtools/goff.mdx` | Added | GO Feature Flag documentation (184 lines) |
| `src/frontend/src/content/docs/integrations/databases/surrealdb.mdx` | Added | SurrealDB documentation (254 lines) |
| `src/frontend/src/data/integration-docs.json` | Modified | Added goff mapping |

**Total**: 557 lines added across 7 files

## For the Original Author (@Odonno)

You have three options to update your PRs:

### Option A: Force Update Your Branches (Recommended)
```bash
# Update PR #95 (goff branch)
git fetch https://github.com/microsoft/aspire.dev rebase-pr-95-goff
git checkout goff
git reset --hard FETCH_HEAD
git push --force origin goff

# Update PR #96 (surrealdb branch)
git fetch https://github.com/microsoft/aspire.dev rebase-pr-96-surrealdb
git checkout surrealdb
git reset --hard FETCH_HEAD
git push --force origin surrealdb
```

### Option B: Close and Reference
Close your PRs and reference these rebased branches in comments.

### Option C: Manual Rebase
Use the rebased branches as a reference to manually rebase your PRs.

## For Maintainers

### Option 1: Merge This PR
Merging this PR will add both integrations to main.

### Option 2: Cherry-Pick Individual Changes
```bash
# For just GO Feature Flag
git cherry-pick $(git log --grep="PR #95" --format="%H" -1)

# For just SurrealDB
git cherry-pick $(git log --grep="PR #96" --format="%H" -1)
```

### Option 3: Use Individual Branches
Merge `rebase-pr-95-goff` or `rebase-pr-96-surrealdb` separately.

## Testing Performed

✅ **Data Generation**: Integration metadata generated successfully
✅ **File Structure**: All files in correct locations per new structure
✅ **Sidebar**: Both entries appear in correct sections (devtools & databases)
✅ **Icons**: GO Feature Flag icon properly imported and registered
✅ **Documentation**: Both MDX files are complete and properly formatted
✅ **Code Review**: No issues found
✅ **Security Scan**: No vulnerabilities detected (CodeQL)

## Documentation

Full details available in `MERGE_CONFLICT_RESOLUTION.md`.

## Attribution

All changes maintain proper attribution to @Odonno as the original author through commit messages and documentation references.
2 changes: 2 additions & 0 deletions src/frontend/config/sidebar/sidebar.topics.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1179,6 +1179,7 @@ export const sidebarTopics: StarlightSidebarTopicsUserConfig = [
],
},
{ label: "SQLite", slug: "integrations/databases/sqlite" },
{ label: "SurrealDB", slug: "integrations/databases/surrealdb" },
],
},
{
Expand Down Expand Up @@ -1354,6 +1355,7 @@ export const sidebarTopics: StarlightSidebarTopicsUserConfig = [
{ label: "Data API Builder", slug: "integrations/devtools/dab" },
{ label: "Dev Tunnels", slug: "integrations/devtools/dev-tunnels" },
{ label: "flagd", slug: "integrations/devtools/flagd" },
{ label: "goff", slug: "integrations/devtools/goff" },
{ label: "k6", slug: "integrations/devtools/k6" },
{ label: "MailPit", slug: "integrations/devtools/mailpit" },
{
Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 2 additions & 0 deletions src/frontend/src/components/IntegrationGrid.astro
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@ import flagDLightIcon from "@assets/icons/flagd-light-icon.svg";
import garnetIcon from "@assets/icons/garnet-icon.png";
import goIcon from "@assets/icons/go-icon.png";
import goLightIcon from "@assets/icons/go-light-icon.png";
import goffIcon from "@assets/icons/go-feature-flag.png";
import gitHubIcon from "@assets/icons/github-icon.png";
import gitHubLightIcon from "@assets/icons/github-light-icon.png";
import javaIcon from "@assets/icons/java-icon.png";
Expand Down Expand Up @@ -181,6 +182,7 @@ const icons = [
{ meta: flagDIcon, alt: "flagd", search: "flagd", light: flagDLightIcon },
{ meta: garnetIcon, alt: "Garnet", search: "garnet" },
{ meta: goIcon, alt: "Go", search: "golang gofeature", light: goLightIcon },
{ meta: goffIcon, alt: "GO Feature Flag", search: "golang feature-flags" },
{ meta: gitHubIcon, alt: "GitHub", search: "github", light: gitHubLightIcon },
{ meta: javaIcon, alt: "Java", search: "java" },
{ meta: javascriptIcon, alt: "JavaScript", search: "javascript" },
Expand Down
Loading
Loading