github-community-projects / github-community-projects/private-mirrors

Implement a "one mirror" contribution model

Open
#114 6 comments 1 reaction 1 assignee Claimed by @ahpook View on GitHub
enhancement high priority
Dominant language
TypeScript
Stars
196
Forks
41
Avg merge
1d 9h
Merged PRs (30d)
4

Description

### Is your feature request related to a problem?

We've gotten feedback that the relationship between mirrors and branches is both confusing and counter to user expectations. We may need to adapt the current implementation to make this easier to understand and work with.

### Describe the solution you'd like

The current state can be described as:

A public fork has _N_ `[ fork's topic branch -> main on private mirror ]` relationships that ICF manages. The private mirrors may have work in flight in their own branches but when that work is merged to main, the sync to their topic branch on the public fork ( middle column in the diagram ) happens - and that topic branch becomes the basis for a PR upstream.

But this results in a proliferation of mirrors and a mix of branches on the fork that might map to upstream, might map to work directly on the fork, or might be part of a ICF-managed mirror. Additionally, at least one user says they expected a mapping of `[ fork topic branch -> mirror topic branch ]` and was surprised at the current implementation.

So this at least requires better explanation if not some additional work to simplify this mapping.

![Image](https://github.com/github-community-projects/internal-contribution-forks/assets/56753/2375c2b6-43af-49a8-a9c9-dafb6b8737c2)

### Describe alternatives you've considered

_No response_

### Additional context

_No response_

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.