Skip to content

docs: switch to dual merge strategy#1119

Merged
GrammaTonic merged 1 commit intodevelopfrom
feature/change-merge-strategy
Mar 1, 2026
Merged

docs: switch to dual merge strategy#1119
GrammaTonic merged 1 commit intodevelopfrom
feature/change-merge-strategy

Conversation

@GrammaTonic
Copy link
Owner

Summary

Replace the single squash-everywhere strategy with a dual approach:

  • Feature branches → develop: Squash merge (one clean commit per feature)
  • developmain: Regular merge (preserves commit ancestry, no back-sync needed)

This eliminates the post-merge back-sync workflow entirely.

Type of Change

  • 📚 Documentation update
  • 🔧 Configuration change

Files Modified

  • .github/copilot-instructions.md — replaced back-sync section with dual strategy
  • .github/instructions/pull-request.instructions.md — full rewrite of merge strategy section
  • .github/pull_request_template.md — matching rewrite
  • .github/workflows/dependabot-auto-merge.yml — clarified comment
  • docs/features/DEVELOPMENT_WORKFLOW.md — added merge strategy table
  • docs/features/PROMETHEUS_ROADMAP.md — updated task descriptions
  • plan/feature-prometheus-monitoring-1.md — updated task descriptions

…e to main

Replace the single squash-everywhere strategy with a dual approach:
- Feature branches → develop: squash merge (one clean commit per feature)
- develop → main: regular merge (preserves commit ancestry)

This eliminates the post-merge back-sync workflow entirely because
regular merging develop into main preserves shared commit history,
so the two branches never diverge.

Updated files:
- .github/copilot-instructions.md
- .github/instructions/pull-request.instructions.md
- .github/pull_request_template.md
- .github/workflows/dependabot-auto-merge.yml (comment clarification)
- docs/features/DEVELOPMENT_WORKFLOW.md (added merge strategy section)
- docs/features/PROMETHEUS_ROADMAP.md
- plan/feature-prometheus-monitoring-1.md
@gemini-code-assist
Copy link

Summary of Changes

Hello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request refines the repository's Git branching and merging strategy to enhance clarity and efficiency. By adopting a dual merge approach—squash merging feature branches into develop and regular merging develop into main—the workflow is simplified, and a previously complex manual back-synchronization step is eliminated. This change aims to maintain a clean commit history on develop while preserving full ancestry on main, reducing potential errors and streamlining release processes.

Highlights

  • Dual Merge Strategy Implemented: The repository's merge strategy has been updated from a single squash-everywhere approach to a dual strategy. Feature branches will now be squash-merged into develop, while develop will be regular-merged into main.
  • Elimination of Back-Sync Workflow: The previous mandatory post-merge back-sync workflow, which was required after squash merging develop to main, has been entirely removed. The new regular merge from develop to main preserves commit ancestry, making back-sync unnecessary.
  • Documentation Updates: All relevant documentation, including copilot-instructions, pull-request.instructions, pull_request_template, and DEVELOPMENT_WORKFLOW, has been updated to reflect the new dual merge strategy and the removal of back-sync steps.
  • Workflow Task Adjustments: Specific tasks in the Prometheus roadmap and feature plan documents have been adjusted to align with the new merge strategy, explicitly mentioning squash merges to develop and regular merges to main without back-sync.

🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console.

Changelog
  • .github/copilot-instructions.md
    • Replaced the 'Post-Merge Back-Sync Workflow' section with a detailed explanation of the new dual merge strategy.
    • Removed instructions for performing back-sync and added a note indicating it's no longer needed.
    • Updated the description of Dependabot auto-merge to clarify its target branch.
  • .github/instructions/pull-request.instructions.md
    • Rewrote the 'Merge Strategy' section to introduce and explain the dual merge approach.
    • Removed the extensive 'Post-Merge Back-Sync' section and its associated instructions.
    • Updated the 'How to Merge' guidance for both GitHub CLI and Web UI to reflect the new squash and regular merge procedures.
  • .github/pull_request_template.md
    • Updated the 'Merge Strategy' section to describe the new dual merge approach.
    • Removed the 'Post-Merge Back-Sync' section and its related warnings.
    • Adjusted the 'How to Merge' instructions to align with the dual merge strategy.
  • docs/features/DEVELOPMENT_WORKFLOW.md
    • Modified the 'Release Process' section to specify regular merging for develop to main.
    • Added a new 'Merge Strategy' section, including a table outlining the dual strategy, its benefits, and detailed merge instructions.
  • docs/features/PROMETHEUS_ROADMAP.md
    • Updated task descriptions for TASK-075 and TASK-076 to reflect the new merge strategy, specifically mentioning squash merge to develop and regular merge for develop to main without back-sync.
  • plan/feature-prometheus-monitoring-1.md
    • Revised the description for TASK-076 to indicate creating a promotion PR from develop to main using a regular merge, emphasizing that no back-sync is needed.
Ignored Files
  • Ignored by pattern: .github/workflows/** (1)
    • .github/workflows/dependabot-auto-merge.yml
Activity
  • There has been no human activity on this pull request since its creation.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request effectively transitions the repository from a single squash-merge strategy to a dual strategy, which simplifies the workflow by removing the need for a back-sync after promoting develop to main. The documentation changes are consistent and clear across all updated files. I have one suggestion to further improve the clarity of the new workflow by explicitly documenting the merge strategy for hotfixes.

Comment on lines +95 to +99
| Direction | Strategy | Reason |
|-----------|----------|--------|
| Feature branch → `develop` | **Squash merge** | One clean commit per feature/fix on `develop` |
| `develop` → `main` | **Regular merge** | Preserves shared commit history, no back-sync needed |
| Dependabot PRs → `develop` | **Squash merge** | Auto-merged with squash (targets `develop` only) |

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The new merge strategy documentation is clear for feature branches and promotions from develop to main. However, it omits the merge strategy for hotfix branches, which could lead to confusion.

To make the workflow comprehensive, I suggest explicitly documenting the hotfix merge strategy. A squash merge is likely appropriate to maintain a clean history on main. I've added a row to the table for hotfixes and clarified that a sync to develop is still needed in this case, which is consistent with the hotfix process described elsewhere in this document.

Suggested change
| Direction | Strategy | Reason |
|-----------|----------|--------|
| Feature branch → `develop` | **Squash merge** | One clean commit per feature/fix on `develop` |
| `develop``main` | **Regular merge** | Preserves shared commit history, no back-sync needed |
| Dependabot PRs → `develop` | **Squash merge** | Auto-merged with squash (targets `develop` only) |
| Direction | Strategy | Reason |
|-----------|----------|--------|
| Feature branch → `develop` | **Squash merge** | One clean commit per feature/fix on `develop` |
| `develop``main` | **Regular merge** | Preserves shared commit history, no back-sync needed |
| Hotfix branch → `main` | **Squash merge** | One clean commit per fix on `main` (requires sync to `develop`) |
| Dependabot PRs → `develop` | **Squash merge** | Auto-merged with squash (targets `develop` only) |

@GrammaTonic GrammaTonic merged commit 998384d into develop Mar 1, 2026
22 checks passed
@GrammaTonic GrammaTonic deleted the feature/change-merge-strategy branch March 1, 2026 20:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant