Skip to content

Conversation

@americodls
Copy link

Why?

The Intercom fork uses a two-branch model that needs documentation so team members understand:

  • Which branch to use for development (fork-main)
  • How the automated weekly sync works (main branch)
  • The workflow for fast-tracking contributions before upstream acceptance

Without this documentation, it's unclear why we have two branches and how to work with them.

How?

Created FORK.md that documents:

  • Branch model: main (upstream mirror, auto-synced) vs fork-main (active development)
  • Workflow: How to add features, sync with upstream, and handle merged PRs
  • Rationale: Why this "fast-track" pattern enables using features immediately while maintaining automated syncs

The documentation follows the established pattern from the Intercom monolith's sync workflow and provides practical commands for common operations.

Documents the two-branch model used in the Intercom fork:
- main: Clean upstream mirror (auto-synced weekly)
- fork-main: Active development with pending upstream contributions

Explains the fast-track workflow for using features before upstream acceptance while maintaining automated sync capabilities.

### `main` - Upstream Mirror
- **Purpose**: Clean mirror of the upstream `open-telemetry/opentelemetry-ruby-contrib` main branch
- **Updates**: Automatically synced weekly via GitHub Actions ([workflow](https://github.com/intercom/intercom/blob/master/.github/workflows/sync-org-forks.yml))

Choose a reason for hiding this comment

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

🚫 [linkspector] reported by reviewdog 🐶
Cannot reach https://github.com/intercom/intercom/blob/master/.github/workflows/sync-org-forks.yml Status: 404

Copy link
Author

Choose a reason for hiding this comment

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

That was expected! 😁


## Questions?

For questions about this fork or the branch strategy, ask in #builder-tools or consult the [sync workflow documentation](https://github.com/intercom/intercom/blob/master/.github/workflows/sync-org-forks.md).

Choose a reason for hiding this comment

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

🚫 [linkspector] reported by reviewdog 🐶
Cannot reach https://github.com/intercom/intercom/blob/master/.github/workflows/sync-org-forks.md Status: 404

Copy link
Author

Choose a reason for hiding this comment

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

That was expected! 😁

@americodls americodls enabled auto-merge (squash) October 14, 2025 14:33
Adds a pull request template that reminds developers to target fork-main instead of main. The template includes:
- Clear warning about base branch selection
- Explanation of branch purposes (fork-main vs main)
- Standard PR sections (Why, How, Test Plan)
- Link to FORK.md documentation

This helps prevent accidentally creating PRs against the locked main branch which is reserved for automated upstream syncing.
@americodls americodls disabled auto-merge October 14, 2025 14:48
The PR template was starting with a level 2 heading (##), which violated markdown lint rules requiring the first heading to be level 1 (#). This change updates the first heading to use the correct level 1 format.
@americodls americodls enabled auto-merge (squash) October 14, 2025 15:11
@americodls americodls merged commit 02b1986 into fork-main Oct 14, 2025
5 of 6 checks passed
@americodls americodls deleted the ad/add-fork-documentation branch October 14, 2025 15:11
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.

3 participants